Есть ли способ получить порядковый индекс модуля с помощью в файле конфигурации 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']