为 google 容器引擎配置到 containers.yaml 中的端口范围映射



我按照所有谷歌文档将 docker 镜像部署到 goole 计算(这个)中,但我找不到有关 google-container-manifest 选项的更多信息。

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

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

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

感谢

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

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

现在,docker 容器上的所有端口都在 google VM 上公开。

不要忘记配置一个网络以公开您需要的所有端口,如下所示:

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

正如该文档页面上下方提到的:

容器清单的文档可在 Kubernetes API Pod 规范。容器虚拟机正在运行 简单的 Kubelet 而不是整个 Kubernetes 控制平面,所以 容器虚拟机接受的v1.PodSpec仅限于 containersvolumesrestartPolicy

但是,关于添加如此大的端口范围,您介意解释一下您的用例吗?目前,API 不支持任意端口范围,仅支持显式端口列表。如果您真正希望计算机上的所有端口都可以由容器使用,则可能需要考虑v1.PodSpec中的hostNetwork选项,该选项将直接在主机的网络上运行容器,而无需端口映射。

最新更新