我有一个docker-compose.yaml
version: '3.4'
services:
mongodb:
image: mongo:latest
assets:
image: gnaudio/jabra-xpress-assets:v4.0.7020
frontend:
image: gnaudio/jabra-xpress-frontend:v4.0.7314
environment:
- "ENDPOINT=http://¤HOST-NAME¤:85"
ports:
- "80:80"
backend:
image: gnaudio/jabra-xpress-api:v4.0.7313
environment:
- "ConnectionStrings:XpressDatabaseSqlServer=¤CONNSTRING¤"
- "ConnectionStrings:MongoDb=mongodb://mongodb/raw"
- "DefaultAnalyticsEndpoint=http://¤HOST-NAME¤:88/api/v1/Analytics"
- "JDODownload=http://assets/"
- "NetworkEndpoint=http://¤HOST-NAME¤:85/api/Xpress/Network/"
- "SDK:fwURL_base=http://¤HOST-NAME¤:82"
- "SDK:fsURL_base=http://¤HOST-NAME¤:82"
ports:
- "85:80"
depends_on:
- mongodb
- assets
- sdkbackend
sdkbackend:
image: gnaudio/jabra-xpress-sdkbackend:latest
environment:
- "Storage:SDKCopyUrl=http://¤HOST-NAME¤:82"
ports:
- "82:80"
analytics:
image: gnaudio/jabra-xpress-analytics:v4.0.7312
environment:
- "ConnectionStrings:MongodbServer=mongodb://mongodb/raw"
ports:
- "88:80"
depends_on:
- mongodb
analytics-cron:
image: gnaudio/jabra-xpress-analytics-cron:v4.0.7313
environment:
- "MONGODBCONNECTIONSTRING=mongodb://mongodb/raw"
depends_on:
- mongodb
我知道我可以使用kompose将其翻译成kubernetes。但是“ DefaultAnalyticsEndpoint = http://¤HOST-NAME¤:88 / api / v1 / Analytics”部分是什么?
根据Jabra的制作人,您应该这样做:
用SQL连接字符串替换¤CONNSTRING¤ 用服务器主机名替换“主机名”。
我必须在其中输入什么主机名?我的意思是我有6种不同的服务和豆荚。他们如何相互交流?
答案 0 :(得分:2)
与Docker(-Compose)一样,Kubernetes包含一个DNS服务,该服务允许您引用例如服务(大写表示Kubernetes类型)。
IIRC,Kompose为Docker-Compose服务生成服务和部署。通常,您将通过服务类型来引用Kubernetes服务,并且您应该拥有服务,例如frontend
,backend
等
因此,为回答您的问题,根据您希望引用的服务,将${HOST_NAME}
替换为服务名称之一。看来DefaultAnalyticsEndpoint
引用了Docker-Compose服务analytics
。这也应该映射到名为analytics
的Kubernetes服务。在两种情况下(Docker-Compose和Kubernetes),在IIUC中,HOST-NAME
中的DefaultAnalyticsEndpoint
将是analytics
。
如果您在同一命名空间中引用服务,则只需使用服务名称,例如backend
。如果您从另一个命名空间引用服务,则需要包含命名空间说明符,例如backend.${NAMESPACE}.cluster.local
请参阅: