我有Helm使用的旧版Deployment.yaml,到目前为止效果很好。

      containers:
        ports:
          - containerPort: 3000

这部分以前是错误地设计的。因此,据我所知,它的ports部分未激活或未在k8s中使用。

因此,现在让我感到奇怪的是,容器始终如何在端口3000上运行和访问?因此,我寻找了另一个描述此端口的定义。

我在Dockerfile中找到了它
   EXPOSE 3000

我的问题现在是-您是否需要在.yaml配置中定义port.containerPort,还是通过Dockerfile EXPOSE 语句将容器端口隐含为3000?

好像k8s知道这应该是容器端口,因为Dockerfile描述了它。

最佳答案

不,EXPOSE与此无关,只有容器要使用port 3000的Info信息。配置来自containerPort
有关k8s的信息,请参见this

有关expose的信息,请参见this

关于docker - 如果Dockerfile描述为EXPOSE,是否需要在K8s中定义ports.containerPort,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58005330/

10-09 06:47