Есть ли способ получить порядковый индекс модуля с помощью в файле конфигурации kubernetes statefulset?

Мы находимся на Kubernetes 1.9.0 и задаемся вопросом, есть ли способ получить доступ к "порядковому индексу" модуля в его конфигурационном файле statefulset. Нам нравится динамически присваивать значение (полученное из порядкового индекса) метке модуля, а затем использовать его для установки соответствия модуля (или антиаффинности) в соответствии со спецификацией.

Альтернативно, доступно ли имя экземпляра модуля в configful-файле с набором состояний? Если это так, мы можем, надеюсь, извлечь из него порядковый индекс и динамически присвоить метке (для последующего использования для соответствия).

3 ответа

Прямо сейчас единственный вариант - извлечь индекс из имени хоста.

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

По сути, вы можете получить уникальное имя вашего модуля в statefulset в качестве переменной окружения, хотя вы должны извлечь из него порядковый индекс

В спецификации контейнера:

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

Чтобы получить точный порядковый номер набора состояний, вы можете использовать следующий код

      env:
  - name: ORDINAL_NUMBER
    valueFrom:
      fieldRef:
        fieldPath: metadata.labels['apps.kubernetes.io/pod-index']
Другие вопросы по тегам