将端口范围映射配置为针对Google容器引擎的containers.yaml

时间:2016-02-24 13:33:18

标签: google-compute-engine google-kubernetes-engine

我按照所有google文档将docker镜像部署到了goole compute(this one),但我找不到更多关于google-container-manifest选项的信息。

例如,我无法添加端口范围。 我试过没有成功:

  ports:
    - containerPort: 80
      hostPort: 80
    - containerPort: 443
      hostPort: 443
    - containerPort: "10000-20000"
      hostPort: "10000-20000"

我们在哪里可以找到我们可以用于谷歌容器清单的所有参数? 是否可以添加端口范围映射?

THX

[使用@alex解决方案编辑]

apiVersion: v1
kind: Pod
metadata:
  name: test
spec:
  hostNetwork: true
  containers:
    - name: test1
      image: eu.gcr.io/app-1234/image
      imagePullPolicy: Always

现在,Docker容器上的所有端口都在谷歌虚拟机上公开。

不要忘记配置网络以公开您需要的所有端口:

gcloud compute networks create test-network

gcloud compute firewall-rules create test-allow-http --allow tcp:80 --network test-network
gcloud compute firewall-rules create test-allow-ssh --allow tcp:22 --network test-network
gcloud compute firewall-rules create test-allow-https --allow tcp:443 --network test-network
gcloud compute firewall-rules create test-allow-video --allow udp:10000-20000,icmp --network test-network

然后像这样运行实例:

gcloud compute instances create test-example \
    --image container-vm \
    --metadata-from-file google-container-manifest=containers.yaml \
    --zone europe-west1-b \
    --machine-type n1-standard-2 \
    --network test-network

1 个答案:

答案 0 :(得分:1)

如上所述,该文档页面略低一点:

  

容器清单的文档可以在   Kubernetes API Pod Specification。容器VM正在运行   简单的Kubelet而不是整个Kubernetes控制平面,所以   容器VM尊重的v1.PodSpec仅限containers,   volumesrestartPolicy

关于添加如此大范围的端口,您是否介意解释您的用例?目前,API不支持任意端口范围,仅支持显式端口列表。如果你真正想要的是让你的容器可以使用机器上的所有端口,你可能需要考虑hostNetwork中的v1.PodSpec选项,它将直接在主机的网络上运行你的容器无需端口映射。