在码头,我创建了网络。
docker network create hello-rails然后,我有了mySQL,它连接到这个网络
docker run -p 3306 -d --network=hello-rails --network-alias=db -e MYSQL_ROOT_PASSWORD=password --name hello-rails-db mysql此外,我还有rails服务器,它也依赖于这个网络。
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上为这两个容器编写部署。但我不知道,如何将网络放入containers文件中。你有什么建议吗?
发布于 2017-09-13 16:09:23
在Kubernetes中,您可以通过创建两个服务来解决这个问题。
MySQL服务将如下所示:
kind: Service
apiVersion: v1
metadata:
name: mysql
spec:
selector:
app: mysql
ports:
- port: 3306在rails服务器中,您可以通过使用MySQL DNS名称或使用MYSQL_SERVICE_HOST和MYSQL_SERVICE_PORT环境变量来访问mysql服务。不需要像在Docker中那样链接容器或指定网络。
您的Rails服务将如下所示:
kind: Service
apiVersion: v1
metadata:
name: rails
spec:
type: LoadBalancer
selector:
app: rails
ports:
- port: 3000请注意type: LoadBalancer,它指定此服务将发布到外部世界。根据运行Kubernetes的位置,公共IP地址将自动分配给该服务。
有关更多信息,请查看服务文件。
https://stackoverflow.com/questions/46201793
复制相似问题