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

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

В качестве альтернативы, доступно ли имя экземпляра модуля в конфигурационном файле statefulset? Если это так, мы надеемся извлечь из него порядковый индекс и динамически присвоить метку (для последующего использования для сходства).


person Raj N    schedule 07.06.2018    source источник
comment
Здесь есть ветка об этом как о запросе функции: github.com/kubernetes/kubernetes/issues/40651 И тот, который может относиться к вам: github.com/kubernetes/kubernetes/issues/ ПРИМЕЧАНИЕ. Я ничего не знаю о kubernetes   -  person dreynold    schedule 08.06.2018
comment
Что вы подразумеваете под ... под спец.?   -  person Peter Mortensen    schedule 12.06.2018


Ответы (2)


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

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

env:
  - name: cluster.name
    value: k8s-logs
  - name: node.name
    valueFrom:
      fieldRef:
        fieldPath: metadata.name
person Abhishek Jaisingh    schedule 22.01.2019

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

lifecycle:
  postStart:
    exec:
      command: ["/bin/sh", "-c", "export INDEX=${HOSTNAME##*-}"]
person Maciek Sawicki    schedule 07.06.2018
comment
Неправильный обходной путь, если переменная env должна быть установлена ​​до вызова точки входа: kubernetes.io/docs/concepts/containers/ Нет гарантии, что хук сработает до ENTRYPOINT контейнера - person titou10; 04.03.2019
comment
как тогда использовать экспортированный ИНДЕКС в аргументах? - person BenWhite; 03.07.2020