kubernetes - отображение информации о контейнере как переменных среды - PullRequest
0 голосов
/ 09 июня 2019

Я пытаюсь представить некоторую информацию о контейнере в виде переменных env, считывающих значения из модуля spec.template.spec.containers [0] .name, который, кажется, не работает. Каким будет apiSpec для ссылки на поля контейнера внутри шаблона развертывания. Шаблон развертывания выглядит следующим образом:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      creationTimestamp: null
      labels:
        run: nginx
      name: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          run: nginx
              strategy: {}
       template:
         metadata:
           creationTimestamp: null
            labels:
             run: nginx
        spec:
          containers:
           - image: nginx
            name: nginx
              ports:
             - containerPort: 8000
             resources: {}
            env:
             - name: MY_CONTAINER_NAME
                valueFrom:
                  fieldRef:
                    fieldPath: spec.template.spec.containers[0].name

1 Ответ

1 голос
/ 10 июня 2019

Две вещи: во-первых, имя контейнера фиксировано - оно определяется шаблоном PodSpec - возможно, вы думаете о имени контейнера docker (которое будет длинным сгенерированным именем, состоящим из пространства имен , имя контейнера, идентификатор UID и количество перезапусков Потому что имя контейнера-докера наверняка не будет присутствовать в .spec.containers[0].name

Во-вторых, хотя я согласен с Дэвидом, что я сомневаюсь, что kubernetes позволит вам запускать произвольные fieldPath: селекторы, если вы открыты к гибкости с вашим command:, вы действительно можете использовать собственный ServiceAccount модуля для запроса API kubernetes во время запуска для извлечения всех информации модуля, включая его структуру status:, которая, вероятно, содержит массу информации, которую вы ищете.

...