在satrefulset中运行的pod是否有可能获得在不同statefulset中运行的所有pod的主机名?

问题描述

我有一个在有状态集中运行的Pod,但是它需要知道在另一个有状态集中运行的所有Pod的主机名或地址。第二个有状态集是由单独的头盔图创建的。吊舱可以动态解决吗?我可以通过类似于设置.Status.ip的env将此信息注入到pod中吗?

编辑:每个statefulSet都有自己的无头服务

解决方法

正如评论中所讨论的,此处的方法是使用服务资源,因为这将为您提供群集中的静态DNS,以到达该服务所针对的所有pod。

该服务的DNS是:

  • 如果您从同一名称空间访问服务名称
  • <my-service-name>.<namespace-name>.svc.cluster.local(如果您是从另一个命名空间访问的,其中cluster.local是群集域,根据群集配置的不同,群集域可能会有所不同

如果您进一步需要更多配置选项,例如当您要将图表部署到群集域实际上可能不同的不同云环境中时,可以使用kustomize.io在应用时调整配置。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...