docker-compose转换为kubernetes

时间:2020-04-27 15:43:18

标签: docker kubernetes docker-compose openshift

我有一个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种不同的服务和豆荚。他们如何相互交流?

1 个答案:

答案 0 :(得分:2)

与Docker(-Compose)一样,Kubernetes包含一个DNS服务,该服务允许您引用例如服务(大写表示Kubernetes类型)。

IIRC,Kompose为Docker-Compose服务生成服务和部署。通常,您将通过服务类型来引用Kubernetes服务,并且您应该拥有服务,例如frontendbackend

因此,为回答您的问题,根据您希望引用的服务,将${HOST_NAME}替换为服务名称之一。看来DefaultAnalyticsEndpoint引用了Docker-Compose服务analytics。这也应该映射到名为analytics的Kubernetes服务。在两种情况下(Docker-Compose和Kubernetes),在IIUC中,HOST-NAME中的DefaultAnalyticsEndpoint将是analytics

如果您在同一命名空间中引用服务,则只需使用服务名称,例如backend。如果您从另一个命名空间引用服务,则需要包含命名空间说明符,例如backend.${NAMESPACE}.cluster.local

请参阅: