模板中公开的kubernetes状态集索引/序号

模板中公开的kubernetes状态集索引/序号,kubernetes,kubectl,Kubernetes,Kubectl,Stateful设置direct kubectl/kubernetes以创建pod,pod名称后面带有索引或序号。例如,如果实体的名称为redis,并且复制计数为3,那么我们将得到redis-0、redis-1和redis-2。有什么方法可以访问索引或序号吗?传递给容器的启动脚本将非常有用。如果它在向下的api中可用,那就太好了。它将真的很好地使用它时,试图把PVC的光伏的 是否可能存在用于此的某个秘密模板变量 请注意,我已经找到了解决方法。我正在为我的命令使用一个脚本,并使用主机名来提取它。但

Stateful设置direct kubectl/kubernetes以创建pod,pod名称后面带有索引或序号。例如,如果实体的名称为redis,并且复制计数为3,那么我们将得到redis-0、redis-1和redis-2。有什么方法可以访问索引或序号吗?传递给容器的启动脚本将非常有用。如果它在向下的api中可用,那就太好了。它将真的很好地使用它时,试图把PVC的光伏的

是否可能存在用于此的某个秘密模板变量


请注意,我已经找到了解决方法。我正在为我的命令使用一个脚本,并使用主机名来提取它。但这似乎需要很多工作(以及未来的维护)

最终,这应该通过添加到manifest env中来实现(我被告知从1.9开始,但尚未确认):

现在,您可以像使用脚本或使用生命周期事件一样“破解”它,如以下所示:

    lifecycle:
      postStart:
        exec:
          command:
            - "/bin/sh"
            - "-c"
            - "export KAFKA_BROKER_ID=${HOSTNAME##*-}"

如果必须在调用入口点之前设置env varaible,则没有正确的解决方法:不能保证钩子将在容器入口点之前执行
    lifecycle:
      postStart:
        exec:
          command:
            - "/bin/sh"
            - "-c"
            - "export KAFKA_BROKER_ID=${HOSTNAME##*-}"