问题描述
我有一个在有状态集中运行的Pod,但是它需要知道在另一个有状态集中运行的所有Pod的主机名或地址。第二个有状态集是由单独的头盔图创建的。吊舱可以动态解决吗?我可以通过类似于设置.Status.ip
的env将此信息注入到pod中吗?
编辑:每个statefulSet都有自己的无头服务
解决方法
正如评论中所讨论的,此处的方法是使用服务资源,因为这将为您提供群集中的静态DNS,以到达该服务所针对的所有pod。
该服务的DNS是:
- 如果您从同一名称空间访问服务名称
-
<my-service-name>.<namespace-name>.svc.cluster.local
(如果您是从另一个命名空间访问的,其中cluster.local
是群集域,根据群集配置的不同,群集域可能会有所不同 )
如果您进一步需要更多配置选项,例如当您要将图表部署到群集域实际上可能不同的不同云环境中时,可以使用kustomize.io在应用时调整配置。