rid*_*tch 5 kubernetes kubectl
Statefulsets 指示 kubectl/kubernetes 创建 pod,其索引或序号跟在 pod 名称后面。例如,如果实体的名称为 redis,并且复制计数为 3,那么我们将得到 redis-0、redis-1 和 redis-2。有什么方法可以访问索引或序数吗?传递给容器的启动脚本将非常有用。如果能在downward api中使用就好了。当尝试将 PVC 与 PV 对齐时,使用它真是太好了。
是否可能存在一些秘密模板变量?
请注意,我已经找到了解决方法。我正在为我的命令使用脚本并使用主机名来提取它。但这似乎需要大量工作(以及未来的维护)。
最终,这应该通过添加到清单环境来工作(我被告知从 1.9 开始,但尚未确认):
- name: KAFKA_BROKER_ID
valueFrom:
fieldRef:
fieldPath: metadata.annotations['spec.pod.beta.kubernetes.io/statefulset-index']
Run Code Online (Sandbox Code Playgroud)
现在,您可以像使用脚本或使用生命周期事件一样“破解”它,如下所示:
lifecycle:
postStart:
exec:
command:
- "/bin/sh"
- "-c"
- "export KAFKA_BROKER_ID=${HOSTNAME##*-}"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4455 次 |
最近记录: |