我正在尝试使用开源映像自动执行在 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的评论作为答案发布(社区维基(:
我终于想通了。使用 service-name.namespace 而不是 service-name.namespace.svc.cluster.local 为我解决了这个问题。