Spec-Zone.ru › Kubernetes 1.27

Под

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

apiVersion: v1

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

Под

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

  • apiVersion: v1

  • kind: Под

  • metadata (ObjectMeta)

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

  • spec (PodSpec)

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

  • status (PodStatus)

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

PodSpec

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

Контейнеры

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

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

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

  • initContainers ([]Container)

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

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

  • ephemeralContainers ([]EphemeralContainer)

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

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

  • imagePullSecrets ([]LocalObjectReference)

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

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

  • enableServiceLinks (boolean)

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

  • os (PodOS)

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

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

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

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

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

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

Тома

  • volumes ([]Volume)

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

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

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

  • nodeSelector (map[string]string)

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

  • nodeName (string)

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

  • affinity (Affinity)

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

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

    • affinity.nodeAffinity (NodeAffinity)

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

    • affinity.podAffinity (PodAffinity)

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

    • affinity.podAntiAffinity (PodAntiAffinity)

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

  • tolerations ([]Toleration)

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

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

    • tolerations.key (string)

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

    • tolerations.operator (string)

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

    • tolerations.value (string)

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

    • tolerations.effect (string)

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

    • tolerations.tolerationSeconds (int64)

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

  • schedulerName (string)

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

  • runtimeClassName (string)

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

  • priorityClassName (string)

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

  • priority (int32)

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

  • preemptionPolicy (string)

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

  • topologySpreadConstraints ([]TopologySpreadConstraint)

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

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

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

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

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

      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), необходимо

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

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

      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 используется для поиска соответствующих под. Под, которые соответствуют этому labelSelector, подсчитываются для определения количества под в соответствующем домене топологии.

    • topologySpreadConstraints.matchLabelKeys ([]string)

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

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

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

    • topologySpreadConstraints.minDomains (int32)

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

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

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

    • topologySpreadConstraints.nodeAffinityPolicy (string)

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

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

    • topologySpreadConstraints.nodeTaintsPolicy (string)

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

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

  • overhead (map[string]Quantity)

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

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

  • restartPolicy (string)

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

  • terminationGracePeriodSeconds (int64)

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

  • activeDeadlineSeconds (int64)

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

  • readinessGates ([]PodReadinessGate)

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

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

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

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

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

  • hostname (строка)

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

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

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

  • subdomain (строка)

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

  • hostAliases ([]HostAlias)

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

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

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

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

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

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

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

  • dnsConfig (PodDNSConfig)

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

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

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

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

    • dnsConfig.options ([]PodDNSConfigOption)

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

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

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

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

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

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

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

  • dnsPolicy (строка)

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

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

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

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

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

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

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

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

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

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

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

  • serviceAccountName (строка)

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

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

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

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

  • securityContext (PodSecurityContext)

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

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

    • securityContext.runAsUser (int64)

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

    • securityContext.runAsNonRoot (boolean)

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

    • securityContext.runAsGroup (int64)

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

    • securityContext.supplementalGroups ([]int64)

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

    • securityContext.fsGroup (int64)

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

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

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

    • securityContext.fsGroupChangePolicy (string)

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

    • securityContext.seccompProfile (SeccompProfile)

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

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

      • securityContext.seccompProfile.type (string), required

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

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

      • securityContext.seccompProfile.localhostProfile (string)

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

    • securityContext.seLinuxOptions (SELinuxOptions)

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

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

      • securityContext.seLinuxOptions.level (string)

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

      • securityContext.seLinuxOptions.role (string)

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

      • securityContext.seLinuxOptions.type (string)

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

      • securityContext.seLinuxOptions.user (string)

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

    • securityContext.sysctls ([]Sysctl)

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

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

      • securityContext.sysctls.name (string), required

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

      • securityContext.sysctls.value (string), required

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

    • securityContext.windowsOptions (WindowsSecurityContextOptions)

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

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

      • securityContext.windowsOptions.gmsaCredentialSpec (string)

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

      • securityContext.windowsOptions.gmsaCredentialSpecName (string)

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

      • securityContext.windowsOptions.hostProcess (boolean)

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

      • securityContext.windowsOptions.runAsUserName (string)

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

Уровень alpha

  • hostUsers (boolean)

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

  • resourceClaims ([]PodResourceClaim)

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

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

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

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

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

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

    • resourceClaims.name (string), required

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

    • resourceClaims.source (ClaimSource)

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

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

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

      • resourceClaims.source.resourceClaimName (string)

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

      • resourceClaims.source.resourceClaimTemplateName (string)

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

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

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

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

  • schedulingGates ([]PodSchedulingGate)

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

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

    SchedulingGates — это неструктурированный список значений, которые, если заданы, заблокируют планирование под. Если schedulingGates не пустой, под остаётся в состоянии SchedulingGated, и планировщик не пытается запланировать под.

    SchedulingGates могут быть заданы только при создании под и удалены только после.

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

    PodSchedulingGate ассоциируется с под, чтобы защитить его планирование.

    • schedulingGates.name (string), required

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

Устаревшее

  • serviceAccount (string)

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

Контейнер

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

  • name (string), required

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

Изображение

  • image (string)

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

  • imagePullPolicy (string)

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

Точка входа

  • command ([]string)

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

  • args ([]string)

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

  • workingDir (string)

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

Порты

  • ports ([]ContainerPort)

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

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

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

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

    • ports.containerPort (int32), required

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

    • ports.hostIP (string)

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

    • ports.hostPort (int32)

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

    • ports.name (string)

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

    • ports.protocol (string)

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

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

  • env ([]EnvVar)

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

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

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

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

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

    • env.value (строка)

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

    • env.valueFrom (EnvVarSource)

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

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

      • env.valueFrom.configMapKeyRef (ConfigMapKeySelector)

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

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

        • env.valueFrom.configMapKeyRef.key (строка), обязательно

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

        • env.valueFrom.configMapKeyRef.name (строка)

          Имя объекта-ссылочного элемента. Подробнее: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

        • env.valueFrom.configMapKeyRef.optional (булево)

          Указывает, должен ли быть определен 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 (строка), обязательно

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

        • env.valueFrom.secretKeyRef.name (строка)

          Имя объекта-ссылочного элемента. Подробнее: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

        • env.valueFrom.secretKeyRef.optional (булево)

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

  • envFrom ([]EnvFromSource)

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

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

    • envFrom.configMapRef (ConfigMapEnvSource)

      ConfigMap для выбора

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

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

      • envFrom.configMapRef.name (строка)

        Имя объекта-ссылочного элемента. Подробнее: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

      • envFrom.configMapRef.optional (булево)

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

    • envFrom.prefix (строка)

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

    • envFrom.secretRef (SecretEnvSource)

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

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

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

      • envFrom.secretRef.name (строка)

        Имя объекта-ссылочного элемента. Подробнее: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

      • envFrom.secretRef.optional (булево)

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

Тома

  • volumeMounts ([]VolumeMount)

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

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

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

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

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

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

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

    • volumeMounts.mountPropagation (строка)

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

    • volumeMounts.readOnly (булево)

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

    • volumeMounts.subPath (строка)

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

    • volumeMounts.subPathExpr (строка)

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

  • volumeDevices ([]VolumeDevice)

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

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

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

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

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

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

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

Ресурсы

  • resources (ResourceRequirements)

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

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

    • resources.claims ([]ResourceClaim)

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

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

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

      Это поле неизменяемо. Его можно задавать только для контейнеров.

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

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

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

    • resources.limits (map[string]Quantity)

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

    • resources.requests (map[string]Quantity)

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

  • resizePolicy ([]ContainerResizePolicy)

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

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

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

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

      Имя ресурса, к которому применяется эта политика изменения размера ресурсов. Поддерживаемые значения: cpu, memory.

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

      Политика перезапуска, применяемая при изменении размера указанного ресурса. Если не указано, по умолчанию NotRequired.

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

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

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

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

    • lifecycle.postStart (LifecycleHandler)

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

    • lifecycle.preStop (LifecycleHandler)

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

  • terminationMessagePath (строка)

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

  • terminationMessagePolicy (строка)

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

  • livenessProbe (Probe)

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

  • readinessProbe (Probe)

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

  • startupProbe (Probe)

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

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

  • securityContext (SecurityContext)

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

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

    • securityContext.runAsUser (int64)

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

    • securityContext.runAsNonRoot (boolean)

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

    • securityContext.runAsGroup (int64)

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

    • securityContext.readOnlyRootFilesystem (boolean)

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

    • securityContext.procMount (string)

      procMount определяет тип монтирования proc для контейнеров. По умолчанию используется DefaultProcMount, который использует значения по умолчанию среды выполнения контейнера для путей только для чтения и замаскированных путей. Это требует включенного флага функции 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)

      Возможности для добавления/удаления при запуске контейнеров. По умолчанию используется набор возможностей, предоставляемых средой выполнения контейнера. Обратите внимание, что это поле не может быть установлено, когда 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 определяет, должен ли контейнер запускаться как контейнер «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 в среде выполнения контейнера. Если это не установлено, чтение из stdin в контейнере всегда приведет к EOF. По умолчанию false.

  • stdinOnce (boolean)

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

  • tty (boolean)

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

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

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

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

  • name (string), required

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

  • targetContainerName (string)

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

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

Изображение

  • image (string)

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

  • imagePullPolicy (string)

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

Точка входа

  • command ([]string)

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

  • args ([]string)

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

  • workingDir (string)

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

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

  • env ([]EnvVar)

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

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

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

    • env.name (string), required

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

    • env.value (string)

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

    • env.valueFrom (EnvVarSource)

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

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

      • env.valueFrom.configMapKeyRef (ConfigMapKeySelector)

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

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

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

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

        • env.valueFrom.configMapKeyRef.name (string)

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

        • env.valueFrom.configMapKeyRef.optional (boolean)

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

      • env.valueFrom.fieldRef (ObjectFieldSelector)

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

      • env.valueFrom.resourceFieldRef (ResourceFieldSelector)

        Выбирает ресурс контейнера: в настоящее время поддерживаются только ресурсы limits и requests (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), required

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

        • env.valueFrom.secretKeyRef.name (string)

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

        • env.valueFrom.secretKeyRef.optional (boolean)

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

  • envFrom ([]EnvFromSource)

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

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

    • envFrom.configMapRef (ConfigMapEnvSource)

      ConfigMap для выбора.

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

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

      • envFrom.configMapRef.name (string)

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

      • envFrom.configMapRef.optional (boolean)

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

    • envFrom.prefix (string)

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

    • envFrom.secretRef (SecretEnvSource)

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

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

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

      • envFrom.secretRef.name (string)

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

      • envFrom.secretRef.optional (boolean)

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

Тома

  • volumeMounts ([]VolumeMount)

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

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

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

    • volumeMounts.mountPath (string), required

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

    • volumeMounts.name (string), required

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

    • volumeMounts.mountPropagation (string)

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

    • volumeMounts.readOnly (boolean)

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

    • volumeMounts.subPath (string)

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

    • volumeMounts.subPathExpr (string)

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

  • volumeDevices ([]VolumeDevice)

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

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

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

    • volumeDevices.devicePath (string), required

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

    • volumeDevices.name (string), required

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

Ресурсы

  • resizePolicy ([]ContainerResizePolicy)

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

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

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

    • resizePolicy.resourceName (string), required

      Имя ресурса, к которому применяется эта политика изменения размера. Поддерживаемые значения: cpu, memory.

    • resizePolicy.restartPolicy (string), required

      Политика перезапуска, применяемая при изменении размера указанного ресурса. Если не указана, по умолчанию используется NotRequired.

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

  • 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.claims ([]ResourceClaim)

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

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

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

      Это неизменяемое поле. Его можно устанавливать только для контейнеров.

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

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

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

    • resources.limits (map[string]Quantity)

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

    • resources.requests (map[string]Quantity)

      Запросы описывают минимальное количество требуемых вычислительных ресурсов. Если для контейнера опущено Requests, оно по умолчанию равно Limits, если это явно указано, иначе оно равно определенному значением реализации. Запросы не могут превышать 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)

      Команда — это команда, которую нужно выполнить внутри контейнера, рабочая директория для команды — корень ('/') в файловой системе контейнера. Команда просто выполняется, она не выполняется в оболочке, поэтому традиционные инструкции оболочки ('|', и т. д.) не будут работать. Чтобы использовать оболочку, необходимо явно вызвать эту оболочку. Код завершения 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-портом.

    **

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

СтатусPod

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

  • nominatedNodeName (строка)

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

  • hostIP (строка)

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

  • startTime (Время)

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

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

  • phase (строка)

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

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

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

  • message (строка)

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

  • reason (строка)

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

  • podIP (строка)

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

  • podIPs ([]PodIP)

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

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

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

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

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

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

  • conditions ([]PodCondition)

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

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

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

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

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

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

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

    • conditions.lastProbeTime (Время)

      Последнее время проверки условия.

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

    • conditions.lastTransitionTime (Время)

      Последнее время перехода условия из одного состояния в другое.

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

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

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

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

      Уникальное, однословное, сообщение в формате CamelCase о последнем переходе условия.

  • qosClass (строка)

    Классификация качества обслуживания (QOS), назначенная pod на основе требований к ресурсам. См. тип PodQOSClass для доступных классов QOS. Подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes

  • initContainerStatuses ([]ContainerStatus)

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

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

  • containerStatuses ([]ContainerStatus)

    Список содержит по одному элементу для каждого контейнера в манифесте. Подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status

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

  • ephemeralContainerStatuses ([]ContainerStatus)

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

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

  • resize (строка)

    Статус изменения размеров ресурсов, желаемых для контейнеров pod. Он пустой, если изменение размеров ресурсов не ожидается. Любые изменения в ресурсах контейнера автоматически установят это значение в «Предложено»

СписокPod

СписокPod — это список Pod.

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

    Список pods. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md

  • apiVersion (строка)

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

  • kind (строка)

    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-27.docs.kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/

Spec-Zone.ru

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