如何在 Kubernetes 中预配置 Pod 的 IP 地址 (GCP)?



我正在尝试使用开源映像自动执行在 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 为我解决了这个问题。

最新更新