Spec-Zone.ru › Kubernetes 1.26

Под

Под — это набор контейнеров, которые могут выполняться на хосте.

apiVersion: v1

import "k8s.io/api/core/v1"

Под

Под — это набор контейнеров, которые могут выполняться на хосте. Этот ресурс создаётся клиентами и планируется на хосты.

  • apiVersion: v1

  • kind: Под

  • metadata (ObjectMeta)

    Стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

  • spec (PodSpec)

    Описание желаемого поведения под. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

  • status (PodStatus)

    Последний наблюдаемый статус под. Данные могут быть неактуальными. Заполняется системой. Только для чтения. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

PodSpec

PodSpec — описание под.

Контейнеры

  • containers ([]Container), обязательно

    Стратегия патча: слияние по ключу name

    Список контейнеров, принадлежащих под. В настоящее время контейнеры нельзя добавлять или удалять. В под должен быть хотя бы один контейнер. Не может быть обновлён.

  • initContainers ([]Container)

    Стратегия патча: слияние по ключу name

    Список инициализационных контейнеров, принадлежащих под. Инициализационные контейнеры выполняются в порядке, предшествующем запуску контейнеров. Если какой-либо инициализационный контейнер завершается ошибкой, под считается завершившимся ошибкой и обрабатывается в соответствии с политикой перезапуска. Имя инициализационного или обычного контейнера должно быть уникальным среди всех контейнеров. Инициализационные контейнеры не могут иметь действий Lifecycle, проверок готовности, проверок на работоспособность или проверок запуска. Требования к ресурсам инициализационного контейнера учитываются при планировании путём поиска наибольшего запроса/лимита для каждого типа ресурса, а затем использования максимума этого значения или суммы значений обычных контейнеров. Ограничения применяются к инициализационным контейнерам аналогичным образом. В настоящее время инициализационные контейнеры нельзя добавлять или удалять. Не может быть обновлён. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

  • ephemeralContainers ([]EphemeralContainer)

    Стратегия патча: слияние по ключу name

    Список временных контейнеров, запущенных в этом под. Временные контейнеры могут быть запущены в существующем под для выполнения действий, инициированных пользователем, таких как отладка. Этот список не может быть задан при создании под, и он не может быть изменён путём обновления спецификации под. Чтобы добавить временный контейнер в существующий под, используйте подресурс ephemeralcontainers под.

  • imagePullSecrets ([]LocalObjectReference)

    Стратегия патча: слияние по ключу name

    ImagePullSecrets — это необязательный список ссылок на секреты в том же пространстве имён для использования при получении любых изображений, используемых этим PodSpec. Если задано, эти секреты будут переданы отдельным реализациям получателя для их использования. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod

  • enableServiceLinks (boolean)

    EnableServiceLinks указывает, нужно ли вводить информацию о сервисах в переменные среды под, соответствующие синтаксису Docker links. Необязательно: по умолчанию true.

  • os (PodOS)

    Указывает операционную систему контейнеров в под. Некоторые поля под и контейнеров ограничены, если это установлено.

    Если поле OS установлено в linux, следующие поля должны быть сброшены: -securityContext.windowsOptions

    Если поле OS установлено в windows, следующие поля должны быть сброшены: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[].securityContext.seLinuxOptions - spec.containers[].securityContext.seccompProfile - spec.containers[].securityContext.capabilities - spec.containers[].securityContext.readOnlyRootFilesystem - spec.containers[].securityContext.privileged - spec.containers[].securityContext.allowPrivilegeEscalation - spec.containers[].securityContext.procMount - spec.containers[].securityContext.runAsUser - spec.containers[].securityContext.runAsGroup

    PodOS определяет параметры ОС под.

    • os.name (строка), обязательно

      Имя — это имя операционной системы. В настоящее время поддерживаются значения linux и windows. Дополнительные значения могут быть определены в будущем и могут быть одним из: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Клиенты должны ожидать обработки дополнительных значений и рассматривать нераспознанные значения в этом поле как os: null

Тома

  • volumes ([]Volume)

    Стратегии патчей: retainKeys, слияние по ключу name

    Список томов, которые могут быть смонтированы контейнерами, принадлежащими под. Дополнительная информация: https://kubernetes.io/docs/concepts/storage/volumes

Планирование

  • nodeSelector (map[string]string)

    NodeSelector — это селектор, который должен быть истинным для того, чтобы под мог поместиться на узле. Селектор, который должен соответствовать меткам узла для планирования под на этом узле. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

  • nodeName (string)

    NodeName — запрос на планирование этого под на конкретный узел. Если он не пустой, планировщик просто планирует этот под на этот узел, предполагая, что он соответствует требованиям ресурсов.

  • affinity (Affinity)

    Если указано, планировочные ограничения под

    Affinity — это группа правил планирования affinity.

    • affinity.nodeAffinity (NodeAffinity)

      Описывает правила планирования affinity узлов для под.

    • affinity.podAffinity (PodAffinity)

      Описывает правила планирования affinity под (например, разместить этот под на том же узле, зоне и т.д., что и некоторые другие поды).

    • affinity.podAntiAffinity (PodAntiAffinity)

      Описывает правила планирования anti-affinity под (например, избежать размещения этого под на том же узле, зоне и т.д., что и некоторые другие поды).

  • tolerations ([]Toleration)

    Если указано, толерантности под.

    Под, к которому прикреплена эта Toleration, допускает любую помету, которая соответствует тройке <ключ, значение, эффект>, используя оператор соответствия .

    • tolerations.key (string)

      Ключ — это ключ метки, к которому применяется толерантность. Пустое значение означает соответствие всем ключам меток. Если ключ пустой, оператор должен быть Exists; эта комбинация означает соответствие всем значениям и всем ключам.

    • tolerations.operator (string)

      Оператор представляет собой отношение ключа к значению. Допустимые операторы — Exists и Equal. По умолчанию используется Equal. Exists эквивалентен подстановке для значения, так что под может допускать все метки определенной категории.

    • tolerations.value (string)

      Значение — это значение метки, с которым соответствует толерантность. Если оператор — Exists, значение должно быть пустым, в противном случае — просто строка.

    • tolerations.effect (string)

      Эффект указывает эффект метки для соответствия. Пустое значение означает соответствие всем эффектам меток. При указании допустимые значения — NoSchedule, PreferNoSchedule и NoExecute.

    • tolerations.tolerationSeconds (int64)

      TolerationSeconds представляет собой период времени, в течение которого толерантность (которая должна иметь эффект NoExecute, иначе это поле игнорируется) допускает метку. По умолчанию он не установлен, что означает, что толерантность допускает метку навсегда (не выгонять). Нулевые и отрицательные значения будут обрабатываться системой как 0 (выгнать немедленно).

  • schedulerName (string)

    Если указано, под будет передан указанным планировщиком. Если не указано, под будет передан по умолчанию.

  • runtimeClassName (string)

    RuntimeClassName относится к объекту RuntimeClass в группе node.k8s.io, который должен использоваться для запуска этого под. Если ни один ресурс RuntimeClass не соответствует имени класса, под не будет запущен. Если не задано или пусто, будет использоваться «legacy» RuntimeClass, который является неявным классом с пустым определением, использующим обработчик по умолчанию. Дополнительная информация: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class

  • priorityClassName (string)

    Если указано, указывает приоритет под. «system-node-critical» и «system-cluster-critical» — два специальных ключевых слова, которые указывают на самые высокие приоритеты, причем первый — самый высокий приоритет. Любое другое имя должно быть определено путём создания объекта PriorityClass с этим именем. Если не указано, приоритет под будет по умолчанию или нулем, если нет значения по умолчанию.

  • priority (int32)

    Значение приоритета. Различные системные компоненты используют это поле для определения приоритета под. При включенном контроллере приоритета допуска, пользователи не могут установить это поле. Контроллер допуска заполняет это поле из PriorityClassName. Чем выше значение, тем выше приоритет.

  • preemptionPolicy (string)

    PreemptionPolicy — политика для переприоритетизации под с более низким приоритетом. Одно из Never, PreemptLowerPriority. По умолчанию PreemptLowerPriority, если не задано.

  • topologySpreadConstraints ([]TopologySpreadConstraint)

    Стратегия распределения: объединение по ключу topologyKey

    Массив: уникальные значения по ключам topologyKey, whenUnsatisfiable будут сохранены при слиянии

    TopologySpreadConstraints описывает, как группа Pod должна быть распределена по топологическим доменам. Планировщик будет планировать Pod таким образом, чтобы соблюдать ограничения. Все topologySpreadConstraints соединяются по логическому И.

    TopologySpreadConstraint определяет, как распределить соответствующие Pod по заданному топологическому домену.

    • topologySpreadConstraints.maxSkew (int32), необходимо

      MaxSkew описывает степень неравномерности распределения Pod. Когда whenUnsatisfiable=DoNotSchedule, это максимальная допустимая разница между количеством соответствующих Pod в целевом топологическом домене и глобальным минимумом. Глобальный минимум — это минимальное количество соответствующих Pod в подходящем домене или ноль, если количество подходящих доменов меньше MinDomains. Например, в кластере с 3-мя зонами MaxSkew установлен в 1, а Pod с одинаковым labelSelector распределены как 2/2/1: В этом случае глобальный минимум равен 1. | зона1 | зона2 | зона3 | | P P | P P | P | - если MaxSkew равен 1, новый Pod может быть запланирован только в зону 3, чтобы стать 2/2/2; планирование его в зону 1(зону 2) приведет к тому, что ActualSkew(3-1) в зоне 1(зоне 2) нарушит MaxSkew(1). - если MaxSkew равен 2, новый Pod может быть запланирован в любую зону. Когда whenUnsatisfiable=ScheduleAnyway, это используется для придания более высокого приоритета топологиям, которые его удовлетворяют. Это обязательное поле. Значение по умолчанию равно 1, а 0 недопустимо.

    • topologySpreadConstraints.topologyKey (string), необходимо

      TopologyKey — это ключ меток узла. Узлы, имеющие метку с этим ключом и идентичными значениями, считаются принадлежащими к одной топологии. Мы рассматриваем каждую пару <ключ, значение> как «ведро» и пытаемся поместить в каждое ведро сбалансированное количество Pod. Мы определяем домен как конкретную инстанцию топологии. Также мы определяем подходящий домен как домен, узлы которого соответствуют требованиям nodeAffinityPolicy и nodeTaintsPolicy. Например, если TopologyKey равен «kubernetes.io/hostname», каждый узел является доменом этой топологии. И если TopologyKey равен «topology.kubernetes.io/zone», каждая зона является доменом этой топологии. Это обязательное поле.

    • topologySpreadConstraints.whenUnsatisfiable (string), необходимо

      WhenUnsatisfiable указывает, как обрабатывать Pod, если он не удовлетворяет ограничению распределения.

      • DoNotSchedule (по умолчанию) сообщает планировщику не планировать его.
      • ScheduleAnyway сообщает планировщику запланировать Pod в любом месте, но при этом отдавать приоритет топологиям, которые помогут уменьшить дисбаланс.

      Ограничение считается «неудовлетворительным» для нового Pod тогда и только тогда, когда любое возможное назначение этого Pod на узел нарушит «MaxSkew» в какой-либо топологии. Например, в кластере с 3-мя зонами MaxSkew равен 1, а Pod с одинаковым labelSelector распределены как 3/1/1: | зона1 | зона2 | зона3 | | P P P | P | P | Если WhenUnsatisfiable равен DoNotSchedule, новый Pod может быть запланирован только в зону 2(зону 3), чтобы стать 3/2/1(3/1/2), так как ActualSkew(2-1) в зоне 2(зоне 3) удовлетворяет MaxSkew(1). Другими словами, кластер может по-прежнему быть несбалансированным, но планировщик не сделает его *более* несбалансированным. Это обязательное поле.

    • topologySpreadConstraints.labelSelector (LabelSelector)

      LabelSelector используется для поиска соответствующих Pod. Подсчитываются Pod, соответствующие этому labelSelector, чтобы определить количество Pod в соответствующем топологическом домене.

    • topologySpreadConstraints.matchLabelKeys ([]string)

      Атомарный: будет заменён при слиянии

      MatchLabelKeys — это набор ключей меток Pod для выбора Pod, по которым будет рассчитываться распределение. Ключи используются для поиска значений из меток нового Pod, эти метки ключ-значение связываются с labelSelector для выбора группы существующих Pod, по которым будет рассчитываться распределение для нового Pod. Ключи, которых нет в метках нового Pod, будут игнорироваться. Значение null или пустой список означает, что подбор происходит только по labelSelector.

    • topologySpreadConstraints.minDomains (int32)

      MinDomains указывает минимальное количество подходящих доменов. Когда количество подходящих доменов с соответствующими ключами топологии меньше minDomains, Pod Topology Spread обрабатывает «глобальный минимум» как 0, а затем выполняется вычисление Skew. И когда количество подходящих доменов с соответствующими ключами топологии равно или больше minDomains, это значение не влияет на планирование. В результате, когда количество подходящих доменов меньше minDomains, планировщик не будет планировать более чем maxSkew Pod в эти домены. Если значение равно null, ограничение ведет себя так, как если бы MinDomains было равно 1. Допустимые значения — целые числа, большие 0. Когда значение не null, WhenUnsatisfiable должно быть DoNotSchedule.

      Например, в кластере с 3-мя зонами MaxSkew равен 2, MinDomains равен 5, а Pod с одинаковым labelSelector распределены как 2/2/2: | зона1 | зона2 | зона3 | | P P | P P | P P | Количество доменов меньше 5(MinDomains), поэтому «глобальный минимум» обрабатывается как 0. В этой ситуации новый Pod с тем же labelSelector не может быть запланирован, потому что вычисленный дисбаланс будет 3(3 - 0), если новый Pod запланирован в любую из трех зон, это нарушит MaxSkew.

      Это поле в стадии бета-тестирования и требует, чтобы функция MinDomainsInPodTopologySpread была включена (включена по умолчанию).

    • topologySpreadConstraints.nodeAffinityPolicy (string)

      NodeAffinityPolicy указывает, как мы будем обрабатывать nodeAffinity/nodeSelector Pod при расчете дисбаланса топологии Pod. Доступные варианты: - Honor: в расчетах учитываются только узлы, соответствующие nodeAffinity/nodeSelector. - Ignore: nodeAffinity/nodeSelector игнорируются. Во всех расчетах участвуют все узлы.

      Если это значение равно null, поведение эквивалентно политике Honor. Это функция в стадии бета-тестирования, по умолчанию включенная с помощью флага NodeInclusionPolicyInPodTopologySpread.

    • topologySpreadConstraints.nodeTaintsPolicy (string)

      NodeTaintsPolicy указывает, как мы будем обрабатывать метки узлов при расчете дисбаланса топологии Pod. Доступные варианты: - Honor: учитываются узлы без меток, а также помеченные узлы, для которых у нового Pod есть толерантность. - Ignore: метки узлов игнорируются. Во всех расчетах участвуют все узлы.

      Если это значение равно null, поведение эквивалентно политике Ignore. Это функция в стадии бета-тестирования, по умолчанию включенная с помощью флага NodeInclusionPolicyInPodTopologySpread.

  • overhead (map[string]Quantity)

    Overhead представляет собой ресурсный избыток, связанный с запуском Pod для данного RuntimeClass. Это поле будет автоматически заполняться во время принятия на вход, контроллером приема RuntimeClass. Если контроллер приема RuntimeClass включен, overhead не должен устанавливаться в запросах создания Pod. Контроллер приема RuntimeClass отклонит запросы создания Pod, в которых overhead уже установлен. Если RuntimeClass настроен и выбран в PodSpec, Overhead будет установлен в значение, определенное в соответствующем RuntimeClass, в противном случае он останется не установленным и будет считаться нулевым. Дополнительная информация: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md

Жизненный цикл

  • restartPolicy (string)

    Политика перезапуска для всех контейнеров в Pod. Один из Always, OnFailure, Never. По умолчанию Always. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy

  • terminationGracePeriodSeconds (int64)

    Необязательный интервал времени в секундах, необходимый Pod для плавного завершения. Может быть уменьшен в запросе удаления. Значение должно быть неотрицательным целым числом. Значение ноль означает немедленное завершение с помощью сигнала kill (нет возможности завершить работу). Если это значение равно null, вместо него будет использоваться значение по умолчанию. Интервал времени — это интервал в секундах после того, как процессам, работающим в Pod, отправлен сигнал о завершении, и вплоть до момента, когда процессы насильственно остановлены с помощью сигнала kill. Установите это значение больше, чем ожидаемое время завершения работы вашего процесса. По умолчанию 30 секунд.

  • activeDeadlineSeconds (int64)

    Необязательный интервал времени в секундах, в течение которого Pod может оставаться активным на узле относительно StartTime, прежде чем система активно попытается отметить его как завершившийся неудачно и убить связанные контейнеры. Значение должно быть положительным целым числом.

  • readinessGates ([]PodReadinessGate)

    Если указано, все шлюзы готовности будут оценены для готовности Pod. Pod считается готовым, когда все его контейнеры готовы и все условия, указанные в шлюзах готовности, имеют статус, равный «True». Дополнительная информация: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates

    PodReadinessGate содержит ссылку на условие Pod

    • readinessGates.conditionType (string), необходимо

      ConditionType относится к условию в списке состояний Pod с соответствующим типом.

Разрешение имени и имени узла

  • hostname (строка)

    Указывает имя хоста Pod. Если не указано, имя хоста под будет установлено в значение, определённое системой.

  • setHostnameAsFQDN (логическое значение)

    Если true, имя хоста под будет настроено как FQDN под, а не имя листа (по умолчанию). В контейнерах Linux это означает установку FQDN в поле hostname ядра (поле nodename структуры utsname). В контейнерах Windows это означает установку значения реестра hostname для ключа реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters в FQDN. Если у под нет FQDN, это не оказывает никакого эффекта. По умолчанию false.

  • subdomain (строка)

    Если указано, полное имя хоста Pod будет "<hostname>.<subdomain>.<пространство имён под>.svc.<домен кластера>". Если не указано, у под не будет доменного имени.

  • hostAliases ([]HostAlias)

    Стратегия патча: слияние по ключу ip

    HostAliases — это необязательный список хостов и IP-адресов, которые будут внедрены в файл hosts под, если указаны. Это верно только для под без hostNetwork.

    HostAlias содержит отображение между IP-адресом и именами хостов, которые будут внедрены в качестве записи в файл hosts под.

    • hostAliases.hostnames ([]строка)

      Имена хостов для вышеуказанного IP-адреса.

    • hostAliases.ip (строка)

      IP-адрес записи в файле хостов.

  • dnsConfig (PodDNSConfig)

    Указывает параметры DNS под. Параметры, указанные здесь, будут объединены с генерируемой конфигурацией DNS на основе DNSPolicy.

    PodDNSConfig определяет параметры DNS под помимо тех, которые генерируются из DNSPolicy.

    • dnsConfig.nameservers ([]строка)

      Список IP-адресов DNS-серверов. Это будет добавлено к базовым DNS-серверам, сгенерированным из DNSPolicy. Повторные серверы будут удалены.

    • dnsConfig.options ([]PodDNSConfigOption)

      Список параметров DNS-резолвера. Это будет объединён с базовыми параметрами, сгенерированными из DNSPolicy. Повторные записи будут удалены. Параметры разрешения, заданные в параметрах, переопределят те, что появляются в базовом DNSPolicy.

      PodDNSConfigOption определяет параметры DNS-резолвера под.

      • dnsConfig.options.name (строка)

        Обязательно.

      • dnsConfig.options.value (строка)

    • dnsConfig.searches ([]строка)

      Список DNS-доменов поиска для поиска по имени хоста. Это будет добавлено к базовым путям поиска, сгенерированным из DNSPolicy. Повторные пути поиска будут удалены.

  • dnsPolicy (строка)

    Установите политику DNS для под. По умолчанию "ClusterFirst". Допустимые значения: 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' или 'None'. Параметры DNS, заданные в DNSConfig, будут объединены с политикой, выбранной с помощью DNSPolicy. Чтобы установить параметры DNS вместе с hostNetwork, необходимо явно указать политику DNS в 'ClusterFirstWithHostNet'.

Пространства имён хостов

  • hostNetwork (логическое значение)

    Запрошен хостовый сетевой интерфейс для данного под. Использование сетевого пространства имён хоста. Если этот параметр установлен, необходимо указать используемые порты. По умолчанию false.

  • hostPID (логическое значение)

    Использование пространства имён PID хоста. Необязательно: По умолчанию false.

  • hostIPC (логическое значение)

    Использование пространства имён IPC хоста. Необязательно: По умолчанию false.

  • shareProcessNamespace (логическое значение)

    Общий процесс пространства имён между всеми контейнерами в под. Когда это установлено, контейнеры смогут отображать и сигналить процессам из других контейнеров в том же под, и первому процессу в каждом контейнере не будет назначен PID 1. HostPID и ShareProcessNamespace не могут быть одновременно установлены. Необязательно: По умолчанию false.

Учетная запись службы

  • serviceAccountName (строка)

    ServiceAccountName — имя ServiceAccount, которое нужно использовать для запуска данного под. Более подробная информация: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/

  • automountServiceAccountToken (логическое значение)

    AutomountServiceAccountToken указывает, следует ли автоматически монтировать токен учетной записи службы.

Контекст безопасности

  • securityContext (PodSecurityContext)

    SecurityContext содержит атрибуты безопасности на уровне под и общие настройки контейнеров. Необязательно: по умолчанию пусто. Смотрите описание типа для значений по умолчанию каждого поля.

    PodSecurityContext содержит атрибуты безопасности на уровне под и общие настройки контейнеров. Некоторые поля также присутствуют в container.securityContext. Значения полей container.securityContext имеют приоритет над значениями полей PodSecurityContext.

    • securityContext.runAsUser (int64)

      UID для запуска точки входа процесса контейнера. По умолчанию используется пользователь, указанный в метаданных образа, если не указан. Также может быть задан в SecurityContext. Если задан как в SecurityContext, так и в PodSecurityContext, значение из SecurityContext имеет приоритет для данного контейнера. Обратите внимание, что это поле нельзя задать, когда spec.os.name равно windows.

    • securityContext.runAsNonRoot (boolean)

      Указывает, что контейнер должен выполняться как пользователь, не являющийся root. Если true, Kubelet проверит образ во время выполнения, чтобы убедиться, что он не выполняется с UID 0 (root), и прекратит запуск контейнера, если это так. Если не задано или false, такая проверка не будет выполнена. Также может быть задан в SecurityContext. Если задан как в SecurityContext, так и в PodSecurityContext, значение из SecurityContext имеет приоритет.

    • securityContext.runAsGroup (int64)

      GID для запуска точки входа процесса контейнера. Используется значение по умолчанию runtime, если не задано. Также может быть задан в SecurityContext. Если задан как в SecurityContext, так и в PodSecurityContext, значение из SecurityContext имеет приоритет для данного контейнера. Обратите внимание, что это поле нельзя задать, когда spec.os.name равно windows.

    • securityContext.supplementalGroups ([]int64)

      Список групп, применяемых к первому процессу, запущенному в каждом контейнере, помимо основной GID контейнера, fsGroup (если задан) и членства в группах, определённых в образе контейнера для uid процесса контейнера. Если не указано, никакие дополнительные группы не добавляются к контейнерам. Обратите внимание, что членство в группах, определённые в образе контейнера для uid процесса контейнера, всё ещё действуют, даже если они не включены в этот список. Обратите внимание, что это поле нельзя задать, когда spec.os.name равно windows.

    • securityContext.fsGroup (int64)

      Специальная дополнительная группа, которая применяется ко всем контейнерам в под. Некоторые типы томов позволяют Kubelet изменить владение этим томом, чтобы он принадлежал под:

      1. Владеющая GID будет FSGroup 2. Флаг setgid установлен (новые файлы, созданные в томе, будут принадлежать FSGroup) 3. Биты разрешений OR'd с rw-rw----

      Если не задано, Kubelet не будет изменять владение и разрешения каких-либо томов. Обратите внимание, что это поле нельзя задать, когда spec.os.name равно windows.

    • securityContext.fsGroupChangePolicy (string)

      fsGroupChangePolicy определяет поведение изменения владения и разрешений тома перед экспонированием внутри под. Это поле будет применяться только к типам томов, которые поддерживают владение на основе fsGroup (и разрешений). Это не повлияет на временные типы томов, такие как: secret, configmaps и emptydir. Допустимые значения: «OnRootMismatch» и «Always». Если не указано, используется «Always». Обратите внимание, что это поле нельзя задать, когда spec.os.name равно windows.

    • securityContext.seccompProfile (SeccompProfile)

      Параметры seccomp, которые должны использовать контейнеры в этом под. Обратите внимание, что это поле нельзя задать, когда spec.os.name равно windows.

      SeccompProfile определяет параметры профиля seccomp для под/контейнера. Может быть задан только один источник профиля.

      • securityContext.seccompProfile.type (string), required

        type указывает, какой вид профиля seccomp будет применён. Допустимые варианты:

        Localhost - должен использоваться профиль, определённый в файле на узле. RuntimeDefault - должен использоваться по умолчанию профиль runtime. Unconfined - не должен применяться никакой профиль.

      • securityContext.seccompProfile.localhostProfile (string)

        localhostProfile указывает, что должен использоваться профиль, определённый в файле на узле. Профиль должен быть предварительно настроен на узле для работы. Должен быть абсолютный путь, относящийся к конфигурированному местоположению профиля seccomp kubelet. Должен быть установлен только при type «Localhost».

    • securityContext.seLinuxOptions (SELinuxOptions)

      Контекст SELinux, который должен быть применён ко всем контейнерам. Если не указано, runtime контейнера выделит случайный контекст SELinux для каждого контейнера. Также может быть задан в SecurityContext. Если задан как в SecurityContext, так и в PodSecurityContext, значение из SecurityContext имеет приоритет для данного контейнера. Обратите внимание, что это поле нельзя задать, когда spec.os.name равно windows.

      SELinuxOptions — это метки, которые должны быть применены к контейнеру

      • securityContext.seLinuxOptions.level (string)

        Уровень — метка уровня SELinux, которая применяется к контейнеру.

      • securityContext.seLinuxOptions.role (string)

        Роль — метка роли SELinux, которая применяется к контейнеру.

      • securityContext.seLinuxOptions.type (string)

        Тип — метка типа SELinux, которая применяется к контейнеру.

      • securityContext.seLinuxOptions.user (string)

        Пользователь — метка пользователя SELinux, которая применяется к контейнеру.

    • securityContext.sysctls ([]Sysctl)

      Sysctls хранят список именных параметров ядра, используемых для под. Под с недопустимыми sysctls (контейнерным runtime) могут не запускаться. Обратите внимание, что это поле нельзя задать, когда spec.os.name равно windows.

      Sysctl определяет параметр ядра, который необходимо установить

      • securityContext.sysctls.name (string), required

        Имя свойства для установки

      • securityContext.sysctls.value (string), required

        Значение свойства для установки

    • securityContext.windowsOptions (WindowsSecurityContextOptions)

      Настройки, специфичные для Windows, применяемые ко всем контейнерам. Если не указано, будут использоваться настройки в SecurityContext контейнера. Если заданы как в SecurityContext, так и в PodSecurityContext, значение из SecurityContext имеет приоритет. Обратите внимание, что это поле нельзя задать, когда spec.os.name равно linux.

      WindowsSecurityContextOptions содержат настройки и учётные данные, специфичные для Windows.

      • securityContext.windowsOptions.gmsaCredentialSpec (string)

        GMSACredentialSpec — место, где веб-хук GMSA admission (https://github.com/kubernetes-sigs/windows-gmsa) встраивает содержимое спецификации учётных данных GMSA, названное полем GMSACredentialSpecName.

      • securityContext.windowsOptions.gmsaCredentialSpecName (string)

        GMSACredentialSpecName — имя спецификации учётных данных GMSA для использования.

      • securityContext.windowsOptions.hostProcess (boolean)

        HostProcess определяет, должен ли контейнер выполняться как контейнер «Host Process». Это поле находится на стадии alpha и будет учтено только компонентами, которые включат флаг функции WindowsHostProcessContainers. Установка этого поля без флага функции приведёт к ошибкам при проверке под. Все контейнеры под должны иметь одинаковое эффективное значение HostProcess (смесь контейнеров HostProcess и non-HostProcess запрещена). Кроме того, если HostProcess равен true, то HostNetwork также должен быть установлен в значение true.

      • securityContext.windowsOptions.runAsUserName (string)

        Имя пользователя в Windows для запуска точки входа процесса контейнера. По умолчанию используется пользователь, указанный в метаданных образа, если не указан. Также может быть задан в PodSecurityContext. Если задан как в SecurityContext, так и в PodSecurityContext, значение из SecurityContext имеет приоритет.

Уровень alpha

  • hostUsers (boolean)

    Использовать пространство имен пользователей хоста. Необязательно: по умолчанию true. Если установлено в true или отсутствует, под будет запущен в пространстве имен пользователей хоста, что полезно, когда поду необходима функция, доступная только в пространстве имен пользователей хоста, например, загрузка модуля ядра с CAP_SYS_MODULE. Если установлено в false, для пода создаётся новое пространство имен пользователей. Установка в false полезна для смягчения уязвимостей выхода из контейнера, даже позволяя пользователям запускать свои контейнеры как root без фактических прав root на хосте. Это поле находится на стадии alpha и поддерживается только серверами, которые включили функцию UserNamespacesSupport.

  • resourceClaims ([]PodResourceClaim)

    Стратегии патчей: retainKeys, merge по ключу name

    Карта: уникальные значения по ключу name будут сохранены при слиянии

    ResourceClaims определяет, какие ResourceClaims должны быть выделены и зарезервированы перед запуском Pod. Ресурсы будут доступны тем контейнерам, которые используют их по имени.

    Это поле находится на стадии alpha и требует включения функции DynamicResourceAllocation.

    Это поле неизменяемо.

    PodResourceClaim ссылается ровно на одну ResourceClaim через ClaimSource. Он добавляет к ней имя, которое однозначно идентифицирует ResourceClaim внутри Pod. Контейнеры, которым нужен доступ к ResourceClaim, ссылаются на неё по этому имени.

    • resourceClaims.name (string), required

      Имя однозначно идентифицирует этот ресурс внутри пода. Должно быть DNS_LABEL.

    • resourceClaims.source (ClaimSource)

      Source описывает, где найти ResourceClaim.

      *ClaimSource описывает ссылку на ResourceClaim.

      Должно быть установлено ровно одно из этих полей. Потребители этого типа должны рассматривать пустой объект как имеющий неизвестное значение.*

      • resourceClaims.source.resourceClaimName (string)

        ResourceClaimName — имя объекта ResourceClaim в том же пространстве имён, что и этот под.

      • resourceClaims.source.resourceClaimTemplateName (string)

        ResourceClaimTemplateName — имя объекта ResourceClaimTemplate в том же пространстве имён, что и этот под.

        Шаблон будет использован для создания новой ResourceClaim, которая будет связана с этим под. При удалении этого пода, ResourceClaim также будет удалена. Имя ResourceClaim будет <имя_пода>-<имя_ресурса>, где <имя_ресурса> — PodResourceClaim.Name. Валидация пода отклонит под, если объединённое имя не является допустимым для ResourceClaim (например, слишком длинное).

        Существующая ResourceClaim с таким именем, которая не принадлежит под, не будет использоваться для пода, чтобы избежать случайного использования несвязанного ресурса. Планирование и запуск пода блокируются до тех пор, пока несвязанная ResourceClaim не будет удалена.

        Это поле неизменяемо, и контрольный центр не будет вносить изменений в соответствующую ResourceClaim после создания ResourceClaim.

  • schedulingGates ([]PodSchedulingGate)

    Стратегия патча: merge по ключу name

    Карта: уникальные значения по ключу name будут сохранены при слиянии

    SchedulingGates — неструктурированный список значений, которые, если указаны, заблокируют планирование пода. Дополнительная информация: https://git.k8s.io/enhancements/keps/sig-scheduling/3521-pod-scheduling-readiness.

    Это функция на стадии alpha, активируемая функцией PodSchedulingReadiness.

    PodSchedulingGate ассоциирована с Pod для защиты его планирования.

    • schedulingGates.name (string), required

      Имя шлюза планирования. Каждая воронка планирования должна иметь уникальное поле имени.

Устаревшее

  • serviceAccount (string)

    DeprecatedServiceAccount — устаревший псевдоним для ServiceAccountName. Устарело: Используйте serviceAccountName вместо этого.

Контейнер

Один контейнер приложения, который вы хотите запустить в пода.

  • name (string), required

    Имя контейнера, указанное как DNS_LABEL. Каждый контейнер в пода должен иметь уникальное имя (DNS_LABEL). Не может быть обновлено.

Изображение

  • image (string)

    Имя контейнерного образа. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images Это поле необязательно, чтобы позволить управлению конфигурацией более высокого уровня по умолчанию или перезаписывать образы контейнеров в контроллерах рабочих нагрузок, таких как Deployments и StatefulSets.

  • imagePullPolicy (string)

    Политика подтягивания образа. Одна из Always, Never, IfNotPresent. По умолчанию Always, если указана метка :latest, или IfNotPresent в противном случае. Не может быть обновлено. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images#updating-images

Точка входа

  • command ([]string)

    Массив точек входа. Не выполняется в оболочке. Используется ENTRYPOINT контейнерного образа, если это не указано. Ссылаясь на переменные $(VAR_NAME), используя среду контейнера. Если переменная не может быть разрешена, ссылка в строке ввода останется неизменённой. Двойные $$ сокращаются до одного $, что позволяет экранировать синтаксис $(VAR_NAME): т.е. "$$(VAR_NAME)" даст строковой литерал "$(VAR_NAME)". Экранированные ссылки никогда не будут расширены, независимо от того, существует переменная или нет. Не может быть обновлено. Дополнительная информация: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

  • args ([]string)

    Аргументы для точки входа. Используется CMD контейнерного образа, если это не указано. Ссылаясь на переменные $(VAR_NAME), используя среду контейнера. Если переменная не может быть разрешена, ссылка в строке ввода останется неизменённой. Двойные $$ сокращаются до одного $, что позволяет экранировать синтаксис $(VAR_NAME): т.е. "$$(VAR_NAME)" даст строковой литерал "$(VAR_NAME)". Экранированные ссылки никогда не будут расширены, независимо от того, существует переменная или нет. Не может быть обновлено. Дополнительная информация: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

  • workingDir (string)

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

Порты

  • ports ([]ContainerPort)

    Стратегия патча: merge по ключу containerPort

    Карта: уникальные значения по ключам containerPort, protocol будут сохранены при слиянии

    Список портов для экспорта из контейнера. Отсутствие порта здесь НЕ препятствует его экспорту. Любой порт, который прослушивает по умолчанию адрес "0.0.0.0" внутри контейнера, будет доступен из сети. Изменение этого массива с помощью стратегического патча merge может повредить данные. Для получения дополнительной информации см. https://github.com/kubernetes/kubernetes/issues/108255. Не может быть обновлено.

    ContainerPort представляет сетевой порт в отдельном контейнере.

    • ports.containerPort (int32), required

      Номер порта для экспорта по IP-адресу пода. Должен быть допустимым номером порта, 0 < x < 65536.

    • ports.hostIP (string)

      Какой IP-адрес хоста привязать к внешнему порту.

    • ports.hostPort (int32)

      Номер порта для экспорта на хосте. Если указано, это должен быть допустимый номер порта, 0 < x < 65536. Если указан HostNetwork, это должно совпадать с ContainerPort. Большинству контейнеров это не нужно.

    • ports.name (string)

      Если указано, это должно быть IANA_SVC_NAME и уникальным внутри пода. Каждый именованный порт в пода должен иметь уникальное имя. Имя порта, на которое можно ссылаться через сервисы.

    • ports.protocol (string)

      Протокол для порта. Должен быть UDP, TCP или SCTP. По умолчанию "TCP".

Переменные окружения

  • env ([]EnvVar)

    Стратегия изменения: слияние по ключу name

    Список переменных окружения, которые нужно установить в контейнере. Не может быть обновлен.

    EnvVar представляет переменную окружения, присутствующую в контейнере.

    • env.name (string), необходимо

      Имя переменной окружения. Должно быть C_IDENTIFIER.

    • env.value (string)

      Ссылая на переменные $(VAR_NAME) расширяются с использованием ранее определённых переменных окружения в контейнере и любых переменных окружения сервиса. Если переменная не может быть разрешена, ссылка в входной строке останется неизменной. Двойные $$ сокращаются до одного $, что позволяет избежать синтаксис $(VAR_NAME): например, "$$(VAR_NAME)" произведёт строковый литерал "$(VAR_NAME)". Экранированные ссылки никогда не будут расширены, независимо от того, существует ли переменная или нет. По умолчанию "".

    • env.valueFrom (EnvVarSource)

      Источник значения переменной окружения. Не может быть использован, если значение не пустое.

      EnvVarSource представляет источник значения EnvVar.

      • env.valueFrom.configMapKeyRef (ConfigMapKeySelector)

        Выбирает ключ из ConfigMap.

        Выбирает ключ из ConfigMap.

        • env.valueFrom.configMapKeyRef.key (string), необходимо

          Ключ для выбора.

        • env.valueFrom.configMapKeyRef.name (string)

          Имя объекта. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

        • env.valueFrom.configMapKeyRef.optional (boolean)

          Указывает, должен ли быть определён ConfigMap или его ключ

      • env.valueFrom.fieldRef (ObjectFieldSelector)

        Выбирает поле под: поддерживает metadata.name, metadata.namespace, metadata.labels['\<KEY>'], metadata.annotations['\<KEY>'], spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.

      • env.valueFrom.resourceFieldRef (ResourceFieldSelector)

        Выбирает ресурс контейнера: в настоящее время поддерживаются только лимиты и запросы ресурсов (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory и requests.ephemeral-storage).

      • env.valueFrom.secretKeyRef (SecretKeySelector)

        Выбирает ключ секрета в пространстве имён под.

        SecretKeySelector выбирает ключ секрета.

        • env.valueFrom.secretKeyRef.key (string), необходимо

          Ключ секрета для выбора. Должен быть допустимым ключом секрета.

        • env.valueFrom.secretKeyRef.name (string)

          Имя объекта. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

        • env.valueFrom.secretKeyRef.optional (boolean)

          Указывает, должен ли быть определён Secret или его ключ

  • envFrom ([]EnvFromSource)

    Список источников для заполнения переменных окружения в контейнере. Ключи, определённые в источнике, должны быть C_IDENTIFIER. Все недопустимые ключи будут сообщены как событие при запуске контейнера. Когда ключ существует в нескольких источниках, значение, связанное с последним источником, будет иметь приоритет. Значения, определённые Env с дублирующим ключом, будут иметь приоритет. Не может быть обновлён.

    EnvFromSource представляет источник набора ConfigMap

    • envFrom.configMapRef (ConfigMapEnvSource)

      ConfigMap для выбора.

      *ConfigMapEnvSource выбирает ConfigMap для заполнения переменных окружения.

      Содержимое поля Data целевого ConfigMap будет представлять пары ключ-значение как переменные окружения.*

      • envFrom.configMapRef.name (string)

        Имя объекта. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

      • envFrom.configMapRef.optional (boolean)

        Указывает, должен ли быть определён ConfigMap

    • envFrom.prefix (string)

      Необязательный идентификатор для добавления к каждому ключу в ConfigMap. Должен быть C_IDENTIFIER.

    • envFrom.secretRef (SecretEnvSource)

      Секрет для выбора.

      *SecretEnvSource выбирает Secret для заполнения переменных окружения.

      Содержимое поля Data целевого Secret будет представлять пары ключ-значение как переменные окружения.*

      • envFrom.secretRef.name (string)

        Имя объекта. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

      • envFrom.secretRef.optional (boolean)

        Указывает, должен ли быть определён Secret

Тома

  • volumeMounts ([]VolumeMount)

    Стратегия изменения: слияние по ключу mountPath

    Тома Pod, которые нужно смонтировать в файловую систему контейнера. Не может быть обновлён.

    VolumeMount описывает монтирование тома внутри контейнера.

    • volumeMounts.mountPath (string), необходимо

      Путь внутри контейнера, в котором должен быть смонтирован том. Не должен содержать ':'.

    • volumeMounts.name (string), необходимо

      Это должно совпадать с именем тома.

    • volumeMounts.mountPropagation (string)

      mountPropagation определяет, как монтирования распространяются от хоста к контейнеру и наоборот. Если не указано, используется MountPropagationNone. Это поле является бета-версией в 1.10.

    • volumeMounts.readOnly (boolean)

      Монтируется только для чтения, если true, в противном случае (false или не указано). По умолчанию false.

    • volumeMounts.subPath (string)

      Путь внутри тома, из которого должен быть смонтирован том контейнера. По умолчанию "" (корень тома).

    • volumeMounts.subPathExpr (string)

      Расширенный путь внутри тома, из которого должен быть смонтирован том контейнера. Ведёт себя подобно SubPath, но ссылки на переменные окружения $(VAR_NAME) расширяются с использованием переменных окружения контейнера. По умолчанию "" (корень тома). SubPathExpr и SubPath взаимно исключают друг друга.

  • volumeDevices ([]VolumeDevice)

    Стратегия изменения: слияние по ключу devicePath

    volumeDevices - список блочных устройств, которые будут использоваться контейнером.

    volumeDevice описывает сопоставление блочного устройства в контейнере.

    • volumeDevices.devicePath (string), необходимо

      devicePath - путь внутри контейнера, к которому будет сопоставлено устройство.

    • volumeDevices.name (string), необходимо

      name должно совпадать с именем persistentVolumeClaim в под.

Ресурсы

  • resources (ResourceRequirements)

    Вычислительные ресурсы, необходимые этим контейнером. Не может быть обновлён. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

    ResourceRequirements описывает требования к вычислительным ресурсам.

    • resources.claims ([]ResourceClaim)

      Множество: уникальные значения будут сохранены во время слияния

      Claims перечисляет имена ресурсов, определённых в spec.resourceClaims, которые используются этим контейнером.

      Это альфа-поле и требует включения функции DynamicResourceAllocation.

      Это поле неизменяемо.

      ResourceClaim ссылается на одну запись в PodSpec.ResourceClaims.

      • resources.claims.name (string), необходимо

        Имя должно совпадать с именем одной записи в pod.spec.resourceClaims Pod, где используется это поле. Это делает ресурс доступным внутри контейнера.

    • resources.limits (map[string]Quantity)

      Limits описывает максимальное количество вычислительных ресурсов, разрешенных. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

    • resources.requests (map[string]Quantity)

      Requests описывает минимальное количество вычислительных ресурсов, необходимых. Если Requests опущен для контейнера, он по умолчанию равен Limits, если это явно указано, в противном случае равен значению, определённому реализацией. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

Жизненный цикл

  • Жизненный цикл (Lifecycle)

    Действия, которые система управления должна предпринять в ответ на события жизненного цикла контейнера. Не может быть обновлено.

    Жизненный цикл описывает действия, которые система управления должна предпринять в ответ на события жизненного цикла контейнера. Для обработчиков жизненного цикла PostStart и PreStop управление контейнером блокируется до завершения действия, если процесс контейнера не завершается ошибкой, в этом случае обработчик прерывается.

    • lifecycle.postStart (LifecycleHandler)

      PostStart вызывается сразу после создания контейнера. Если обработчик завершается ошибкой, контейнер завершается и перезапускается в соответствии с политикой перезапуска. Другое управление контейнером блокируется до завершения обработчика. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

    • lifecycle.preStop (LifecycleHandler)

      PreStop вызывается непосредственно перед завершением контейнера из-за запроса API или события управления, такого как неудача зондирования работоспособности/запуска, вытеснение, конкуренция ресурсов и т. д. Обработчик не вызывается, если контейнер аварийно завершает работу или выходит. Счётчик периода завершения работы Pod начинает отсчёт перед выполнением обработчика PreStop. Независимо от результата работы обработчика, контейнер в конечном итоге завершит работу в течение периода завершения работы Pod (если не задерживается финализаторами). Другое управление контейнером блокируется до завершения обработчика или достижения периода завершения работы. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

  • terminationMessagePath (строка)

    Необязательно: Путь, по которому в файловой системе контейнера будет смонтирован файл, в который будет записано сообщение о завершении контейнера. Записываемое сообщение должно быть кратким финальным статусом, например, сообщением об ошибке проверки. Будет усечено узлом, если превышает 4096 байт. Общий размер сообщения по всем контейнерам будет ограничен 12 Кб. По умолчанию /dev/termination-log. Не может быть обновлено.

  • terminationMessagePolicy (строка)

    Указывает, как должно быть сформировано сообщение о завершении. Файл будет использовать содержимое terminationMessagePath для заполнения сообщения состояния контейнера при успешном и неудачном завершении. FallbackToLogsOnError будет использовать последний фрагмент вывода журнала контейнера, если файл сообщения о завершении пустой, и контейнер завершился с ошибкой. Вывод журнала ограничен 2048 байтами или 80 строками, в зависимости от меньшего значения. По умолчанию File. Не может быть обновлено.

  • livenessProbe (Probe)

    Периодическое зондирование работоспособности контейнера. Контейнер будет перезапущен, если зондирование завершится неудачно. Не может быть обновлено. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

  • readinessProbe (Probe)

    Периодическое зондирование готовности контейнера. Контейнер будет удалён из конечных точек сервиса, если зондирование завершится неудачно. Не может быть обновлено. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

  • startupProbe (Probe)

    StartupProbe указывает, что Pod успешно инициализирован. Если указано, никакие другие зондирования не выполняются, пока это не произойдёт успешно. Если это зондирование завершится неудачно, Pod будет перезапущен, так же, как и если бы завершилось зондирование livenessProbe. Это можно использовать для предоставления различных параметров зондирования в начале жизненного цикла Pod, когда может потребоваться много времени для загрузки данных или разогрева кэша, чем во время стабильной работы. Не может быть обновлено. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

Контекст безопасности

  • securityContext (SecurityContext)

    SecurityContext определяет параметры безопасности, с которыми должен выполняться контейнер. Если задано, поля SecurityContext переопределяют эквивалентные поля PodSecurityContext. Дополнительная информация: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

    SecurityContext хранит настройки безопасности, которые будут применены к контейнеру. Некоторые поля присутствуют как в SecurityContext, так и в PodSecurityContext. При одновременной установке, значения в SecurityContext имеют приоритет.

    • securityContext.runAsUser (int64)

      UID для запуска точки входа процесса контейнера. По умолчанию используется пользователь, указанный в метаданных изображения, если не указано иное. Может быть также задан в PodSecurityContext. Если задан как в SecurityContext, так и в PodSecurityContext, значение в SecurityContext имеет приоритет. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.

    • securityContext.runAsNonRoot (boolean)

      Указывает, что контейнер должен выполняться как пользователь, не являющийся root. Если true, Kubelet проверит изображение во время выполнения, чтобы убедиться, что оно не выполняется с UID 0 (root), и прекратит запуск контейнера, если это произойдёт. Если не задано или false, такая проверка не выполняется. Может быть также задан в PodSecurityContext. Если задан как в SecurityContext, так и в PodSecurityContext, значение в SecurityContext имеет приоритет.

    • securityContext.runAsGroup (int64)

      GID для запуска точки входа процесса контейнера. Использует значение по умолчанию runtime, если не задано. Может быть также задан в PodSecurityContext. Если задан как в SecurityContext, так и в PodSecurityContext, значение в SecurityContext имеет приоритет. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.

    • securityContext.readOnlyRootFilesystem (boolean)

      Указывает, имеет ли этот контейнер чтение-только корневую файловую систему. По умолчанию false. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.

    • securityContext.procMount (string)

      procMount определяет тип монтирования proc для контейнеров. По умолчанию DefaultProcMount, который использует значения по умолчанию runtime для чтения-только путей и замаскированных путей. Требует включения функции ProcMountType. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.

    • securityContext.privileged (boolean)

      Выполнять контейнер в привилегированном режиме. Процессы в привилегированных контейнерах по сути эквивалентны root на хосте. По умолчанию false. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.

    • securityContext.allowPrivilegeEscalation (boolean)

      AllowPrivilegeEscalation управляет возможностью процесса получить больше привилегий, чем у родительского процесса. Этот bool напрямую управляет установкой флага no_new_privs для процесса контейнера. AllowPrivilegeEscalation всегда true, когда контейнер: 1) выполняется с привилегиями 2) имеет CAP_SYS_ADMIN Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.

    • securityContext.capabilities (Capabilities)

      Возможности для добавления/удаления при выполнении контейнеров. По умолчанию использует набор возможностей, предоставляемых runtime. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.

      Добавляет и удаляет POSIX возможности для работающих контейнеров.

      • securityContext.capabilities.add ([]string)

        Добавленные возможности

      • securityContext.capabilities.drop ([]string)

        Удаленные возможности

    • securityContext.seccompProfile (SeccompProfile)

      Параметры seccomp для использования этим контейнером. Если параметры seccomp предоставлены как на уровне pod, так и на уровне контейнера, параметры контейнера переопределяют параметры pod. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.

      SeccompProfile определяет настройки профиля seccomp для pod/контейнера. Может быть установлен только один источник профиля.

      • securityContext.seccompProfile.type (string), required

        type указывает вид профиля seccomp, который будет применён. Допустимые варианты:

        Localhost — должен использоваться профиль, определённый в файле на узле. RuntimeDefault — должен использоваться профиль по умолчанию runtime. Unconfined — профиль не должен применяться.

      • securityContext.seccompProfile.localhostProfile (string)

        localhostProfile указывает, что должен использоваться профиль, определённый в файле на узле. Профиль должен быть предварительно настроен на узле, чтобы работать. Должен быть абсолютным путём, относительным к настроенному расположению профиля seccomp kubelet. Должен быть установлен только при type = "Localhost".

    • securityContext.seLinuxOptions (SELinuxOptions)

      SELinux контекст, который должен быть применён к контейнеру. Если не указано, runtime контейнера выделит случайный SELinux контекст для каждого контейнера. Может быть также задан в PodSecurityContext. Если задан как в SecurityContext, так и в PodSecurityContext, значение в SecurityContext имеет приоритет. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.

      SELinuxOptions — метки, которые должны быть применены к контейнеру

      • securityContext.seLinuxOptions.level (string)

        Уровень — метка уровня SELinux, применяемая к контейнеру.

      • securityContext.seLinuxOptions.role (string)

        Роль — метка роли SELinux, применяемая к контейнеру.

      • securityContext.seLinuxOptions.type (string)

        Тип — метка типа SELinux, применяемая к контейнеру.

      • securityContext.seLinuxOptions.user (string)

        Пользователь — метка пользователя SELinux, применяемая к контейнеру.

    • securityContext.windowsOptions (WindowsSecurityContextOptions)

      Настройки, специфичные для Windows, применяемые ко всем контейнерам. Если не указано, будут использованы опции из PodSecurityContext. Если заданы как в SecurityContext, так и в PodSecurityContext, значение в SecurityContext имеет приоритет. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — linux.

      WindowsSecurityContextOptions содержат опции и учетные данные, специфичные для Windows.

      • securityContext.windowsOptions.gmsaCredentialSpec (string)

        GMSACredentialSpec — место, где веб-хук GMSA admission (https://github.com/kubernetes-sigs/windows-gmsa) встраивает содержимое спецификации учетных данных GMSA, названной полем GMSACredentialSpecName.

      • securityContext.windowsOptions.gmsaCredentialSpecName (string)

        GMSACredentialSpecName — имя спецификации учетных данных GMSA для использования.

      • securityContext.windowsOptions.hostProcess (boolean)

        HostProcess определяет, должен ли контейнер выполняться как контейнер 'Host Process'. Это поле находится на стадии альфа-версии и будет учтено только компонентами, которые включили функцию WindowsHostProcessContainers. Установка этого поля без функции приведет к ошибкам при проверке Pod. Все контейнеры Pod должны иметь одинаковое эффективное значение HostProcess (нельзя смешивать контейнеры HostProcess и не-HostProcess). Кроме того, если HostProcess = true, то HostNetwork также должен быть равен true.

      • securityContext.windowsOptions.runAsUserName (string)

        Имя пользователя в Windows для запуска точки входа процесса контейнера. По умолчанию используется пользователь, указанный в метаданных изображения, если не указано иное. Может быть также задан в PodSecurityContext. Если задан как в SecurityContext, так и в PodSecurityContext, значение в SecurityContext имеет приоритет.

Отладка

  • stdin (boolean)

    Указывает, должен ли этот контейнер выделять буфер для stdin в runtime контейнера. Если не задано, чтение из stdin в контейнере всегда приведет к EOF. По умолчанию false.

  • stdinOnce (boolean)

    Указывает, должен ли runtime контейнера закрыть канал stdin после его открытия единственным подключением. При stdin = true, поток stdin останется открытым при нескольких сессиях подключения. Если stdinOnce = true, stdin открывается при запуске контейнера, пустой до первого подключения клиента к stdin, затем остаётся открытым и принимает данные до отключения клиента, после чего stdin закрывается и остаётся закрытым до перезапуска контейнера. Если этот флаг равен false, процесс контейнера, читающий из stdin, никогда не получит EOF. По умолчанию false.

  • tty (boolean)

    Указывает, должен ли этот контейнер выделить себе TTY, также требует, чтобы 'stdin' было true. По умолчанию false.

ВременныйКонтейнер

ВременныйКонтейнер — это временный контейнер, который вы можете добавить к существующему Pod для пользовательских действий, таких как отладка. Временные контейнеры не имеют гарантий ресурсов или планирования, и они не будут перезапущены при выходе или удалении/перезапуске Pod. Kubelet может удалить Pod, если временный контейнер приведет к превышению выделенных ресурсов Pod.

Чтобы добавить временный контейнер, используйте подресурс ephemeralcontainers существующего Pod. Временные контейнеры не могут быть удалены или перезапущены.

  • name (string), required

    Имя временного контейнера, задаваемое как DNS_LABEL. Это имя должно быть уникальным среди всех контейнеров, init-контейнеров и временных контейнеров.

  • targetContainerName (string)

    Если задано, имя контейнера из PodSpec, к которому этот временный контейнер обращается. Временный контейнер будет выполняться в пространствах имен (IPC, PID и т. д.) этого контейнера. Если не задано, временный контейнер использует пространства имен, настроенные в спецификации Pod.

    Контейнерный runtime должен поддерживать эту функцию. Если runtime не поддерживает нацеливание на пространства имен, результат установки этого поля неопределён.

Изображение

  • image (string)

    Имя контейнерного изображения. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images

  • imagePullPolicy (string)

    Политика подтягивания изображения. Одна из Always, Never, IfNotPresent. По умолчанию Always, если указан тег :latest, иначе IfNotPresent. Не может быть обновлена. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images#updating-images

Точка входа

  • command ([]string)

    Массив точек входа. Не выполняется в оболочке. Если не указано, используется ENTRYPOINT изображения. Ссылки переменных $(VAR_NAME) расширяются с помощью среды контейнера. Если переменная не может быть разрешена, ссылка в входной строке останется без изменений. Двойные $$ сводятся к одному $, что позволяет экранировать синтаксис $(VAR_NAME): т.е. "$$(VAR_NAME)" даст строковый литерал "$(VAR_NAME)". Экранированные ссылки никогда не будут расширены, независимо от того, существует ли переменная или нет. Не может быть обновлено. Дополнительная информация: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

  • args ([]string)

    Аргументы для точки входа. Если не указано, используется CMD изображения. Ссылки переменных $(VAR_NAME) расширяются с помощью среды контейнера. Если переменная не может быть разрешена, ссылка в входной строке останется без изменений. Двойные $$ сводятся к одному $, что позволяет экранировать синтаксис $(VAR_NAME): т.е. "$$(VAR_NAME)" даст строковый литерал "$(VAR_NAME)". Экранированные ссылки никогда не будут расширены, независимо от того, существует ли переменная или нет. Не может быть обновлено. Дополнительная информация: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

  • workingDir (string)

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

Переменные окружения

  • env ([]EnvVar)

    Стратегия патчинга: слияние по ключу name

    Список переменных окружения, которые нужно установить в контейнере. Не может быть обновлено.

    EnvVar представляет переменную окружения, присутствующую в контейнере.

    • env.name (string), required

      Имя переменной окружения. Должно быть C_IDENTIFIER.

    • env.value (string)

      Ссылки переменных $(VAR_NAME) расширяются с использованием ранее определенных переменных окружения в контейнере и любых переменных окружения сервиса. Если переменная не может быть разрешена, ссылка в входной строке останется без изменений. Двойные $$ сводятся к одному $, что позволяет экранировать синтаксис $(VAR_NAME): т.е. "$$(VAR_NAME)" даст строковый литерал "$(VAR_NAME)". По умолчанию "".

    • env.valueFrom (EnvVarSource)

      Источник значения переменной окружения. Не может использоваться, если значение не пустое.

      EnvVarSource представляет источник значения EnvVar.

      • env.valueFrom.configMapKeyRef (ConfigMapKeySelector)

        Выбирает ключ из ConfigMap.

        Выбирает ключ из ConfigMap.

        • env.valueFrom.configMapKeyRef.key (string), required

          Ключ для выбора.

        • env.valueFrom.configMapKeyRef.name (string)

          Имя объекта-ссылочного. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

        • env.valueFrom.configMapKeyRef.optional (boolean)

          Указывает, должен ли быть определен ConfigMap или его ключ.

      • env.valueFrom.fieldRef (ObjectFieldSelector)

        Выбирает поле под: поддерживает metadata.name, metadata.namespace, metadata.labels['\<KEY>'], metadata.annotations['\<KEY>'], spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.

      • env.valueFrom.resourceFieldRef (ResourceFieldSelector)

        Выбирает ресурс контейнера: в настоящее время поддерживаются только лимиты и запросы ресурсов (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory и requests.ephemeral-storage).

      • env.valueFrom.secretKeyRef (SecretKeySelector)

        Выбирает ключ секрета в пространстве имен под.

        SecretKeySelector выбирает ключ секрета.

        • env.valueFrom.secretKeyRef.key (string), required

          Ключ секрета для выбора. Должен быть корректным ключом секрета.

        • env.valueFrom.secretKeyRef.name (string)

          Имя объекта-ссылочного. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

        • env.valueFrom.secretKeyRef.optional (boolean)

          Указывает, должен ли быть определен Secret или его ключ.

  • envFrom ([]EnvFromSource)

    Список источников для заполнения переменных окружения в контейнере. Ключи, определенные в источнике, должны быть C_IDENTIFIER. Все некорректные ключи будут сообщены как событие при запуске контейнера. Когда ключ существует в нескольких источниках, значение, связанное с последним источником, будет иметь приоритет. Значения, определенные в Env с дублирующим ключом, будут иметь приоритет. Не может быть обновлено.

    EnvFromSource представляет источник набора ConfigMap

    • envFrom.configMapRef (ConfigMapEnvSource)

      ConfigMap для выбора.

      *ConfigMapEnvSource выбирает ConfigMap для заполнения переменных окружения.

      Содержание поля Data целевого ConfigMap будет представлять пары ключ-значение как переменные окружения.*

      • envFrom.configMapRef.name (string)

        Имя объекта-ссылочного. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

      • envFrom.configMapRef.optional (boolean)

        Указывает, должен ли быть определен ConfigMap.

    • envFrom.prefix (string)

      Необязательный идентификатор для добавления к каждому ключу в ConfigMap. Должно быть C_IDENTIFIER.

    • envFrom.secretRef (SecretEnvSource)

      Секрет для выбора.

      *SecretEnvSource выбирает Secret для заполнения переменных окружения.

      Содержание поля Data целевого Secret будет представлять пары ключ-значение как переменные окружения.*

      • envFrom.secretRef.name (string)

        Имя объекта-ссылочного. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

      • envFrom.secretRef.optional (boolean)

        Указывает, должен ли быть определен Secret.

Тома

  • volumeMounts ([]VolumeMount)

    Стратегия патчинга: слияние по ключу mountPath

    Тома Pod для монтирования в файловую систему контейнера. Подмонтирования для временных контейнеров не разрешены. Не может быть обновлено.

    VolumeMount описывает монтирование тома внутри контейнера.

    • volumeMounts.mountPath (string), required

      Путь внутри контейнера, в который должен быть смонтирован том. Не должен содержать ':'.

    • volumeMounts.name (string), required

      Должно соответствовать имени тома.

    • volumeMounts.mountPropagation (string)

      mountPropagation определяет, как монтирования распространяются с хоста в контейнер и наоборот. Если не указано, используется MountPropagationNone. Это поле бета-версии в 1.10.

    • volumeMounts.readOnly (boolean)

      Монтируется только для чтения, если true, в противном случае (false или не указано). По умолчанию false.

    • volumeMounts.subPath (string)

      Путь внутри тома, из которого должен быть смонтирован том контейнера. По умолчанию "" (корень тома).

    • volumeMounts.subPathExpr (string)

      Расширенный путь внутри тома, из которого должен быть смонтирован том контейнера. Поведение аналогично SubPath, но ссылки переменных окружения $(VAR_NAME) расширяются с помощью среды контейнера. По умолчанию "" (корень тома). SubPathExpr и SubPath взаимоисключающие.

  • volumeDevices ([]VolumeDevice)

    Стратегия патчинга: слияние по ключу devicePath

    volumeDevices — список блочных устройств, которые будут использоваться контейнером.

    volumeDevice описывает отображение блочного устройства в контейнере.

    • volumeDevices.devicePath (string), required

      devicePath — путь внутри контейнера, к которому будет промаппировано устройство.

    • volumeDevices.name (string), required

      name должно совпадать с именем persistentVolumeClaim в pod

Жизненный цикл

  • terminationMessagePath (string)

    Необязательно: Путь, по которому монтируется файл, в который будет записано сообщение о завершении контейнера. Сообщение предназначено для краткого финального статуса, например, сообщения об ошибке утверждения. Будет усечено узлом, если превышает 4096 байт. Общая длина сообщения для всех контейнеров будет ограничена 12 Кб. По умолчанию /dev/termination-log. Не может быть обновлено.

  • terminationMessagePolicy (string)

    Указывает, как должно быть сформировано сообщение о завершении. Файл будет использовать содержимое terminationMessagePath для заполнения сообщения состояния контейнера как при успехе, так и при ошибке. FallbackToLogsOnError будет использовать последнюю часть логов контейнера, если файл сообщения о завершении пуст, а контейнер завершился с ошибкой. Вывод логов ограничен 2048 байтами или 80 строками, в зависимости от того, что меньше. По умолчанию File. Не может быть обновлено.

Отладка

  • stdin (boolean)

    Указывает, должен ли этот контейнер выделять буфер для stdin в среде выполнения контейнера. Если это не задано, чтение из stdin в контейнере всегда будет возвращать EOF. По умолчанию значение false.

  • stdinOnce (boolean)

    Указывает, должна ли среда выполнения контейнера закрывать канал stdin после его открытия одним подключением. Если stdin равно true, поток stdin останется открытым для нескольких сессий подключения. Если stdinOnce имеет значение true, stdin открывается при запуске контейнера, пуст до первого подключения клиента к stdin, а затем остается открытым и принимает данные до отключения клиента, после чего stdin закрывается и остается закрытым до перезапуска контейнера. Если этот флаг имеет значение false, процесс контейнера, который читает из stdin, никогда не получит EOF. По умолчанию значение false.

  • tty (boolean)

    Указывает, должен ли этот контейнер выделять для себя TTY, также требуется, чтобы 'stdin' было true. По умолчанию значение false.

Контекст безопасности

  • securityContext (SecurityContext)

    Необязательно: SecurityContext определяет параметры безопасности, с которыми должен запускаться временный контейнер. Если задано, поля SecurityContext переопределяют эквивалентные поля PodSecurityContext.

    SecurityContext хранит конфигурацию безопасности, которая будет применена к контейнеру. Некоторые поля присутствуют как в SecurityContext, так и в PodSecurityContext. Когда оба установлены, значения в SecurityContext имеют приоритет.

    • securityContext.runAsUser (int64)

      UID для запуска точки входа процесса контейнера. По умолчанию используется пользователь, указанный в метаданных образа, если не указано иное. Также может быть задано в PodSecurityContext. Если задано как в SecurityContext, так и в PodSecurityContext, значение, заданное в SecurityContext, имеет приоритет. Обратите внимание, что это поле нельзя задать, когда spec.os.name имеет значение windows.

    • securityContext.runAsNonRoot (boolean)

      Указывает, что контейнер должен запускаться не как root-пользователь. Если true, Kubelet проверит образ во время выполнения, чтобы убедиться, что он не запущен как UID 0 (root), и не запустит контейнер, если это так. Если не указано или false, такая проверка не будет выполнена. Также может быть задано в PodSecurityContext. Если задано как в SecurityContext, так и в PodSecurityContext, значение, заданное в SecurityContext, имеет приоритет.

    • securityContext.runAsGroup (int64)

      GID для запуска точки входа процесса контейнера. Используется значение по умолчанию среды выполнения, если не указано. Также может быть задано в PodSecurityContext. Если задано как в SecurityContext, так и в PodSecurityContext, значение, заданное в SecurityContext, имеет приоритет. Обратите внимание, что это поле нельзя задать, когда spec.os.name имеет значение windows.

    • securityContext.readOnlyRootFilesystem (boolean)

      Указывает, имеет ли этот контейнер доступ в режиме только для чтения к корневой файловой системе. По умолчанию значение false. Обратите внимание, что это поле нельзя задать, когда spec.os.name имеет значение windows.

    • securityContext.procMount (string)

      procMount определяет тип монтирования proc для контейнеров. По умолчанию используется DefaultProcMount, который использует значения по умолчанию среды выполнения для путей readonly и masked paths. Требуется, чтобы флаг ProcMountType был включен. Обратите внимание, что это поле нельзя задать, когда spec.os.name имеет значение windows.

    • securityContext.privileged (boolean)

      Запустить контейнер в режиме с привилегиями. Процессы в привилегированных контейнерах по сути эквивалентны root в хосте. По умолчанию значение false. Обратите внимание, что это поле нельзя задать, когда spec.os.name имеет значение windows.

    • securityContext.allowPrivilegeEscalation (boolean)

      AllowPrivilegeEscalation определяет, может ли процесс получить больше привилегий, чем у родительского процесса. Этот булевый параметр напрямую контролирует, будет ли установлен флаг no_new_privs для процесса контейнера. AllowPrivilegeEscalation всегда равен true, когда контейнер: 1) запущен с привилегиями 2) имеет CAP_SYS_ADMIN Обратите внимание, что это поле нельзя задать, когда spec.os.name имеет значение windows.

    • securityContext.capabilities (Capabilities)

      Свойства, которые необходимо добавить/удалить при запуске контейнеров. По умолчанию используется набор свойств, предоставляемых средой выполнения контейнера. Обратите внимание, что это поле нельзя задать, когда spec.os.name имеет значение windows.

      Добавляет и удаляет POSIX свойства от запущенных контейнеров.

      • securityContext.capabilities.add ([]string)

        Добавленные свойства

      • securityContext.capabilities.drop ([]string)

        Удаленные свойства

    • securityContext.seccompProfile (SeccompProfile)

      Параметры seccomp для использования этим контейнером. Если параметры seccomp предоставлены как на уровне под, так и на уровне контейнера, параметры контейнера переопределяют параметры под. Обратите внимание, что это поле нельзя задать, когда spec.os.name имеет значение windows.

      SeccompProfile определяет настройки профиля seccomp под/контейнера. Может быть установлен только один источник профиля.

      • securityContext.seccompProfile.type (string), required

        type указывает, какой вид профиля seccomp будет применен. Допустимые значения:

        Localhost - должен использоваться профиль, определенный в файле на узле. RuntimeDefault - должен использоваться профиль по умолчанию среды выполнения контейнера. Unconfined - профиль применять не нужно.

      • securityContext.seccompProfile.localhostProfile (string)

        localhostProfile указывает, что должен использоваться профиль, определенный в файле на узле. Профиль должен быть предварительно настроен на узле для работы. Должен быть нисходящим путем, относительным к настроенному местоположению профиля seccomp kubelet. Должен быть установлен только в том случае, если type равен "Localhost".

    • securityContext.seLinuxOptions (SELinuxOptions)

      Контекст SELinux, который должен быть применен к контейнеру. Если не указано, среда выполнения контейнера выделит случайный контекст SELinux для каждого контейнера. Также может быть задано в PodSecurityContext. Если задано как в SecurityContext, так и в PodSecurityContext, значение, заданное в SecurityContext, имеет приоритет. Обратите внимание, что это поле нельзя задать, когда spec.os.name имеет значение windows.

      SELinuxOptions — это метки, которые нужно применить к контейнеру

      • securityContext.seLinuxOptions.level (string)

        Уровень - метка уровня SELinux, которая применяется к контейнеру.

      • securityContext.seLinuxOptions.role (string)

        Роль - метка роли SELinux, которая применяется к контейнеру.

      • securityContext.seLinuxOptions.type (string)

        Тип - метка типа SELinux, которая применяется к контейнеру.

      • securityContext.seLinuxOptions.user (string)

        Пользователь - метка пользователя SELinux, которая применяется к контейнеру.

    • securityContext.windowsOptions (WindowsSecurityContextOptions)

      Настройки, специфичные для Windows, применяемые ко всем контейнерам. Если не указано, будут использоваться параметры из PodSecurityContext. Если задано как в SecurityContext, так и в PodSecurityContext, значение, заданное в SecurityContext, имеет приоритет. Обратите внимание, что это поле нельзя задать, когда spec.os.name имеет значение linux.

      WindowsSecurityContextOptions содержат параметры и учетные данные, специфичные для Windows.

      • securityContext.windowsOptions.gmsaCredentialSpec (string)

        GMSACredentialSpec - место, где веб-хук GMSA приема (https://github.com/kubernetes-sigs/windows-gmsa) вставляет содержимое спецификации учетных данных GMSA, указанное в поле GMSACredentialSpecName.

      • securityContext.windowsOptions.gmsaCredentialSpecName (string)

        GMSACredentialSpecName - имя спецификации учетных данных GMSA для использования.

      • securityContext.windowsOptions.hostProcess (boolean)

        HostProcess определяет, должен ли контейнер запускаться как контейнер «Процесс хоста». Это поле находится на стадии альфа-версии и будет поддерживаться только компонентами, которые включают флаг WindowsHostProcessContainers. Установка этого поля без флага приведет к ошибкам при проверке под. Все контейнеры в под должны иметь одинаковое эффективное значение HostProcess (смесь контейнеров HostProcess и не HostProcess недопустима). Кроме того, если HostProcess равен true, то HostNetwork также должен быть равен true.

      • securityContext.windowsOptions.runAsUserName (string)

        Имя пользователя в Windows для запуска точки входа процесса контейнера. По умолчанию используется пользователь, указанный в метаданных образа, если не указано иное. Также может быть задано в PodSecurityContext. Если задано как в SecurityContext, так и в PodSecurityContext, значение, заданное в SecurityContext, имеет приоритет.

Недопустимые значения

  • порты ([]ContainerPort)

    Стратегия обновления: слияние по ключу containerPort

    Карта: уникальные значения по ключам containerPort, protocol будут сохранены при слиянии

    Порты не разрешены для временных контейнеров.

    ContainerPort представляет сетевой порт в отдельном контейнере.

    • ports.containerPort (int32), обязательно

      Номер порта, который нужно экспонировать по IP-адресу под. Это должен быть действительный номер порта, 0 < x < 65536.

    • ports.hostIP (string)

      IP-адрес хоста, к которому нужно привязать внешний порт.

    • ports.hostPort (int32)

      Номер порта, который нужно экспонировать на хосте. Если указано, это должен быть действительный номер порта, 0 < x < 65536. Если задан HostNetwork, это значение должно совпадать с ContainerPort. Большинству контейнеров это не нужно.

    • ports.name (string)

      Если указано, это должно быть имя IANA_SVC_NAME и уникальным внутри под. Каждый именованный порт в под должен иметь уникальное имя. Имя порта, к которому можно обратиться через сервисы.

    • ports.protocol (string)

      Протокол для порта. Должно быть UDP, TCP или SCTP. По умолчанию "TCP".

  • resources (ResourceRequirements)

    Ресурсы не разрешены для временных контейнеров. Временные контейнеры используют свободные ресурсы, уже выделенные под.

    ResourceRequirements описывает требования к ресурсам вычисления.

    • resources.claims ([]ResourceClaim)

      Набор: уникальные значения будут сохранены при слиянии

      Список имён ресурсов, определённых в spec.resourceClaims, которые используются этим контейнером.

      Это поле alpha и требует включения функции DynamicResourceAllocation.

      Это поле неизменяемо.

      ResourceClaim ссылается на одну запись в PodSpec.ResourceClaims.

      • resources.claims.name (string), обязательно

        Имя должно совпадать с именем одной записи в pod.spec.resourceClaims под, где используется это поле. Это делает ресурс доступным внутри контейнера.

    • resources.limits (map[string]Quantity)

      Ограничения описывают максимальное количество ресурсов вычисления, разрешённое. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

    • resources.requests (map[string]Quantity)

      Запросы описывают минимальное количество ресурсов вычисления, необходимых. Если Requests не указан для контейнера, он по умолчанию равен Limits, если явно указан, иначе — определённое значение реализации. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

  • lifecycle (Lifecycle)

    Lifecycle не разрешён для временных контейнеров.

    Lifecycle описывает действия, которые система управления должна выполнить в ответ на события жизненного цикла контейнера. Для обработчиков жизненного цикла PostStart и PreStop система управления блокируется до завершения действия, если процесс контейнера завершится неудачно, обработчик прерывается.

    • lifecycle.postStart (LifecycleHandler)

      PostStart вызывается сразу после создания контейнера. Если обработчик завершится неудачно, контейнер завершается и перезапускается в соответствии с политикой перезапуска. Система управления блокируется до завершения обработчика. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

    • lifecycle.preStop (LifecycleHandler)

      PreStop вызывается сразу перед завершением контейнера из-за запроса API или события управления, такого как ошибка проверки liveness/startup, вытеснение, конкуренция за ресурсы и т. д. Обработчик не вызывается, если контейнер завершится аварийно или выйдет. Счётчик отсчёта времени до завершения под начинается до выполнения обработчика PreStop. Независимо от результата обработчика, контейнер в конечном итоге завершится в течение периода благодати завершения под (если не отложен finalizers). Система управления блокируется до завершения обработчика или достижения периода благодати завершения. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

  • livenessProbe (Probe)

    Проверки не разрешены для временных контейнеров.

  • readinessProbe (Probe)

    Проверки не разрешены для временных контейнеров.

  • startupProbe (Probe)

    Проверки не разрешены для временных контейнеров.

Обработчик жизненного цикла

LifecycleHandler определяет конкретное действие, которое должно быть выполнено в обработчике жизненного цикла. Должен быть указан только один из полей, кроме TCPSocket.

  • exec (ExecAction)

    Exec задаёт действие, которое нужно выполнить.

    ExecAction описывает действие «запуск в контейнере».

    • exec.command ([]string)

      Команда — командная строка для выполнения внутри контейнера, рабочая директория для команды — корень ('/') в файловой системе контейнера. Команда просто выполняется, она не выполняется внутри оболочки, поэтому традиционные оболочечные инструкции ('|', и т. д.) не будут работать. Чтобы использовать оболочку, нужно явно вызвать эту оболочку. Код возврата 0 обрабатывается как активный/здоровый, а ненулевой — как нездоровый.

  • httpGet (HTTPGetAction)

    HTTPGet указывает http-запрос для выполнения.

    HTTPGetAction описывает действие, основанное на запросах HTTP Get.

    • httpGet.port (IntOrString), обязательно

      Имя или номер порта для доступа в контейнер. Номер должен быть в диапазоне от 1 до 65535. Имя должно быть IANA_SVC_NAME.

      IntOrString — тип, который может содержать int32 или строку. При использовании в JSON или YAML маршаллировании и размаршаллировании он генерирует или потребляет внутренний тип. Это позволяет иметь, например, поле JSON, которое может принимать имя или номер.

    • httpGet.host (string)

      Имя хоста для подключения, по умолчанию IP-адрес под. Вероятно, вы хотите установить "Host" в httpHeaders вместо этого.

    • httpGet.httpHeaders ([]HTTPHeader)

      Пользовательские заголовки для установки в запросе. HTTP допускает повторяющиеся заголовки.

      HTTPHeader описывает пользовательский заголовок, который нужно использовать в HTTP-проверках

      • httpGet.httpHeaders.name (string), обязательно

        Имя поля заголовка

      • httpGet.httpHeaders.value (string), обязательно

        Значение поля заголовка

    • httpGet.path (string)

      Путь для доступа к HTTP-серверу.

    • httpGet.scheme (string)

      Схема для подключения к хосту. По умолчанию HTTP.

  • tcpSocket (TCPSocketAction)

    Устарело. TCPSocket НЕ поддерживается как LifecycleHandler и сохраняется для обратной совместимости. Нет проверки этого поля, и обработчики жизненного цикла завершатся ошибкой во время выполнения, когда задан обработчик tcp.

    TCPSocketAction описывает действие, основанное на открытии сокета

    • tcpSocket.port (IntOrString), обязательно

      Номер или имя порта для доступа в контейнер. Номер должен быть в диапазоне от 1 до 65535. Имя должно быть IANA_SVC_NAME.

      IntOrString — тип, который может содержать int32 или строку. При использовании в JSON или YAML маршаллировании и размаршаллировании он генерирует или потребляет внутренний тип. Это позволяет иметь, например, поле JSON, которое может принимать имя или номер.

    • tcpSocket.host (string)

      Необязательно: Имя хоста для подключения, по умолчанию IP-адрес под.

Соответствие узлов

Соответствие узлов — это группа правил планирования соответствия узлов.

  • preferredDuringSchedulingIgnoredDuringExecution ([]PreferredSchedulingTerm)

    Планировщик отдаст предпочтение планированию под контейнеров на узлы, которые удовлетворяют выражениям сродства, указанным в этом поле, но он может выбрать узел, нарушающий одно или несколько выражений. Узел, который предпочтительнее всего, — это узел с наибольшей суммой весов, т. е. для каждого узла, удовлетворяющего всем требованиям планирования (запрос ресурсов, выражения сродства requiredDuringScheduling и т. д.), вычислите сумму, перебирая элементы этого поля и добавляя «вес» к сумме, если узел соответствует соответствующим matchExpressions; узел(ы) с наибольшей суммой являются наиболее предпочтительными.

    Пустое выражение предпочтительного планирования соответствует всем объектам с неявным весом 0 (т. е. это нетдействие). Нулевое выражение предпочтительного планирования не соответствует ни одному объекту (т. е. также является нетдействием).

    • preferredDuringSchedulingIgnoredDuringExecution.preference (NodeSelectorTerm), required

      Термин селектора узла, связанный с соответствующим весом.

      Нулевой или пустой термин селектора узла не соответствует ни одному объекту. Требования к ним соединены оператором AND. Тип TopologySelectorTerm реализует подмножество NodeSelectorTerm.

      • preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions ([]NodeSelectorRequirement)

        Список требований селектора узлов по меткам узла.

      • preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields ([]NodeSelectorRequirement)

        Список требований селектора узлов по полям узла.

    • preferredDuringSchedulingIgnoredDuringExecution.weight (int32), required

      Вес, связанный с соответствием соответствующему NodeSelectorTerm, в диапазоне от 1 до 100.

  • requiredDuringSchedulingIgnoredDuringExecution (NodeSelector)

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

    Селектор узла представляет собой объединение результатов одного или нескольких запросов меток по набору узлов; то есть он представляет собой операцию OR над селекторами, представленными терминами селектора узлов.

    • requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms ([]NodeSelectorTerm), required

      Обязательно. Список терминов селектора узлов. Термины соединены оператором OR.

      Нулевой или пустой термин селектора узла не соответствует ни одному объекту. Требования к ним соединены оператором AND. Тип TopologySelectorTerm реализует подмножество NodeSelectorTerm.

      • requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions ([]NodeSelectorRequirement)

        Список требований селектора узлов по меткам узла.

      • requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields ([]NodeSelectorRequirement)

        Список требований селектора узлов по полям узла.

PodAffinity

Pod affinity — это группа правил планирования межпод-сродства.

  • preferredDuringSchedulingIgnoredDuringExecution ([]WeightedPodAffinityTerm)

    Планировщик отдаст предпочтение планированию под контейнеров на узлы, которые удовлетворяют выражениям сродства, указанным в этом поле, но он может выбрать узел, нарушающий одно или несколько выражений. Узел, который предпочтительнее всего, — это узел с наибольшей суммой весов, т. е. для каждого узла, удовлетворяющего всем требованиям планирования (запрос ресурсов, выражения сродства requiredDuringScheduling и т. д.), вычислите сумму, перебирая элементы этого поля и добавляя «вес» к сумме, если узел имеет под контейнеры, которые соответствуют соответствующему podAffinityTerm; узел(ы) с наибольшей суммой являются наиболее предпочтительными.

    Веса всех сопоставленных полей WeightedPodAffinityTerm складываются по узлу, чтобы найти наиболее предпочтительный узел(ы)

    • preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm (PodAffinityTerm), required

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

      Определяет набор под контейнеров (именно тех, которые соответствуют labelSelector относительно заданных пространствам имен), с которыми данный под контейнер должен быть сосредоточен (сродство) или не сосредоточен (противосродство), где сосредоточение определяется как выполнение на узле, значение метки с ключом которого совпадает с любым узлом, на котором выполняется под контейнер из набора под контейнеров.

      • preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey (string), required

        Этот под контейнер должен быть сосредоточен (сродство) или не сосредоточен (противосродство) с под контейнерами, соответствующими labelSelector в указанных пространствах имен, где сосредоточение определяется как выполнение на узле, значение метки с ключом topologyKey которого совпадает с любым узлом, на котором выполняется любой из выбранных под контейнеров. Пустой topologyKey недопустим.

      • preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector (LabelSelector)

        Запрос метки по набору ресурсов, в данном случае под контейнеров.

      • preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector (LabelSelector)

        Запрос метки по набору пространств имен, к которым относится термин. Термин применяется к объединению пространств имен, выбранных этим полем, и к тем, которые перечислены в поле namespaces. Нулевой селектор и нулевой или пустой список пространств имен означают «пространство имен этого под контейнера». Пустой селектор ({}) соответствует всем пространствам имен.

      • preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaces ([]string)

        namespaces указывает статический список имен пространств имен, к которым относится термин. Термин применяется к объединению пространств имен, перечисленных в этом поле, и к тем, которые выбраны namespaceSelector. Нулевой или пустой список пространств имен и нулевой namespaceSelector означают «пространство имен этого под контейнера».

    • preferredDuringSchedulingIgnoredDuringExecution.weight (int32), required

      вес, связанный с соответствием соответствующему podAffinityTerm, в диапазоне от 1 до 100.

  • requiredDuringSchedulingIgnoredDuringExecution ([]PodAffinityTerm)

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

    Определяет набор под контейнеров (именно тех, которые соответствуют labelSelector относительно заданных пространств имен), с которыми данный под контейнер должен быть сосредоточен (сродство) или не сосредоточен (противосродство), где сосредоточение определяется как выполнение на узле, значение метки с ключом которого совпадает с любым узлом, на котором выполняется под контейнер из набора под контейнеров.

    • requiredDuringSchedulingIgnoredDuringExecution.topologyKey (string), required

      Этот под контейнер должен быть сосредоточен (сродство) или не сосредоточен (противосродство) с под контейнерами, соответствующими labelSelector в указанных пространствах имен, где сосредоточение определяется как выполнение на узле, значение метки с ключом topologyKey которого совпадает с любым узлом, на котором выполняется любой из выбранных под контейнеров. Пустой topologyKey недопустим.

    • requiredDuringSchedulingIgnoredDuringExecution.labelSelector (LabelSelector)

      Запрос метки по набору ресурсов, в данном случае под контейнеров.

    • requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector (LabelSelector)

      Запрос метки по набору пространств имен, к которым относится термин. Термин применяется к объединению пространств имен, выбранных этим полем, и к тем, которые перечислены в поле namespaces. Нулевой селектор и нулевой или пустой список пространств имен означают «пространство имен этого под контейнера». Пустой селектор ({}) соответствует всем пространствам имен.

    • requiredDuringSchedulingIgnoredDuringExecution.namespaces ([]string)

      namespaces указывает статический список имен пространств имен, к которым относится термин. Термин применяется к объединению пространств имен, перечисленных в этом поле, и к тем, которые выбраны namespaceSelector. Нулевой или пустой список пространств имен и нулевой namespaceSelector означают «пространство имен этого под контейнера».

PodAntiAffinity

Pod anti affinity — это группа правил планирования противосродства межпод.

  • preferredDuringSchedulingIgnoredDuringExecution ([]WeightedPodAffinityTerm)

    Планировщик предпочтительнее разместит под контейнеры на узлах, которые удовлетворяют выражениям антисродства, указанным в этом поле, но может выбрать узел, который нарушает одно или несколько выражений. Узел, который предпочтительнее всего, — это узел с наибольшей суммой весов, т. е. для каждого узла, который удовлетворяет всем требованиям планирования (запросы ресурсов, выражения антисродства requiredDuringScheduling и т. д.), вычислите сумму, проходя по элементам этого поля и добавляя «вес» к сумме, если узел имеет под, который соответствует соответствующему podAffinityTerm; узлы(ы) с наибольшей суммой являются наиболее предпочтительными.

    Веса всех сопоставленных полей WeightedPodAffinityTerm суммируются на узел для определения наиболее предпочтительных узлов(ов)

    • preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm (PodAffinityTerm), required

      Обязательно. Термин под-сродства, связанный с соответствующим весом.

      Определяет набор под контейнеров (а именно, тех, которые соответствуют labelSelector относительно заданного(ых) пространства(ов) имен), с которыми этот под контейнер должен быть расположен вместе (сродство) или не расположен вместе (антисродство), где расположение вместе определяется как запуск на узле, значение метки с ключом которого соответствует значению любого узла, на котором запущен под контейнер из набора под контейнеров

      • preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey (string), required

        Этот под контейнер должен быть расположен вместе (сродство) или не расположен вместе (антисродство) с под контейнерами, соответствующими labelSelector в указанных пространствах имён, где расположение вместе определяется как запуск на узле, значение метки с ключом topologyKey которого соответствует значению любого узла, на котором запущен любой из выбранных под контейнеров. Пустой topologyKey не допускается.

      • preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector (LabelSelector)

        Запрос меток над набором ресурсов, в данном случае под контейнеров.

      • preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector (LabelSelector)

        Запрос меток над набором пространств имен, к которым относится термин. Термин применяется к объединению пространств имён, выбранных в этом поле, и тех, которые перечислены в поле namespaces. Нулевой селектор и нулевой или пустой список namespaces означает "пространство имён этого под контейнера". Пустой селектор ({}) соответствует всем пространствам имён.

      • preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaces ([]string)

        namespaces указывает статический список имён пространств имён, к которым относится термин. Термин применяется к объединению пространств имён, перечисленных в этом поле, и тех, которые выбраны с помощью namespaceSelector. Нулевой или пустой список namespaces и null namespaceSelector означает "пространство имён этого под контейнера".

    • preferredDuringSchedulingIgnoredDuringExecution.weight (int32), required

      Вес, связанный с соответствием соответствующему podAffinityTerm, в диапазоне от 1 до 100.

  • requiredDuringSchedulingIgnoredDuringExecution ([]PodAffinityTerm)

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

    Определяет набор под контейнеров (а именно, тех, которые соответствуют labelSelector относительно заданного(ых) пространства(ов) имен), с которыми этот под контейнер должен быть расположен вместе (сродство) или не расположен вместе (антисродство), где расположение вместе определяется как запуск на узле, значение метки с ключом которого соответствует значению любого узла, на котором запущен под контейнер из набора под контейнеров

    • requiredDuringSchedulingIgnoredDuringExecution.topologyKey (string), required

      Этот под контейнер должен быть расположен вместе (сродство) или не расположен вместе (антисродство) с под контейнерами, соответствующими labelSelector в указанных пространствах имён, где расположение вместе определяется как запуск на узле, значение метки с ключом topologyKey которого соответствует значению любого узла, на котором запущен любой из выбранных под контейнеров. Пустой topologyKey не допускается.

    • requiredDuringSchedulingIgnoredDuringExecution.labelSelector (LabelSelector)

      Запрос меток над набором ресурсов, в данном случае под контейнеров.

    • requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector (LabelSelector)

      Запрос меток над набором пространств имён, к которым относится термин. Термин применяется к объединению пространств имён, выбранных в этом поле, и тех, которые перечислены в поле namespaces. Нулевой селектор и нулевой или пустой список namespaces означает "пространство имён этого под контейнера". Пустой селектор ({}) соответствует всем пространствам имён.

    • requiredDuringSchedulingIgnoredDuringExecution.namespaces ([]string)

      namespaces указывает статический список имён пространств имён, к которым относится термин. Термин применяется к объединению пространств имён, перечисленных в этом поле, и тех, которые выбраны с помощью namespaceSelector. Нулевой или пустой список namespaces и null namespaceSelector означает "пространство имён этого под контейнера".

Probe

Probe описывает проверку работоспособности, выполняемую для контейнера, чтобы определить, жив ли он или готов принимать трафик.

  • exec (ExecAction)

    Exec указывает действие, которое необходимо выполнить.

    ExecAction описывает действие «запуск в контейнере».

    • exec.command ([]string)

      Command — это команда командной строки, которая должна быть выполнена внутри контейнера; рабочая директория для команды — корень ('/') в файловой системе контейнера. Команда просто выполняется с помощью exec, она не выполняется внутри оболочки, поэтому традиционные оболочковые инструкции ('|', и т.д.) не сработают. Чтобы использовать оболочку, необходимо явно указать эту оболочку. Код завершения 0 обрабатывается как работающий/здоровый, а ненулевой — как нездоровый.

  • httpGet (HTTPGetAction)

    HTTPGet указывает HTTP-запрос, который необходимо выполнить.

    HTTPGetAction описывает действие, основанное на HTTP-GET-запросах.

    • httpGet.port (IntOrString), обязательный параметр

      Имя или номер порта для доступа к контейнеру. Номер должен быть в диапазоне от 1 до 65535. Имя должно быть именем IANA_SVC_NAME.

      IntOrString — это тип, который может содержать int32 или строку. При использовании в JSON или YAML маршалинге и анмаршалинге он производит или потребляет внутренний тип. Это позволяет, например, иметь JSON-поле, которое может принимать имя или число.

    • httpGet.host (string)

      Имя хоста для подключения, по умолчанию — IP-адрес под. Возможно, вы захотите установить «Host» в httpHeaders вместо этого.

    • httpGet.httpHeaders ([]HTTPHeader)

      Настраиваемые заголовки для установки в запросе. HTTP позволяет повторять заголовки.

      HTTPHeader описывает настраиваемый заголовок, который будет использоваться в HTTP-зондах

      • httpGet.httpHeaders.name (string), обязательный параметр

        Имя поля заголовка

      • httpGet.httpHeaders.value (string), обязательный параметр

        Значение поля заголовка

    • httpGet.path (string)

      Путь для доступа к HTTP-серверу.

    • httpGet.scheme (string)

      Схема для подключения к хосту. По умолчанию — HTTP.

  • tcpSocket (TCPSocketAction)

    TCPSocket указывает действие, связанное с TCP-портом.

    TCPSocketAction описывает действие, основанное на открытии сокета

    • tcpSocket.port (IntOrString), обязательный параметр

      Номер или имя порта для доступа к контейнеру. Номер должен быть в диапазоне от 1 до 65535. Имя должно быть именем IANA_SVC_NAME.

      IntOrString — это тип, который может содержать int32 или строку. При использовании в JSON или YAML маршалинге и анмаршалинге он производит или потребляет внутренний тип. Это позволяет, например, иметь JSON-поле, которое может принимать имя или число.

    • tcpSocket.host (string)

      Необязательно: Имя хоста для подключения, по умолчанию — IP-адрес под.

  • initialDelaySeconds (int32)

    Количество секунд после запуска контейнера, прежде чем будут инициированы зонды готовности. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

  • terminationGracePeriodSeconds (int64)

    Необязательный период в секундах, в течение которого pod должен корректно завершиться после сбоя зонда. Период — это количество секунд после того, как процессам в pod отправлено сигнала завершения и до момента, когда процессы насильственно остановлены с помощью сигнала kill. Установите это значение больше ожидаемого времени очистки вашего процесса. Если это значение равно null, будет использоваться terminationGracePeriodSeconds pod. В противном случае это значение переопределяет значение, предоставленное в спецификации pod. Значение должно быть неотрицательным целым числом. Значение ноль указывает на немедленное остановку через сигнал kill (без возможности выключения). Это поле находится на стадии бета-тестирования и требует включения функции ProbeTerminationGracePeriod. Минимальное значение равно 1. spec.terminationGracePeriodSeconds используется, если не указано.

  • periodSeconds (int32)

    Частота выполнения зонда (в секундах). По умолчанию 10 секунд. Минимальное значение 1.

  • timeoutSeconds (int32)

    Количество секунд, по истечении которых зонд истекает. По умолчанию 1 секунда. Минимальное значение 1. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

  • failureThreshold (int32)

    Минимальное количество последовательных сбоев зонда для признания его неисправным после успеха. По умолчанию 3. Минимальное значение 1.

  • successThreshold (int32)

    Минимальное количество последовательных успехов зонда для признания его успешным после сбоя. По умолчанию 1. Должно быть 1 для зондов готовности и запуска. Минимальное значение 1.

  • grpc (GRPCAction)

    GRPC указывает действие, связанное с gRPC-портом. Это поле находится на стадии бета-тестирования и требует включения функции GRPCContainerProbe.

    **

    • grpc.port (int32), обязательный параметр

      Номер порта gRPC-сервиса. Номер должен быть в диапазоне от 1 до 65535.

    • grpc.service (string)

      Service — это имя сервиса, которое следует разместить в запросе проверки gRPC HealthCheckRequest (см. https://github.com/grpc/grpc/blob/master/doc/health-checking.md).

      Если это не указано, то поведение по умолчанию определяется gRPC.

СтатусPod

PodStatus представляет информацию о состоянии под.

  • nominatedNodeName (строка)

    nominatedNodeName устанавливается только тогда, когда этот pod вытесняет другие pods на узле, но он не может быть расписан сразу, так как жертвы вытеснения получают свои периоды плавного завершения. Это поле не гарантирует, что pod будет расписан на этом узле. Планировщик может принять решение разместить pod в другом месте, если другие узлы станут доступными раньше. Планировщик также может принять решение предоставить ресурсы на этом узле pod с более высоким приоритетом, который создан после вытеснения. В результате это поле может отличаться от PodSpec.nodeName, когда pod расписан.

  • hostIP (строка)

    IP-адрес узла, которому назначен pod. Пусто, если ещё не расписан.

  • startTime (Время)

    Дата и время RFC 3339, в который объект был подтвержден Kubelet. Это до того, как Kubelet извлёк образ(ы) контейнера для pod.

    Время — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих фабричных методов пакета time предоставляются оболочки.

  • phase (строка)

    Фаза pod — это простое, высокоуровневое описание того, где находится pod в своём жизненном цикле. Массив conditions, поля reason и message, а также массивы индивидуального состояния контейнеров содержат более подробную информацию о состоянии pod. Существует пять возможных значений фазы:

    Pending: pod принят системой Kubernetes, но один или несколько образов контейнеров не были созданы. Это включает время до расписания, а также время, потраченное на загрузку изображений по сети, что может занять некоторое время. Running: pod привязан к узлу, и все контейнеры были созданы. По крайней мере, один контейнер всё ещё работает или находится в процессе запуска или перезапуска. Succeeded: все контейнеры в pod завершены успешно и не будут перезапускаться. Failed: все контейнеры в pod завершены, и по крайней мере один контейнер завершился неудачно. Контейнер либо завершился с ненулевым кодом состояния, либо был завершен системой. Unknown: по какой-то причине состояние pod не может быть получено, обычно из-за ошибки в общении с узлом pod.

    Подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase

  • message (строка)

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

  • reason (строка)

    Краткое сообщение в формате CamelCase, указывающее подробности о том, почему pod находится в данном состоянии. Например, 'Evicted'

  • podIP (строка)

    IP-адрес, выделенный pod. Маршрутизируемый, по крайней мере, внутри кластера. Пусто, если ещё не выделен.

  • podIPs ([]PodIP)

    Стратегия патча: слияние по ключу ip

    podIPs содержит IP-адреса, выделенные pod. Если это поле указано, 0-й элемент должен соответствовать полю podIP. Pods могут получить не более 1 значения для IPv4 и IPv6. Этот список пуст, если ещё не были выделены IP-адреса.

    *Информация об IP-адресах для элементов в поле (множественного числа) PodIPs. Каждый элемент включает:*

    IP: IP-адрес, выделенный pod. Маршрутизируемый, по крайней мере, внутри кластера.*

    • podIPs.ip (строка)

      ip — это IP-адрес (IPv4 или IPv6), назначенный pod

  • conditions ([]PodCondition)

    Стратегия патча: слияние по ключу type

    Текущее состояние службы pod. Подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions

    PodCondition содержит подробности о текущем состоянии этого pod.

    • conditions.status (строка), обязательно

      Статус — это статус условия. Может быть True, False, Unknown. Подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions

    • conditions.type (строка), обязательно

      Тип — это тип условия. Подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions

    • conditions.lastProbeTime (Время)

      Последнее время, когда мы исследовали условие.

      Время — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих фабричных методов пакета time предоставляются оболочки.

    • conditions.lastTransitionTime (Время)

      Последнее время, когда условие перешло из одного статуса в другой.

      Время — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих фабричных методов пакета time предоставляются оболочки.

    • conditions.message (строка)

      Сообщение, понятное пользователю, указывающее подробности о последнем переходе.

    • conditions.reason (строка)

      Уникальное, однословное, CamelCase объяснение причины последнего перехода состояния.

  • qosClass (строка)

    Классификация качества обслуживания (QOS), назначенная pod на основе требований к ресурсам. См. тип PodQOSClass для доступных классов QOS. Подробнее: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md

  • initContainerStatuses ([]ContainerStatus)

    Список содержит по одной записи на каждый контейнер инициализации в манифесте. Самый последний успешно завершенный контейнер инициализации будет иметь ready = true, а у последнего запущенного контейнера будет установлено значение startTime. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status

    ContainerStatus содержит данные о текущем состоянии этого контейнера.

    • initContainerStatuses.name (string), required

      Это должно быть значение DNS_LABEL. Каждый контейнер в под должен иметь уникальное имя. Не может быть обновлено.

    • initContainerStatuses.image (string), required

      Изображение, которое выполняется в контейнере. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images.

    • initContainerStatuses.imageID (string), required

      ImageID изображения контейнера.

    • initContainerStatuses.containerID (string)

      Идентификатор контейнера в формате '<type>://<container_id>'.

    • initContainerStatuses.state (ContainerState)

      Подробности о текущем состоянии контейнера.

      ContainerState содержит возможное состояние контейнера. Может быть указано только одно из его членов. Если ни один из них не указан, по умолчанию используется ContainerStateWaiting.

      • initContainerStatuses.state.running (ContainerStateRunning)

        Подробности о работающем контейнере

        ContainerStateRunning — это состояние выполнения контейнера.

        • initContainerStatuses.state.running.startedAt (Time)

          Время, когда контейнер был последний раз (пере-)запущен

          Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих фабричных методов пакета time предоставлены оболочки.

      • initContainerStatuses.state.terminated (ContainerStateTerminated)

        Подробности о завершенном контейнере

        ContainerStateTerminated — это состояние завершения контейнера.

        • initContainerStatuses.state.terminated.containerID (string)

          Идентификатор контейнера в формате '<type>://<container_id>'

        • initContainerStatuses.state.terminated.exitCode (int32), required

          Код выхода из последнего завершения контейнера

        • initContainerStatuses.state.terminated.startedAt (Time)

          Время запуска предыдущего выполнения контейнера

          Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих фабричных методов пакета time предоставлены оболочки.

        • initContainerStatuses.state.terminated.finishedAt (Time)

          Время последнего завершения контейнера

          Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих фабричных методов пакета time предоставлены оболочки.

        • initContainerStatuses.state.terminated.message (string)

          Сообщение о последнем завершении контейнера

        • initContainerStatuses.state.terminated.reason (string)

          (краткое) объяснение последнего завершения контейнера

        • initContainerStatuses.state.terminated.signal (int32)

          Сигнал последнего завершения контейнера

      • initContainerStatuses.state.waiting (ContainerStateWaiting)

        Подробности о контейнере в ожидании

        ContainerStateWaiting — это состояние ожидания контейнера.

        • initContainerStatuses.state.waiting.message (string)

          Сообщение о причине, по которой контейнер еще не запущен.

        • initContainerStatuses.state.waiting.reason (string)

          (краткое) объяснение, почему контейнер еще не запущен.

    • initContainerStatuses.lastState (ContainerState)

      Подробности о последнем состоянии завершения контейнера.

      ContainerState содержит возможное состояние контейнера. Может быть указано только одно из его членов. Если ни один из них не указан, по умолчанию используется ContainerStateWaiting.

      • initContainerStatuses.lastState.running (ContainerStateRunning)

        Подробности о работающем контейнере

        ContainerStateRunning — это состояние выполнения контейнера.

        • initContainerStatuses.lastState.running.startedAt (Time)

          Время, когда контейнер был последний раз (пере-)запущен

          Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих фабричных методов пакета time предоставлены оболочки.

      • initContainerStatuses.lastState.terminated (ContainerStateTerminated)

        Подробности о завершенном контейнере

        ContainerStateTerminated — это состояние завершения контейнера.

        • initContainerStatuses.lastState.terminated.containerID (string)

          Идентификатор контейнера в формате '<type>://<container_id>'

        • initContainerStatuses.lastState.terminated.exitCode (int32), required

          Код выхода из последнего завершения контейнера

        • initContainerStatuses.lastState.terminated.startedAt (Time)

          Время запуска предыдущего выполнения контейнера

          Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих фабричных методов пакета time предоставлены оболочки.

        • initContainerStatuses.lastState.terminated.finishedAt (Time)

          Время последнего завершения контейнера

          Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих фабричных методов пакета time предоставлены оболочки.

        • initContainerStatuses.lastState.terminated.message (string)

          Сообщение о последнем завершении контейнера

        • initContainerStatuses.lastState.terminated.reason (string)

          (краткое) объяснение последнего завершения контейнера

        • initContainerStatuses.lastState.terminated.signal (int32)

          Сигнал последнего завершения контейнера

      • initContainerStatuses.lastState.waiting (ContainerStateWaiting)

        Подробности о контейнере в ожидании

        ContainerStateWaiting — это состояние ожидания контейнера.

        • initContainerStatuses.lastState.waiting.message (string)

          Сообщение о причине, по которой контейнер еще не запущен.

        • initContainerStatuses.lastState.waiting.reason (string)

          (краткое) объяснение, почему контейнер еще не запущен.

    • initContainerStatuses.ready (boolean), required

      Указывает, пройден ли контейнер проверку готовности.

    • initContainerStatuses.restartCount (int32), required

      Количество раз, когда контейнер был перезапущен.

    • initContainerStatuses.started (boolean)

      Указывает, пройден ли контейнер проверку запуска. Инициализируется как false, становится true после успешной проверки запуска. Сбрасывается до false при перезапуске контейнера или если kubelet временно теряет состояние. Всегда равно true, если проверка запуска не определена.

  • containerStatuses ([]ContainerStatus)

    Список, содержащий по одной записи на каждый контейнер в манифесте. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status

    ContainerStatus содержит подробную информацию о текущем состоянии контейнера.

    • containerStatuses.name (string), required

      Должно быть меткой DNS. Каждый контейнер в под должен иметь уникальное имя. Не может быть обновлён.

    • containerStatuses.image (string), required

      Изображение, используемое контейнером. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images.

    • containerStatuses.imageID (string), required

      Идентификатор изображения контейнера.

    • containerStatuses.containerID (string)

      Идентификатор контейнера в формате '<type>://<container_id>'.

    • containerStatuses.state (ContainerState)

      Подробности о текущем состоянии контейнера.

      ContainerState содержит возможные состояния контейнера. Может быть указано только одно из них. Если ни одно не указано, используется значение ContainerStateWaiting по умолчанию.

      • containerStatuses.state.running (ContainerStateRunning)

        Подробности о работающем контейнере

        ContainerStateRunning — это состояние работы контейнера.

        • containerStatuses.state.running.startedAt (Time)

          Время последнего (пере)запуска контейнера

          Time — это обёртка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Обёртки предоставляются для многих фабричных методов, предлагаемых пакетом time.

      • containerStatuses.state.terminated (ContainerStateTerminated)

        Подробности о завершенном контейнере

        ContainerStateTerminated — это состояние завершения контейнера.

        • containerStatuses.state.terminated.containerID (string)

          Идентификатор контейнера в формате '<type>://<container_id>'

        • containerStatuses.state.terminated.exitCode (int32), required

          Код выхода после последнего завершения контейнера

        • containerStatuses.state.terminated.startedAt (Time)

          Время начала предыдущего выполнения контейнера

          Time — это обёртка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Обёртки предоставляются для многих фабричных методов, предлагаемых пакетом time.

        • containerStatuses.state.terminated.finishedAt (Time)

          Время последнего завершения контейнера

          Time — это обёртка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Обёртки предоставляются для многих фабричных методов, предлагаемых пакетом time.

        • containerStatuses.state.terminated.message (string)

          Сообщение о последнем завершении контейнера

        • containerStatuses.state.terminated.reason (string)

          (краткое) объяснение последнего завершения контейнера

        • containerStatuses.state.terminated.signal (int32)

          Сигнал при последнем завершении контейнера

      • containerStatuses.state.waiting (ContainerStateWaiting)

        Подробности о контейнере в ожидании

        ContainerStateWaiting — это состояние ожидания контейнера.

        • containerStatuses.state.waiting.message (string)

          Сообщение о причине, по которой контейнер ещё не запущен.

        • containerStatuses.state.waiting.reason (string)

          (краткое) объяснение, почему контейнер ещё не запущен.

    • containerStatuses.lastState (ContainerState)

      Подробности о последнем состоянии завершения контейнера.

      ContainerState содержит возможные состояния контейнера. Может быть указано только одно из них. Если ни одно не указано, используется значение ContainerStateWaiting по умолчанию.

      • containerStatuses.lastState.running (ContainerStateRunning)

        Подробности о работающем контейнере

        ContainerStateRunning — это состояние работы контейнера.

        • containerStatuses.lastState.running.startedAt (Time)

          Время последнего (пере)запуска контейнера

          Time — это обёртка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Обёртки предоставляются для многих фабричных методов, предлагаемых пакетом time.

      • containerStatuses.lastState.terminated (ContainerStateTerminated)

        Подробности о завершенном контейнере

        ContainerStateTerminated — это состояние завершения контейнера.

        • containerStatuses.lastState.terminated.containerID (string)

          Идентификатор контейнера в формате '<type>://<container_id>'

        • containerStatuses.lastState.terminated.exitCode (int32), required

          Код выхода после последнего завершения контейнера

        • containerStatuses.lastState.terminated.startedAt (Time)

          Время начала предыдущего выполнения контейнера

          Time — это обёртка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Обёртки предоставляются для многих фабричных методов, предлагаемых пакетом time.

        • containerStatuses.lastState.terminated.finishedAt (Time)

          Время последнего завершения контейнера

          Time — это обёртка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Обёртки предоставляются для многих фабричных методов, предлагаемых пакетом time.

        • containerStatuses.lastState.terminated.message (string)

          Сообщение о последнем завершении контейнера

        • containerStatuses.lastState.terminated.reason (string)

          (краткое) объяснение последнего завершения контейнера

        • containerStatuses.lastState.terminated.signal (int32)

          Сигнал при последнем завершении контейнера

      • containerStatuses.lastState.waiting (ContainerStateWaiting)

        Подробности о контейнере в ожидании

        ContainerStateWaiting — это состояние ожидания контейнера.

        • containerStatuses.lastState.waiting.message (string)

          Сообщение о причине, по которой контейнер ещё не запущен.

        • containerStatuses.lastState.waiting.reason (string)

          (краткое) объяснение, почему контейнер ещё не запущен.

    • containerStatuses.ready (boolean), required

      Указывает, прошёл ли контейнер проверку готовности.

    • containerStatuses.restartCount (int32), required

      Количество перезапусков контейнера.

    • containerStatuses.started (boolean)

      Указывает, прошёл ли контейнер проверку запуска. Инициализируется как false, становится true после успешной проверки startupProbe. Сбрасывается до false при перезапуске контейнера или если kubelet временно теряет состояние. Всегда true, если startupProbe не определён.

  • ephemeralContainerStatuses ([]ContainerStatus)

    Статус любых кратковременных контейнеров, которые работали в этом под.

    ContainerStatus содержит подробности о текущем состоянии этого контейнера.

    • ephemeralContainerStatuses.name (string), required

      Это должно быть DNS_LABEL. Каждый контейнер в под должен иметь уникальное имя. Не может быть обновлён.

    • ephemeralContainerStatuses.image (string), required

      Изображение, на котором работает контейнер. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images.

    • ephemeralContainerStatuses.imageID (string), required

      ImageID изображения контейнера.

    • ephemeralContainerStatuses.containerID (string)

      ID контейнера в формате '<тип>://<id_контейнера>'.

    • ephemeralContainerStatuses.state (ContainerState)

      Подробности о текущем состоянии контейнера.

      ContainerState содержит возможное состояние контейнера. Может быть указано только одно из его членов. Если ни одно из них не указано, используется значение по умолчанию ContainerStateWaiting.

      • ephemeralContainerStatuses.state.running (ContainerStateRunning)

        Подробности о работающем контейнере

        ContainerStateRunning — это состояние работы контейнера.

        • ephemeralContainerStatuses.state.running.startedAt (Time)

          Время последнего (повторного) запуска контейнера

          Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих методов фабрики пакета time предоставляются оболочки.

      • ephemeralContainerStatuses.state.terminated (ContainerStateTerminated)

        Подробности о завершенном контейнере

        ContainerStateTerminated — это состояние завершения контейнера.

        • ephemeralContainerStatuses.state.terminated.containerID (string)

          ID контейнера в формате '<тип>://<id_контейнера>'

        • ephemeralContainerStatuses.state.terminated.exitCode (int32), required

          Код выхода из последнего завершения контейнера

        • ephemeralContainerStatuses.state.terminated.startedAt (Time)

          Время запуска предыдущего выполнения контейнера

          Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих методов фабрики пакета time предоставляются оболочки.

        • ephemeralContainerStatuses.state.terminated.finishedAt (Time)

          Время последнего завершения контейнера

          Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих методов фабрики пакета time предоставляются оболочки.

        • ephemeralContainerStatuses.state.terminated.message (string)

          Сообщение о последнем завершении контейнера

        • ephemeralContainerStatuses.state.terminated.reason (string)

          (краткое) описание причины последнего завершения контейнера

        • ephemeralContainerStatuses.state.terminated.signal (int32)

          Сигнал последнего завершения контейнера

      • ephemeralContainerStatuses.state.waiting (ContainerStateWaiting)

        Подробности о ждущем контейнере

        ContainerStateWaiting — это состояние ожидания контейнера.

        • ephemeralContainerStatuses.state.waiting.message (string)

          Сообщение о причинах, по которым контейнер еще не запущен.

        • ephemeralContainerStatuses.state.waiting.reason (string)

          (краткое) описание причины, по которой контейнер еще не запущен.

    • ephemeralContainerStatuses.lastState (ContainerState)

      Подробности о последнем состоянии завершения контейнера.

      ContainerState содержит возможное состояние контейнера. Может быть указано только одно из его членов. Если ни одно из них не указано, используется значение по умолчанию ContainerStateWaiting.

      • ephemeralContainerStatuses.lastState.running (ContainerStateRunning)

        Подробности о работающем контейнере

        ContainerStateRunning — это состояние работы контейнера.

        • ephemeralContainerStatuses.lastState.running.startedAt (Time)

          Время последнего (повторного) запуска контейнера

          Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих методов фабрики пакета time предоставляются оболочки.

      • ephemeralContainerStatuses.lastState.terminated (ContainerStateTerminated)

        Подробности о завершенном контейнере

        ContainerStateTerminated — это состояние завершения контейнера.

        • ephemeralContainerStatuses.lastState.terminated.containerID (string)

          ID контейнера в формате '<тип>://<id_контейнера>'

        • ephemeralContainerStatuses.lastState.terminated.exitCode (int32), required

          Код выхода из последнего завершения контейнера

        • ephemeralContainerStatuses.lastState.terminated.startedAt (Time)

          Время запуска предыдущего выполнения контейнера

          Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих методов фабрики пакета time предоставляются оболочки.

        • ephemeralContainerStatuses.lastState.terminated.finishedAt (Time)

          Время последнего завершения контейнера

          Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Для многих методов фабрики пакета time предоставляются оболочки.

        • ephemeralContainerStatuses.lastState.terminated.message (string)

          Сообщение о последнем завершении контейнера

        • ephemeralContainerStatuses.lastState.terminated.reason (string)

          (краткое) описание причины последнего завершения контейнера

        • ephemeralContainerStatuses.lastState.terminated.signal (int32)

          Сигнал последнего завершения контейнера

      • ephemeralContainerStatuses.lastState.waiting (ContainerStateWaiting)

        Подробности о ждущем контейнере

        ContainerStateWaiting — это состояние ожидания контейнера.

        • ephemeralContainerStatuses.lastState.waiting.message (string)

          Сообщение о причинах, по которым контейнер еще не запущен.

        • ephemeralContainerStatuses.lastState.waiting.reason (string)

          (краткое) описание причины, по которой контейнер еще не запущен.

    • ephemeralContainerStatuses.ready (boolean), required

      Указывает, прошел ли контейнер проверку готовности.

    • ephemeralContainerStatuses.restartCount (int32), required

      Количество раз, когда был перезапущен контейнер.

    • ephemeralContainerStatuses.started (boolean)

      Указывает, прошел ли контейнер проверку запуска. Инициализируется как false, становится true после успешной проверки запуска. Сбрасывается до false при перезапуске контейнера или при временной потере состояния kubelet. Всегда равно true, если проверка запуска не определена.

PodList

PodList — это список Pods.

  • items ([]Pod), required

    Список pods. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md

  • apiVersion (string)

    APIVersion определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

  • kind (string)

    Kind — это строковое значение, представляющее REST-ресурс, который представляет этот объект. Серверы могут вывести это из конечной точки, к которой клиент отправляет запросы. Не может быть обновлено. В CamelCase. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

  • metadata (ListMeta)

    Стандартные метаданные списка. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-26.docs.kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API