我想公开我正在研究的Kubernetes initContainer
中Job
上的端口。到目前为止,我这样做仍然没有成功,并且在阅读the docs时说:
初始化容器上的端口未在服务下聚合。
在这种情况下聚合是什么意思?
截至目前,我认为答案是否定的,因为我正在运行的实验不允许公开端口。但是,我对Kubernetes还是很陌生,所以我不知道自己是否在其他地方犯了错误。想通了,在我尝试进一步调试之前,我会问这里是否正在做什么。
答案 0 :(得分:2)
这是一个模糊的单词选择,但是结果是您无法通过Service访问initContainer。
Kubernetes服务通过匹配其标签来提供对一组Pod的访问。从这个意义上说,服务就是聚合器。我认为这是预期的意思。
在Pod中也可以有多个容器,每个容器使用不同的端口。如果Pod与某个服务匹配,则可以将该服务配置为提供对不同端口上的两个端口的访问。因此,服务也可以使多个端口可用,尽管我不会称其为聚合。
直到就绪探测器通过并且Pod状态准备就绪,服务才可以公开它们。当Pod状态初始化时,initContainer会在探测之前运行。因此,服务无法达到它是合乎逻辑的。想要从外部公开initContainer也是奇怪的,因为它本质上是临时的。
您的目的是调试(https://unofficial-kubernetes.readthedocs.io/en/latest/tasks/debug-application-cluster/debug-init-containers/)还是允许其他Pod /容器访问?我相信Pod最初会拥有一个IP地址,但是没有一个IP地址可以保证稳定,因此我不知道您是否可以移植进行调试https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/
我注意到您说您要在Job中公开initContainer。在工作中为交通服务是不寻常的目标。如果目的是监视作业,请参阅Monitoring a kubernetes job