如果Dockerfile描述为EXPOSE,是否需要在K8s中定义ports.containerPort

如果Dockerfile描述为EXPOSE,是否需要在K8s中定义ports.containerPort,docker,kubernetes,kubernetes-container,Docker,Kubernetes,Kubernetes Container,我有一个遗留的Deployment.yaml,由Helm使用,目前运行良好 containers: ports: - containerPort: 3000 这里的这一部分以前是错误的。因此,据我所知,端口部分在k8s中未激活或未使用 所以,现在让我感到惊奇的是,集装箱是如何一直在3000港运行和接近的?所以我寻找另一个描述这个端口的定义 我在Dockerfile EXPOSE 3000 我现在的问题是-您是否需要在.yaml配置中定义p

我有一个遗留的
Deployment.yaml
,由Helm使用,目前运行良好

      containers:
        ports:
          - containerPort: 3000
这里的这一部分以前是错误的。因此,据我所知,
端口
部分在k8s中未激活或未使用

所以,现在让我感到惊奇的是,集装箱是如何一直在3000港运行和接近的?所以我寻找另一个描述这个端口的定义

我在
Dockerfile

   EXPOSE 3000
我现在的问题是-您是否需要在.yaml配置中定义
port.containerPort
,或者通过
Dockerfile
EXPOSE语句,容器端口已经暗示为3000


感觉k8s知道这应该是containerport,因为Dockerfile描述了它。

否,
暴露
与此无关,只有容器将使用的信息
端口3000
。配置来自
containerPort

有关
k8s
的信息,请参见


有关
expose
的信息,请参见

,正如我在中提到的那样。yaml中的
端口
列表的索引格式错误,但容器仍然可以访问。你怎么解释呢?容器的默认端口不是3000,是吗?还是K8s自己修复了.yaml?如果这是一个真正的识别错误,那么K8s会给你一个错误,我认为它会拒绝启动。