Kubernetes 系统容器 "pause" 没有获得正确的端口映射
Kubernetes system container "pause" doesn't get proper port mappings
我正在测试 kubernetes 1.1.7 设置(在 AWS 上)。这已按照标准程序 (http://kubernetes.io/v1.1/docs/getting-started-guides/aws.html) 安装,并且一切正常。
我尝试用两个容器启动最简单的 pod 复制控制器(因为我想玩多容器 pods,这不是常态,但仍然可以做到) .这是 RC:
apiVersion: v1
kind: Pod
metadata:
name: test
labels:
app: web
spec:
containers:
- name: "80"
image: "jonlangemak/docker:web_container_80"
ports:
- containerPort: 80
- name: "8080"
image: "jonlangemak/docker:web_container_8080"
ports:
- containerPort: 8080
我期望这会生成 2 个应用程序容器以及一个系统容器 "pause",后者将保存两个端口映射(80 和 8080)。
但是,如果我在登陆主机上执行 docker ps 这是我看到的:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2a15f633fff9 jonlangemak/docker:web_container_8080 "/usr/bin/supervisor 23 seconds ago Up 22 seconds k8s_8080.cf4f64ab_test_default_1dc9f591-d976-11e5-88b3-06da266e4957_6e389304
0ff0b6cdd4ae jonlangemak/docker:web_container_80 "/usr/bin/supervisor 23 seconds ago Up 23 seconds k8s_80.b7c46373_test_default_1dc9f591-d976-11e5-88b3-06da266e4957_90173279
84e3d7ea12c9 gcr.io/google_containers/pause:0.8.0 "/pause" 23 seconds ago Up 23 seconds k8s_POD.c16231a_test_default_1dc9f591-d976-11e5-88b3-06da266e4957_78c2a5e9
有趣的是,一切正常,我可以为端口 80 和端口 8080 卷曲 pod IP,我得到了我期望得到的结果,但事实上我没有在 "pause"容器让我有点"uh? why?"。
想法?
谢谢。
除非您在相应的 port
上设置 HostPort 属性,否则不会有任何端口映射。
您应该使用服务来公开您的应用程序,而不是那样做。这种抽象将为您的应用程序提供一个 IP 地址,并充当集群中的本地负载平衡器。
您可以在官方 Kubernetes user documentation
中阅读有关 Kubernetes service
资源的更多信息
我正在测试 kubernetes 1.1.7 设置(在 AWS 上)。这已按照标准程序 (http://kubernetes.io/v1.1/docs/getting-started-guides/aws.html) 安装,并且一切正常。
我尝试用两个容器启动最简单的 pod 复制控制器(因为我想玩多容器 pods,这不是常态,但仍然可以做到) .这是 RC:
apiVersion: v1
kind: Pod
metadata:
name: test
labels:
app: web
spec:
containers:
- name: "80"
image: "jonlangemak/docker:web_container_80"
ports:
- containerPort: 80
- name: "8080"
image: "jonlangemak/docker:web_container_8080"
ports:
- containerPort: 8080
我期望这会生成 2 个应用程序容器以及一个系统容器 "pause",后者将保存两个端口映射(80 和 8080)。
但是,如果我在登陆主机上执行 docker ps 这是我看到的:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2a15f633fff9 jonlangemak/docker:web_container_8080 "/usr/bin/supervisor 23 seconds ago Up 22 seconds k8s_8080.cf4f64ab_test_default_1dc9f591-d976-11e5-88b3-06da266e4957_6e389304
0ff0b6cdd4ae jonlangemak/docker:web_container_80 "/usr/bin/supervisor 23 seconds ago Up 23 seconds k8s_80.b7c46373_test_default_1dc9f591-d976-11e5-88b3-06da266e4957_90173279
84e3d7ea12c9 gcr.io/google_containers/pause:0.8.0 "/pause" 23 seconds ago Up 23 seconds k8s_POD.c16231a_test_default_1dc9f591-d976-11e5-88b3-06da266e4957_78c2a5e9
有趣的是,一切正常,我可以为端口 80 和端口 8080 卷曲 pod IP,我得到了我期望得到的结果,但事实上我没有在 "pause"容器让我有点"uh? why?"。
想法?
谢谢。
除非您在相应的 port
上设置 HostPort 属性,否则不会有任何端口映射。
您应该使用服务来公开您的应用程序,而不是那样做。这种抽象将为您的应用程序提供一个 IP 地址,并充当集群中的本地负载平衡器。
您可以在官方 Kubernetes user documentation
中阅读有关 Kubernetesservice
资源的更多信息