kubernetes statefulsets index / ordinal在模板中暴露

时间:2017-03-01 01:52:32

标签: kubernetes kubectl

状态集指示kubectl / kubernetes在pod名称后面创建带索引或序号的pod。如果实体的名称为redis,例如复制计数为3,那么我们将获得redis-0,redis-1和redis-2。有没有办法获得索引或序数?传递给容器的启动脚本非常有用。如果它在向下api中可用的话会很好。在尝试将PVC排列到PV时,使用它真的很不错。

  

是否有可能存在一些秘密模板变量?

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

1 个答案:

答案 0 :(得分:0)

最终这应该通过添加到清单env(我告诉1.9开始但尚未确认)来实现:

   - name: KAFKA_BROKER_ID
     valueFrom:
       fieldRef:
         fieldPath: metadata.annotations['spec.pod.beta.kubernetes.io/statefulset-index'] 

现在你可以“黑客攻击”就像你使用脚本或使用如下的生命周期事件一样:

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