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

Raj*_*j N 11 kubernetes kubernetes-helm statefulset

我们在 Kubernetes 1.9.0 上,想知道是否有办法在其 statefulset 配置文件中访问 pod 的“序数索引”。我们喜欢动态地为 pod 的标签分配一个值(从序数索引派生),然后在规范下使用它来设置 pod 关联(或反关联)。

或者,pod 的实例名称是否在 statefulset 配置文件中可用?如果是这样,我们希望从中提取序数索引并动态分配给标签(供以后用于亲和力)。

Abh*_*ngh 12

您基本上可以在 statefulset 中获取 pod 的唯一名称作为环境变量,但您必须从中提取序数索引

在容器的规格中:

env:
  - name: cluster.name
    value: k8s-logs
  - name: node.name
    valueFrom:
      fieldRef:
        fieldPath: metadata.name
Run Code Online (Sandbox Code Playgroud)

  • 问题要求**序号**,而不是全名。 (8认同)

Mac*_*cki 10

Right now the only option is to extract index from host name

lifecycle:
  postStart:
    exec:
      command: ["/bin/sh", "-c", "export INDEX=${HOSTNAME##*-}"]
Run Code Online (Sandbox Code Playgroud)

  • 如果必须在调用入口点之前设置 env 变量,则不是正确的解决方法:https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/ *不能保证挂钩将在调用之前执行容器入口点* (2认同)