状态集指示kubectl / kubernetes在pod名称后面创建带索引或序号的pod。如果实体的名称为redis,例如复制计数为3,那么我们将获得redis-0,redis-1和redis-2。有没有办法获得索引或序数?传递给容器的启动脚本非常有用。如果它在向下api中可用的话会很好。在尝试将PVC排列到PV时,使用它真的很不错。
是否有可能存在一些秘密模板变量?
请注意,我找到了解决方法。我正在为我的命令使用脚本并使用主机名来提取它。但它似乎很多工作(以及未来的维护)。
答案 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##*-}"