如何将容器networking放到kubernetes YAML文件中

例如,我在docker上创build了networking

docker network create hello-rails 

然后,我有连接到这个networking的mySQL

 docker run -p 3306 -d --network=hello-rails --network-alias=db -e MYSQL_ROOT_PASSWORD=password --name hello-rails-db mysql 

而且,我也有轨服务器,这也依赖于这个networking

 docker run -it -p 3000:3000 --network=hello-rails -e MYSQL_USER=root -e MYSQL_PASSWORD=password -e MYSQL_HOST=db --name hello-rails benjamincaldwell/hello-docker-rails:latest 

我想用YAML文件在这两个容器的kubernetes上编写部署。 但是我不知道如何把networking里面的containers放在文件里。 你有什么build议?

在Kubernetes你可以通过创build两个服务来解决这个问题。

MySQL服务看起来像这样:

 kind: Service apiVersion: v1 metadata: name: mysql spec: selector: app: mysql ports: - port: 3306 

在你的Rails服务器上,你可以通过使用mysql DNS名称或使用MYSQL_SERVICE_HOSTMYSQL_SERVICE_PORT环境variables来访问MySQL服务。 没有必要链接容器或指定一个networking,就像在Docker中所做的那样。

您的Rails服务将如下所示:

 kind: Service apiVersion: v1 metadata: name: rails spec: type: LoadBalancer selector: app: rails ports: - port: 3000 

请注意type: LoadBalancer ,它指定此服务将发布到外部世界。 根据您运行Kubernetes的位置,公共IP地址将自动分配给该服务。

有关更多信息,请参阅服务文档 。