我有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/