是否可以在 Kubernetes 中公开 initContainers 上的端口?

Is it possible to expose ports on initContainers in Kubernetes?

我想在我正在处理的 Kubernetes Job 中的 initContainer 上公开一个端口。到目前为止,我一直没有成功,在阅读 the docs 时它说:

The ports on an Init Container are not aggregated under a service.

在此上下文中聚合是什么意思?

截至目前,我认为答案是否定的,因为我正在进行的实验 运行 不允许我公开端口。但是,我是 Kubernetes 的新手,所以我不知道我是否在其他地方犯了错误。我想我会在这里问一下,看看我在做什么,然后再尝试进一步调试。

这是一个模棱两可的选择,但结果是您无法通过服务访问 initContainer。

Kubernetes 服务通过匹配其标签提供对一组 Pods 的访问。从这个意义上说,服务是一个聚合器。我想这就是本意。

一个Pod中也可以有多个容器,每个容器使用不同的端口。如果 Pod 与 Service 匹配,则该服务可以配置为在不同端口上提供对两者的访问。所以一个服务也可以使多个端口可用,尽管我不会称之为聚合。

Pods 不会被服务公开,直到他们的就绪探测通过且 Pod 状态已准备就绪。当 Pod 状态正在初始化时,initContainer 在探测之前运行。因此,Service 无法访问它是合乎逻辑的。想要在外部公开 initContainer 也很奇怪,因为它本质上是临时的。

你的目的是为了调试(https://unofficial-kubernetes.readthedocs.io/en/latest/tasks/debug-application-cluster/debug-init-containers/) or to allow other Pods/Containers to access? I believe the Pod would at init have an IP address but not one which would be guaranteed to be stable so I don't know whether you might be able to port-forward for debugging https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/

我注意到您说您希望在作业中公开 initContainer。在 Job 中为流量提供服务将是一个不寻常的目标。如果目的是监视作业,请参阅