Spec-Zone.ru › Kubernetes 1.24

Под

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

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

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

  • 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.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 Это поле бета-версии и требует функции IdentifyPodOS

    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)

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

  • topologySpreadConstraints ([]TopologySpreadConstraint)

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

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

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

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

    • topologySpreadConstraints.maxSkew (int32), required

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

    • topologySpreadConstraints.topologyKey (string), required

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

    • topologySpreadConstraints.whenUnsatisfiable (string), required

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

    • topologySpreadConstraints.labelSelector (LabelSelector)

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

    • topologySpreadConstraints.minDomains (int32)

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

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

      Это альфа-поле и требует активации функции MinDomainsInPodTopologySpread.

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

  • restartPolicy (строка)

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

  • terminationGracePeriodSeconds (int64)

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

  • activeDeadlineSeconds (int64)

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

  • readinessGates ([]PodReadinessGate)

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

    PodReadinessGate содержит ссылку на состояние под

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

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

Разрешение имени и хоста

  • hostname (строка)

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

  • setHostnameAsFQDN (булево)

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

  • subdomain (строка)

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

  • hostAliases ([]HostAlias)

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

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

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

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

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

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

      IP-адрес записи в файле hosts.

  • dnsConfig (PodDNSConfig)

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

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

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

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

    • dnsConfig.options ([]PodDNSConfigOption)

      Список опций DNS-резолвера. Это будет объединено с базовыми параметрами, сгенерированными из DNSPolicy. Дублированные записи будут удалены. Параметры разрешения, указанные в Options, переопределят параметры, которые появляются в базовой 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 — это имя учетной записи сервиса, которое будет использоваться для запуска этого под. Более подробная информация: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/

  • automountServiceAccountToken (булево)

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

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

  • securityContext (PodSecurityContext)

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

    PodSecurityContext хранит атрибуты безопасности на уровне Pod и общие настройки контейнеров. Некоторые поля также присутствуют в 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 контейнера. Если не указано, к контейнерам не будут добавлены никакие группы. Обратите внимание, что это поле не может быть задано, когда spec.os.name — windows.

    • securityContext.fsGroup (int64)

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

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

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

    • securityContext.fsGroupChangePolicy (string)

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

    • securityContext.seccompProfile (SeccompProfile)

      Параметры seccomp, которые будут использоваться контейнерами в этом 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 контекст для каждого контейнера. Также может быть задан в 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 хранят список системных параметров, используемых для Pod. Pods с параметрами 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 (https://github.com/kubernetes-sigs/windows-gmsa) встраивает содержимое спецификации учетных данных GMSA, названного полем GMSACredentialSpecName.

      • securityContext.windowsOptions.gmsaCredentialSpecName (string)

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

      • securityContext.windowsOptions.hostProcess (boolean)

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

      • securityContext.windowsOptions.runAsUserName (string)

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

Уровень beta

  • ephemeralContainers ([]EphemeralContainer)

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

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

  • preemptionPolicy (string)

    PreemptionPolicy — политика для прерывания Pod с более низким приоритетом. Может быть Never, PreemptLowerPriority. По умолчанию PreemptLowerPriority, если не указано.

  • 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

Устаревшее

  • serviceAccount (string)

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

Контейнер

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

  • name (string), required

    Имя контейнера, указанное как DNS_LABEL. Каждый контейнер в Pod должен иметь уникальное имя (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)

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

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

    Список портов для экспонирования из контейнера. Экспонирование порта предоставляет системе дополнительную информацию о сетевых подключениях, используемых контейнером, но в первую очередь носит информационный характер. Отсутствие указания порта здесь НЕ предотвращает его экспонирование. Любой порт, прослушивающий на стандартном адресе "0.0.0.0" внутри контейнера, будет доступен из сети. Не может быть обновлено.

    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), 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 представляет источник набора ConfigMaps

    • 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 выбирает секрет для заполнения переменных окружения.

      Содержимое поля 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

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

    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 в под

Ресурсы

  • ресурсы (ResourceRequirements)

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

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

    • 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)

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

    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 (если не задерживается finalizers). Другое управление контейнером блокируется до завершения обработчика или достижения периода завершения. Дополнительная информация: 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 для запуска точки входа процесса контейнера. Если не задано, используется значение по умолчанию во время выполнения. Также может быть задано в 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 заданы как на уровне под, так и на уровне контейнера, настройки контейнера переопределяют настройки под. Обратите внимание, что это поле нельзя задавать, когда 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 контекст для каждого контейнера. Также может быть задано в 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 определяет, должен ли контейнер запускаться как контейнер 'Host Process'. Это поле находится на стадии alpha и будет обработано только компонентами, которые включают флаг функции 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.

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

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

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

Это функция beta, доступная в кластерах, где не отключён шлюз EphemeralContainers.

  • 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), обязательное поле

      Имя переменной окружения. Должно быть 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 выбирает ключ Secret.

        • 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

    Тома Pods, которые должны быть смонтированы в файловую систему контейнера. Монтирование подпутей запрещено для временных контейнеров. Не может быть обновлен.

    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 описывает отображение блочного устройства raw внутри контейнера.

    • volumeDevices.devicePath (string), обязательное поле

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

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

      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 (строка)

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

    • ports.hostPort (int32)

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

    • ports.name (строка)

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

    • ports.protocol (строка)

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

  • resources (ResourceRequirements)

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

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

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

  • livenessProbe (Probe)

    Зондирование работоспособности запрещено для контейнеров без состояния.

  • readinessProbe (Probe)

    Зондирование готовности запрещено для контейнеров без состояния.

  • startupProbe (Probe)

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

LifecycleHandler

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

  • exec (ExecAction)

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

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

    • exec.command ([]string)

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

  • httpGet (HTTPGetAction)

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

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

    • httpGet.port (IntOrString), необходимо

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

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

    • httpGet.host (строка)

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

    • httpGet.httpHeaders ([]HTTPHeader)

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

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

      • httpGet.httpHeaders.name (строка), необходимо

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

      • httpGet.httpHeaders.value (строка), необходимо

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

    • httpGet.path (строка)

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

    • httpGet.scheme (строка)

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

  • tcpSocket (TCPSocketAction)

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

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

    • tcpSocket.port (IntOrString), необходимо

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

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

    • tcpSocket.host (строка)

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

NodeAffinity

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

  • 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), required

      Имя или номер порта для доступа в контейнере. Номер должен быть в диапазоне от 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), required

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

      • httpGet.httpHeaders.value (string), required

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

    • httpGet.path (string)

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

    • httpGet.scheme (string)

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

  • tcpSocket (TCPSocketAction)

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

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

    • tcpSocket.port (IntOrString), required

      Номер или имя порта для доступа в контейнере. Номер должен быть в диапазоне от 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)

    Необязательное время в секундах, необходимое для корректного завершения под при сбое зондирования. Период ожидания — это время в секундах после того, как процессам, выполняющимся в под, был отправлен сигнал завершения, и до момента, когда процессы будут насильственно остановлены с помощью сигнала kill. Установите это значение больше, чем ожидаемое время завершения работы вашего процесса. Если это значение равно null, будет использоваться terminationGracePeriodSeconds под. В противном случае, это значение переопределяет значение, предоставленное в спецификации под. Значение должно быть неотрицательным целым числом. Значение ноль означает немедленную остановку с помощью сигнала 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), required

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

    • grpc.service (string)

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

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

СостояниеПод

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

  • nominatedNodeName (строка)

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

  • hostIP (строка)

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

  • startTime (Время)

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

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

  • phase (строка)

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

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

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

  • message (строка)

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

  • reason (строка)

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

  • podIP (строка)

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

  • podIPs ([]PodIP)

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

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

    Информация об IP-адресах для записей в поле (множественное число) PodIPs. Каждая запись включает: IP: IP-адрес, выделенный под. Маршрутизируемый по крайней мере внутри кластера.

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

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

  • conditions ([]PodCondition)

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

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

    PodCondition содержит детали текущего состояния этого под.

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

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

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

      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), назначенная под на основе требований к ресурсам. См. тип PodQOSClass для доступных классов QOS. Подробнее: https://git.k8s.io/design-proposals-archive/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)

    Статус любых кратковременных контейнеров, запущенных в данном под. Это поле находится на стадии бета-тестирования и доступно в кластерах, где не отключена функция шлюза EphemeralContainers.

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

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

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

    • ephemeralContainerStatuses.image (string), обязательное поле

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

    • ephemeralContainerStatuses.imageID (string), обязательное поле

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

    • ephemeralContainerStatuses.containerID (string)

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

    • 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)

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

        • ephemeralContainerStatuses.state.terminated.exitCode (int32), обязательное поле

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

        • 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)

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

        • ephemeralContainerStatuses.lastState.terminated.exitCode (int32), обязательное поле

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

        • 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), обязательное поле

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

    • ephemeralContainerStatuses.restartCount (int32), обязательное поле

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

    • ephemeralContainerStatuses.started (boolean)

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

PodList

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

  • items ([]Pod), обязательное поле

    Список 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-24.docs.kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/

Spec-Zone.ru

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