有没有办法在kubernetes statefulset配置文件中获取pod的序号索引?

whlutmcx  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(3)|浏览(227)

我们在Kubernetes 1.9.0上,想知道是否有办法在其statefulset配置文件中访问pod的“序号索引”。我们喜欢动态地给pod的label赋值(从序号索引派生),然后用它来设置pod的spec-affinity(或antiaffinity)。
或者,pod的示例名是否可以在statefulset文件中使用?如果是这样的话,我们可以从中提取序号索引,并动态地分配给一个标签(供以后用于亲和力)。

i7uaboj4

i7uaboj41#

Right now唯一的选项是从主机名中提取索引

lifecycle:
  postStart:
    exec:
      command: ["/bin/sh", "-c", "export INDEX=${HOSTNAME##*-}"]
kmbjn2e3

kmbjn2e32#

您可以在statefulset中获取pod的唯一名称作为环境变量,但必须从中提取序号索引
在容器规格中:

env:
  - name: cluster.name
    value: k8s-logs
  - name: node.name
    valueFrom:
      fieldRef:
        fieldPath: metadata.name
k75qkfdt

k75qkfdt3#

要获取statefulset的确切序号,可以使用以下代码

env:
  - name: ORDINAL_NUMBER
    valueFrom:
      fieldRef:
        fieldPath: metadata.labels['apps.kubernetes.io/pod-index']

相关问题