我正在尝试自动化使用开源图像在Kubernetes集群中动态调出两个容器的过程。由于这些图像是第三方图像,因此我对可配置的图像有一些限制。我还需要这些容器放在不同的容器中。

为了便于讨论,我将这些容器称为容器a.domain.com和容器b.domain.com。容器A和B需要来回通信,并且此通信使用TLS证书进行保护。

为了实现这种通信,我必须在Kubernetes部署文档的规范中添加以下代码段。


#deployment doc for a.domain.com
spec:
  hostAliases:
  - ip: <Insert IP address for b.domain.com>
    hostnames:
    - "b.domain.com"

#deployment doc for b.domain.com
spec:
  hostAliases:
  - ip: <Insert IP address for a.domain.com>
    hostnames:
    - "a.domain.com"


如果缺少此代码,则会出现以下错误:

Error on container a.domain.com: No such host - b.domain.com
Error on container b.domain.com: No such host - a.domain.com


由于必须将两个容器放在一起,因此无法在yaml文件中对IP地址进行硬编码。

无论如何,我是否可以为这些容器的部署文档添加一个参数,以使我能够确定性地预先配置Pod出现时使用的IP地址?

最佳答案

发布OP的评论作为答案(社区Wiki):


  我终于弄明白了。使用service-name.namespace代替service-name.namespace.svc.cluster.local为我解决了这个问题。

关于docker - 如何在Kubernetes(GCP)中预配置Pod的IP地址?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58103983/

10-13 06:27