服务主机/端口未定义,Kubernetes / Google容器引擎
我有一个名称为mongodb的服务。 根据文档,通过$ MONGODB_SERVICE_HOST和$ MONGODB_SERVICE_PORT,服务主机和端口应该可用于同一集群中的其他Pod。
但是,这些都没有在我的前端豆荚中设置。 有什么要求这个工作?
前端-controller.json
{ "id": "frontend", "kind": "ReplicationController", "apiVersion": "v1beta1", "desiredState": { "replicas": 1, "replicaSelector": {"name": "spatula", "role": "frontend"}, "podTemplate": { "desiredState": { "manifest": { "version": "v1beta1", "id": "frontend", "containers": [{ "name": "frontend", "image": "gcr.io/crafty_apex_841/spatula_frontend", "cpu": 100, "ports": [{"name": "spatula-server", "containerPort": 80}] }] } }, "labels": { "name": "spatula", "role": "frontend" } } }, "labels": { "name": "spatula", "role": "frontend" } }
前端-service.json
{ "apiVersion": "v1beta1", "kind": "Service", "id": "frontend", "port": 80, "containerPort": "spatula-server", "labels": { "name": "spatula", "role": "frontend" }, "selector": { "name": "spatula", "role": "frontend" }, "createExternalLoadBalancer": true }
MongoDB的-service.json
{ "apiVersion": "v1beta1", "kind": "Service", "id": "mongodb", "port": 27017, "containerPort": "mongodb-server", "labels": { "name": "spatula", "role": "mongodb" }, "selector": { "name": "spatula", "role": "mongodb" } }
MongoDB的-controller.json
{ "id": "mongodb", "kind": "ReplicationController", "apiVersion": "v1beta1", "desiredState": { "replicas": 1, "replicaSelector": {"name": "spatula", "role": "mongodb"}, "podTemplate": { "desiredState": { "manifest": { "version": "v1beta1", "id": "mongodb", "containers": [{ "name": "mongodb", "image": "dockerfile/mongodb", "cpu": 100, "ports": [{"name": "mongodb-server", "containerPort": 27017}] }] } }, "labels": { "name": "spatula", "role": "mongodb" } } }, "labels": { "name": "spatula", "role": "mongodb" } }
服务:
$ gcloud preview container services list NAME LABELS SELECTOR IP PORT mongodb name=spatula,role=mongodb name=spatula,role=mongodb 10.111.240.154 27017
豆荚:
$ gcloud preview container pods list POD IP CONTAINER(S) IMAGE(S) HOST LABELS STATUS 9ffd980f-ab56-11e4-ad76-42010af069b6 10.108.0.11 mongodb dockerfile/mongodb k8s-spatula-node-1.c.crafty-apex-841.internal/104.154.44.77 name=spatula,role=mongodb Running
因为只有在启动pod时才创buildpod的环境variables,所以服务必须在给定的pod之前存在,以便该pod能够查看服务的环境variables。 你应该能够看到他们从你创build的所有新的豆荚。
如果您想了解更多信息,可以在文档中find有关服务如何工作的附加说明。
另外,Container Engine(版本0.9.2及以上版本)中所有新创build的集群都有一个运行在集群中的SkyDNS服务 ,您可以使用该服务从pod访问服务,即使那些没有环境variables的服务也是如此。
- kubernetes和GKE有什么区别?
- 在容器引擎上定义/ dev / shm的大小
- Google的Borg和Google的Kubernetes和Docker有什么不同?
- Go + MySql:迁移到GKE(Google云容器引擎)有多简单?
- 从BigQuery获取(stream)数据到R(Docker中的Rstudio服务器)的最佳方式是什么?
- Kubernetes可以像Docker Compose一样使用吗?
- 是否有可能将Docker Hub公开托pipe的映像部署到Kubernetes Container Engine,而无需将其上传到Container Contay?
- 无法在dockerfile中执行gcloud init
- 如何使用gcloud或其他CLI在Google Container Registry中列出已发布的容器图像