Под
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)
Стратегия патча: слияние по ключу
nameImagePullSecrets — это необязательный список ссылок на секреты в том же пространстве имён для использования при получении любых изображений, используемых этим 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 описывает, как группа Pods должна быть распределена по топологическим областям. Планировщик распределит Pods таким образом, чтобы соблюдались эти ограничения. Все topologySpreadConstraints выполняются с операцией И.
TopologySpreadConstraint определяет, как распределить соответствующие Pods по заданной топологии.
-
topologySpreadConstraints.maxSkew (int32), обязательное поле
MaxSkew описывает степень неравномерного распределения Pods. Если
whenUnsatisfiable=DoNotSchedule, это максимальная допустимая разница между количеством соответствующих Pods в целевой топологии и глобальным минимумом. Глобальный минимум — это минимальное количество соответствующих Pods в допустимой области или ноль, если количество допустимых областей меньше, чем MinDomains. Например, в кластере из 3 зон MaxSkew задан значением 1, а Pods с одинаковым labelSelector распределены как 2/2/1: В этом случае глобальный минимум равен 1. | зона1 | зона2 | зона3 | | P P | P P | P | - если MaxSkew равен 1, входящий Pod может быть запланирован только в зону 3, чтобы стать 2/2/2; планирование в зону 1 (зону 2) нарушит MaxSkew (1) из-за ActualSkew (3-1) в зоне 1 (зоне 2). - если MaxSkew равен 2, входящий Pod может быть запланирован в любую зону. ЕслиwhenUnsatisfiable=ScheduleAnyway, используется для предоставления более высокого приоритета топологиям, которые его удовлетворяют. Это обязательное поле. Значение по умолчанию равно 1, и 0 недопустимо. -
topologySpreadConstraints.topologyKey (string), обязательное поле
TopologyKey — это ключ меток узлов. Узлы, имеющие метку с этим ключом и идентичными значениями, считаются принадлежащими одной топологии. Мы рассматриваем каждую пару <ключ, значение> как «ведро» и стараемся поместить в каждое ведро сбалансированное количество Pods. Мы определяем область как конкретный экземпляр топологии. Также мы определяем допустимую область как область, узлы которой соответствуют требованиям nodeAffinityPolicy и nodeTaintsPolicy. Например, если TopologyKey — «kubernetes.io/hostname», каждый узел — это область этой топологии. И если TopologyKey — «topology.kubernetes.io/zone», каждая зона — это область этой топологии. Это обязательное поле.
-
topologySpreadConstraints.whenUnsatisfiable (string), обязательное поле
WhenUnsatisfiable указывает, как обработать Pod, если он не удовлетворяет ограничению распределения. - DoNotSchedule (по умолчанию) указывает планировщику не планировать его. - ScheduleAnyway указывает планировщику запланировать Pod в любом месте, но при этом придавая более высокий приоритет топологиям, которые помогут уменьшить неравномерность распределения. Ограничение считается «неудовлетворительным» для входящего Pod, если и только если любое возможное назначение узла для этого Pod нарушает «MaxSkew» в некоторой топологии. Например, в кластере из 3 зон MaxSkew равен 1, а Pods с одинаковым labelSelector распределены как 3/1/1: | зона1 | зона2 | зона3 | | P P P | P | P | Если WhenUnsatisfiable установлено как DoNotSchedule, входящий Pod может быть запланирован только в зону 2 (зону 3), чтобы стать 3/2/1 (3/1/2), поскольку ActualSkew (2-1) в зоне 2 (зоне 3) удовлетворяет MaxSkew (1). Другими словами, кластер может все еще быть неравномерным, но планировщик не сделает его *более* неравномерным. Это обязательное поле.
-
topologySpreadConstraints.labelSelector (LabelSelector)
LabelSelector используется для поиска соответствующих Pods. Pods, которые соответствуют этому LabelSelector, подсчитываются для определения количества Pods в соответствующей топологической области.
-
topologySpreadConstraints.matchLabelKeys ([]string)
Атомарное: заменится при слиянии
MatchLabelKeys — это набор ключей меток Pod для выбора Pods, по которым будет рассчитываться распределение. Эти ключи используются для поиска значений из меток входящего Pod, эти метки ключ-значение соединяются с LabelSelector для выбора группы существующих Pods, по которым будет рассчитываться распределение для входящего Pod. Один и тот же ключ запрещен в MatchLabelKeys и LabelSelector. MatchLabelKeys нельзя установить, если LabelSelector не установлен. Ключи, которые отсутствуют в метках входящего Pod, будут проигнорированы. Нулевой или пустой список означает соответствие только labelSelector.
Это поле находится в бета-версии и требует включения функции MatchLabelKeysInPodTopologySpread (включена по умолчанию).
-
topologySpreadConstraints.minDomains (int32)
MinDomains указывает минимальное количество допустимых областей. Когда количество допустимых областей с соответствующими топологическими ключами меньше, чем minDomains, Pod Topology Spread рассматривает «глобальный минимум» как 0, а затем выполняется вычисление Skew. А когда количество допустимых областей с соответствующими топологическими ключами равно или больше minDomains, это значение не влияет на планирование. В результате, когда количество допустимых областей меньше, чем minDomains, планировщик не будет планировать более, чем MaxSkew Pods в эти области. Если значение равно null, ограничение ведет себя так, как если бы MinDomains было равно 1. Допустимые значения — целые числа, большие, чем 0. Когда значение не равно null, WhenUnsatisfiable должно быть DoNotSchedule.
Например, в кластере из 3 зон MaxSkew равен 2, MinDomains равен 5, и Pods с одинаковым labelSelector распределены как 2/2/2: | зона1 | зона2 | зона3 | | P P | P P | P P | Количество областей меньше 5 (MinDomains), поэтому «глобальный минимум» рассматривается как 0. В этой ситуации новый Pod с тем же labelSelector не может быть запланирован, потому что вычисленная неравномерность распределения будет равна 3 (3 – 0), если новый Pod запланирован в любую из трех зон, это нарушит MaxSkew.
Это поле находится в бета-версии и требует включения функции MinDomainsInPodTopologySpread (включена по умолчанию).
-
topologySpreadConstraints.nodeAffinityPolicy (string)
NodeAffinityPolicy указывает, как мы будем обрабатывать nodeAffinity/nodeSelector Pod при вычислении неравномерности распределения топологии Pod. Варианты: - Honor: в расчетах учитываются только узлы, соответствующие nodeAffinity/nodeSelector. - Ignore: nodeAffinity/nodeSelector игнорируются. В расчетах учитываются все узлы.
Если это значение равно null, поведение эквивалентно политике Honor. Это функция бета-уровня, по умолчанию включенная флагом NodeInclusionPolicyInPodTopologySpread.
-
topologySpreadConstraints.nodeTaintsPolicy (string)
NodeTaintsPolicy указывает, как мы будем обрабатывать метки узлов при вычислении неравномерности распределения топологии Pod. Варианты: - Honor: учитываются узлы без меток, а также помеченные узлы, для которых у входящего Pod есть терпимость. - Ignore: метки узлов игнорируются. Все узлы учитываются.
Если это значение равно null, поведение эквивалентно политике Ignore. Это функция бета-уровня, по умолчанию включенная флагом NodeInclusionPolicyInPodTopologySpread.
-
-
overhead (map[string]Quantity)
Overhead представляет собой накладные расходы ресурсов, связанные с запуском Pod для данного RuntimeClass. Это поле будет автоматически заполняться во время приема запроса контроллером ввода RuntimeClass. Если контроллер приема запросов RuntimeClass включен, overhead не должен устанавливаться в запросах создания Pod. Контроллер приема запросов RuntimeClass отклонит запросы создания Pod, в которых overhead уже установлен. Если RuntimeClass настроен и выбран в PodSpec, Overhead будет установлен на значение, определенное в соответствующем RuntimeClass, в противном случае он останется не установлен и будет обрабатываться как ноль. Дополнительная информация: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md
Жизненный цикл
-
restartPolicy (string)
Политика перезапуска для всех контейнеров в Pod. Один из Always, OnFailure, Never. В некоторых контекстах могут быть разрешены только некоторые из этих значений. По умолчанию Always. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
-
terminationGracePeriodSeconds (int64)
Необязательный интервал времени в секундах, необходимый для плавного завершения Pod. Может быть уменьшен в запросе на удаление. Значение должно быть неотрицательным целым числом. Значение 0 указывает на немедленную остановку с помощью сигнала kill (нет возможности завершить работу). Если это значение равно null, будет использоваться интервал по умолчанию. Интервал времени — это интервал времени в секундах после отправки процессам, работающим в Pod, сигнала завершения, и времени, когда процессы насильственно останавливаются с помощью сигнала kill. Установите это значение больше, чем ожидаемое время очистки вашего процесса. По умолчанию 30 секунд.
-
activeDeadlineSeconds (int64)
Необязательный интервал времени в секундах, в течение которого Pod может быть активным на узле относительно StartTime, прежде чем система будет пытаться пометить его как неисправный и убить связанные контейнеры. Значение должно быть положительным целым числом.
-
readinessGates ([]PodReadinessGate)
Если указано, для проверки готовности Pod будут оцениваться все readiness gates. Pod считается готовым, когда все его контейнеры готовы И все условия, указанные в readiness gates, имеют статус, равный «True». Дополнительная информация: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates
PodReadinessGate содержит ссылку на состояние Pod
-
readinessGates.conditionType (string), обязательное поле
ConditionType ссылается на состояние в списке состояния Pod с соответствующим типом.
-
Разрешение имени и имени хоста
-
hostname (строка)
Указывает имя хоста Pod. Если не указано, имя хоста под будет установлено в значение, определённое системой.
-
setHostnameAsFQDN (логическое значение)
Если true, имя хоста под будет настроено как FQDN под, а не имя листа (по умолчанию). В контейнерах Linux это означает установку FQDN в поле hostname ядра (поле nodename структуры utsname). В контейнерах Windows это означает установку значения реестра hostname для ключа реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters в FQDN. Если у под нет FQDN, это не оказывает никакого эффекта. По умолчанию false.
-
subdomain (строка)
Если указано, полное имя хоста Pod будет "<hostname>.<subdomain>.<пространство имён под>.svc.<домен кластера>". Если не указано, у под не будет доменного имени.
-
hostAliases ([]HostAlias)
Стратегия патча: слияние по ключу
ipHostAliases — это необязательный список хостов и 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 для запуска точки входа процесса контейнера. Использует значение по умолчанию во время выполнения, если не задано. Также может быть задан в SecurityContext. Если задан как в SecurityContext, так и в PodSecurityContext, значение из SecurityContext имеет приоритет для данного контейнера. Обратите внимание, что это поле не может быть задано, когда spec.os.name — windows.
-
securityContext.supplementalGroups ([]int64)
Список групп, применяемых к первому процессу, запущенному в каждом контейнере, помимо основной GID контейнера, fsGroup (если указан) и членства в группах, определенных в образе контейнера для uid процесса контейнера. Если не указано, дополнительные группы к контейнерам не добавляются. Обратите внимание, что членство в группах, определенные в образе контейнера для uid процесса контейнера, все равно действуют, даже если они не включены в этот список. Обратите внимание, что это поле не может быть задано, когда spec.os.name — windows.
-
securityContext.fsGroup (int64)
Специальная дополнительная группа, которая применяется ко всем контейнерам в под. Некоторые типы томов позволяют Kubelet изменить владение этим томом, чтобы он принадлежал под:
- Владеющий GID будет FSGroup 2. Бит setgid установлен (новые файлы, созданные в томе, будут принадлежать FSGroup). 3. Разрешения побитово объединяются с rw-rw----
Если не установлено, Kubelet не будет изменять владение и разрешения любого тома. Обратите внимание, что это поле не может быть задано, когда spec.os.name — windows.
-
securityContext.fsGroupChangePolicy (string)
fsGroupChangePolicy определяет поведение изменения владения и разрешений тома перед экспонированием внутри Pod. Это поле будет применяться только к типам томов, которые поддерживают fsGroup-основанное владение (и разрешения). Это не повлияет на временные типы томов, такие как: secret, configmaps и emptydir. Допустимые значения — "OnRootMismatch" и "Always". Если не указано, используется "Always". Обратите внимание, что это поле не может быть задано, когда spec.os.name — windows.
-
securityContext.seccompProfile (SeccompProfile)
Настройки seccomp, которые будут использоваться контейнерами в этом под. Обратите внимание, что это поле не может быть задано, когда 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 контекст для каждого контейнера. Также может быть задан в 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, используемых для под. Под с неподдерживаемыми sysctls (контейнерным временем выполнения) могут не запуститься. Обратите внимание, что это поле не может быть задано, когда 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'. Все контейнеры Pod должны иметь одинаковое эффективное значение HostProcess (нельзя смешивать контейнеры HostProcess и не-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 должны быть выделены и зарезервированы перед тем, как под будет разрешено запуститься. Ресурсы будут доступны тем контейнерам, которые используют их по имени.
Это поле находится на стадии alpha и требует включения функции DynamicResourceAllocation.
Это поле неизменяемо.
PodResourceClaim ссылается ровно на одну ResourceClaim через ClaimSource. Она добавляет к ней имя, которое однозначно идентифицирует ResourceClaim внутри под. Контейнеры, которым нужен доступ к ResourceClaim, ссылаются на неё с помощью этого имени.
-
resourceClaims.name (string), required
Имя однозначно идентифицирует эту заявку на ресурс внутри под. Это должно быть DNS_LABEL.
-
resourceClaims.source (ClaimSource)
Source описывает, где найти ResourceClaim.
*ClaimSource описывает ссылку на ResourceClaim.
Должен быть задан ровно один из этих полей. Потребители этого типа должны рассматривать пустой объект так, как будто у него есть неизвестное значение.*
-
resourceClaims.source.resourceClaimName (string)
ResourceClaimName - это имя объекта ResourceClaim в том же пространстве имён, что и этот под.
-
resourceClaims.source.resourceClaimTemplateName (string)
ResourceClaimTemplateName - это имя объекта ResourceClaimTemplate в том же пространстве имён, что и этот под.
Шаблон будет использован для создания новой ResourceClaim, которая будет привязана к этому под. Когда этот под удаляется, ResourceClaim также удаляется. Имя под и имя ресурса, вместе с сгенерированным компонентом, будут использованы для формирования уникального имени для ResourceClaim, которое будет записано в pod.status.resourceClaimStatuses.
Это поле неизменяемо, и никакие изменения не будут внесены в соответствующую ResourceClaim контрольной плоскостью после создания ResourceClaim.
-
-
-
schedulingGates ([]PodSchedulingGate)
Стратегия патча: слияние по ключу
nameКарта: уникальные значения по ключу name будут сохранены при слиянии
SchedulingGates - это неявный список значений, которые, если указаны, заблокируют планирование под. Если schedulingGates не пустой, под останется в состоянии SchedulingGated, и планировщик не попытается запланировать под.
SchedulingGates можно задавать только при создании под и удалять только после этого.
Это функция бета-версии, включенная функцией 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 (string), необходимо
Имя переменной окружения. Должно быть C_IDENTIFIER.
-
env.value (string)
Ссылок на переменные $(VAR_NAME) расширяются с использованием ранее определённых переменных окружения в контейнере и любых переменных окружения сервиса. Если переменная не может быть разрешена, ссылка в входной строке останется неизменённой. Двойные $$ заменяются на один $, что позволяет экранировать синтаксис $(VAR_NAME): например, "$$(VAR_NAME)" даст строковый литерал "$(VAR_NAME)". Экранированные ссылки никогда не будут расширены, независимо от того, существует ли переменная или нет. По умолчанию "".
-
env.valueFrom (EnvVarSource)
Источник значения переменной окружения. Не может использоваться, если значение не пустое.
EnvVarSource представляет источник значения EnvVar.
-
env.valueFrom.configMapKeyRef (ConfigMapKeySelector)
Выбирает ключ ConfigMap.
Выбирает ключ из ConfigMap.
-
env.valueFrom.configMapKeyRef.key (string), необходимо
Ключ для выбора.
-
env.valueFrom.configMapKeyRef.name (string)
Имя объекта-референции. Подробнее: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
env.valueFrom.configMapKeyRef.optional (boolean)
Указывает, должен ли ConfigMap или его ключ быть определён
-
-
env.valueFrom.fieldRef (ObjectFieldSelector)
Выбирает поле под: поддерживает metadata.name, metadata.namespace,
metadata.labels['\<KEY>'],metadata.annotations['\<KEY>'], spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. -
env.valueFrom.resourceFieldRef (ResourceFieldSelector)
Выбирает ресурс контейнера: в настоящее время поддерживаются только лимиты и запросы ресурсов (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory и requests.ephemeral-storage).
-
env.valueFrom.secretKeyRef (SecretKeySelector)
Выбирает ключ секрета в пространстве имён под.
SecretKeySelector выбирает ключ секрета.
-
env.valueFrom.secretKeyRef.key (string), необходимо
Ключ секрета для выбора. Должен быть допустимым ключом секрета.
-
env.valueFrom.secretKeyRef.name (string)
Имя объекта-референции. Подробнее: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
env.valueFrom.secretKeyRef.optional (boolean)
Указывает, должен ли Secret или его ключ быть определён
-
-
-
-
envFrom ([]EnvFromSource)
Список источников для заполнения переменных окружения в контейнере. Ключи, определённые в источнике, должны быть C_IDENTIFIER. Все некорректные ключи будут сообщены как событие при запуске контейнера. Когда ключ существует в нескольких источниках, значение, связанное с последним источником, имеет приоритет. Значения, определённые в Env с дублирующимся ключом, имеют приоритет. Не может быть обновлён.
EnvFromSource представляет источник набора ConfigMaps
-
envFrom.configMapRef (ConfigMapEnvSource)
ConfigMap для выбора
*ConfigMapEnvSource выбирает ConfigMap для заполнения переменных окружения.
Содержимое поля Data целевого ConfigMap будет представлять пары ключ-значение в виде переменных окружения.*
-
envFrom.configMapRef.name (string)
Имя объекта-референции. Подробнее: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
envFrom.configMapRef.optional (boolean)
Указывает, должен ли ConfigMap быть определён
-
-
envFrom.prefix (string)
Необязательный идентификатор для добавления префикса к каждому ключу в ConfigMap. Должен быть C_IDENTIFIER.
-
envFrom.secretRef (SecretEnvSource)
Секрет для выбора
*SecretEnvSource выбирает секрет для заполнения переменных окружения.
Содержимое поля Data целевого секрета будет представлять пары ключ-значение в виде переменных окружения.*
-
envFrom.secretRef.name (string)
Имя объекта-референции. Подробнее: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
envFrom.secretRef.optional (boolean)
Указывает, должен ли Secret быть определён
-
-
Тома
-
volumeMounts ([]VolumeMount)
Стратегия изменения: слияние по ключу
mountPathТома Pod для монтирования в файловую систему контейнера. Не может быть обновлён.
VolumeMount описывает монтирование тома внутри контейнера.
-
volumeMounts.mountPath (string), необходимо
Путь внутри контейнера, в который должен быть смонтирован том. Не должен содержать ':'.
-
volumeMounts.name (string), необходимо
Должно совпадать с именем тома.
-
volumeMounts.mountPropagation (string)
mountPropagation определяет, как монтирования передаются с хоста в контейнер и обратно. Если не задано, используется MountPropagationNone. Это поле является бета-версией в 1.10.
-
volumeMounts.readOnly (boolean)
Монтируется только для чтения, если true, в противном случае (false или не указано). По умолчанию false.
-
volumeMounts.subPath (string)
Путь внутри тома, с которого должен быть смонтирован том контейнера. По умолчанию "" (корень тома).
-
volumeMounts.subPathExpr (string)
Расширенный путь внутри тома, с которого должен быть смонтирован том контейнера. Ведёт себя аналогично SubPath, но ссылки на переменные окружения $(VAR_NAME) расширяются с использованием переменных окружения контейнера. По умолчанию "" (корень тома). SubPathExpr и SubPath взаимоисключают.
-
-
volumeDevices ([]VolumeDevice)
Стратегия изменения: слияние по ключу
devicePathvolumeDevices — это список блочных устройств, которые будут использоваться контейнером.
volumeDevice описывает отображение блочного устройства в контейнере.
-
volumeDevices.devicePath (string), необходимо
devicePath — это путь внутри контейнера, к которому будет сопоставлено устройство.
-
volumeDevices.name (string), необходимо
name должно совпадать с именем persistentVolumeClaim в под.
-
Ресурсы
-
resources (ResourceRequirements)
Вычислительные ресурсы, необходимые этим контейнером. Не может быть обновлён. Подробнее: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
ResourceRequirements описывает требования к вычислительным ресурсам.
-
resources.claims ([]ResourceClaim)
Карта: уникальные значения по ключу name будут сохранены при слиянии
Claims перечисляет имена ресурсов, определённых в spec.resourceClaims, которые используются этим контейнером.
Это поле alpha и требует включения функции DynamicResourceAllocation.
Это поле неизменяемо. Его можно установить только для контейнеров.
ResourceClaim ссылается на одну запись в PodSpec.ResourceClaims.
-
resources.claims.name (string), необходимо
Имя должно совпадать с именем одной записи в pod.spec.resourceClaims Pod, где используется это поле. Это делает ресурс доступным внутри контейнера.
-
-
resources.limits (map[string]Quantity)
Limits описывает максимальное количество вычислительных ресурсов, разрешённых. Подробнее: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
-
resources.requests (map[string]Quantity)
Requests описывает минимальное количество вычислительных ресурсов, необходимых. Если Requests опущено для контейнера, по умолчанию используется Limits, если оно явно указано, в противном случае используется определённое реализацией значение. Requests не может превышать Limits. Подробнее: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
-
-
resizePolicy ([]ContainerResizePolicy)
Атомарно: будет заменено при слиянии
Политика изменения размера ресурсов для контейнера.
ContainerResizePolicy представляет политику изменения размера ресурсов для контейнера.
-
resizePolicy.resourceName (string), необходимо
Имя ресурса, к которому применяется эта политика изменения размера. Поддерживаются значения: cpu, memory.
-
resizePolicy.restartPolicy (string), необходимо
Политика перезапуска, применяемая при изменении размера указанного ресурса. Если не указано, по умолчанию используется 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 будет перезапущен, как если бы завершилась проверка работоспособности. Это можно использовать для предоставления различных параметров зондирования в начале жизненного цикла Pod, когда может потребоваться много времени для загрузки данных или разогрева кэша, чем во время стабильной работы. Это не может быть обновлено. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
-
restartPolicy (строка)
RestartPolicy определяет поведение перезапуска отдельных контейнеров в Pod. Это поле можно задавать только для контейнеров инициализации, и единственное допустимое значение — "Always". Для контейнеров, не являющихся контейнерами инициализации, или когда это поле не указано, поведение перезапуска определяется политикой перезапуска Pod и типом контейнера. Установка RestartPolicy в "Always" для контейнера инициализации приведет к следующему эффекту: этот контейнер инициализации будет непрерывно перезапускаться при завершении, пока все обычные контейнеры не завершат работу. После завершения всех обычных контейнеров все контейнеры инициализации с restartPolicy "Always" будут остановлены. Этот жизненный цикл отличается от обычных контейнеров инициализации и часто называется контейнером «сопровождения». Хотя этот контейнер инициализации всё ещё запускается в последовательности контейнеров инициализации, он не ждёт завершения контейнера, прежде чем перейти к следующему контейнеру инициализации. Вместо этого следующий контейнер инициализации запускается сразу после запуска этого контейнера инициализации или после успешного завершения любой проверки startupProbe.
Контекст безопасности
-
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 указаны как на уровне Pod, так и на уровне контейнера, настройки контейнера переопределяют настройки Pod. Обратите внимание, что это поле не может быть установлено, когда spec.os.name — windows.
SeccompProfile определяет параметры профиля seccomp для Pod/контейнера. Может быть указан только один источник профиля.
-
securityContext.seccompProfile.type (string), required
тип указывает, какой тип профиля seccomp будет применен. Допустимые значения:
Localhost — должен использоваться профиль, определенный в файле на узле. RuntimeDefault — должен использоваться профиль по умолчанию для среды выполнения контейнера. Unconfined — профиль не должен применяться.
-
securityContext.seccompProfile.localhostProfile (string)
localhostProfile указывает, что следует использовать профиль, определенный в файле на узле. Профиль должен быть предварительно настроен на узле для работы. Должен быть абсолютным путем, относительно заданного в kubelet расположения профиля seccomp. Должен быть задан, если 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 admission (https://github.com/kubernetes-sigs/windows-gmsa) вставляет содержимое спецификации учетных данных GMSA, названного полем GMSACredentialSpecName.
-
securityContext.windowsOptions.gmsaCredentialSpecName (string)
GMSACredentialSpecName — имя используемой спецификации учетных данных GMSA.
-
securityContext.windowsOptions.hostProcess (boolean)
HostProcess определяет, должен ли контейнер запускаться как контейнер 'Host Process'. Все контейнеры 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. Это имя должно быть уникальным среди всех контейнеров, init контейнеров и временных контейнеров.
-
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)
Выбирает поле pod: поддерживает 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)
Выбирает ключ секрета в пространстве имен pod
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 представляет источник набора ConfigMaps
-
envFrom.configMapRef (ConfigMapEnvSource)
ConfigMap для выбора.
*ConfigMapEnvSource выбирает ConfigMap для заполнения переменных окружения.
Содержимое поля Data целевого ConfigMap будет представлять пары ключ-значение в качестве переменных окружения.*
-
envFrom.configMapRef.name (string)
Имя объекта-ссылочного. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
envFrom.configMapRef.optional (boolean)
Указывает, должен ли быть определён ConfigMap
-
-
envFrom.prefix (string)
Дополнительный идентификатор для добавления в качестве префикса к каждому ключу в ConfigMap. Должно быть C_IDENTIFIER.
-
envFrom.secretRef (SecretEnvSource)
Секрет для выбора.
*SecretEnvSource выбирает Secret для заполнения переменных окружения.
Содержимое поля Data целевого Secret будет представлять пары ключ-значение в качестве переменных окружения.*
-
envFrom.secretRef.name (string)
Имя объекта-ссылочного. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
envFrom.secretRef.optional (boolean)
Указывает, должен ли быть определён Secret
-
-
Тома
-
volumeMounts ([]VolumeMount)
Стратегия патчинга: слияние по ключу
mountPathТома pod для монтирования в файловую систему контейнера. Подмонтирование подпутей не разрешено для временных контейнеров. Не может быть обновлено.
VolumeMount описывает монтирование тома внутри контейнера.
-
volumeMounts.mountPath (string), required
Путь внутри контейнера, в котором должен быть смонтирован том. Не должен содержать ':'.
-
volumeMounts.name (string), required
Должно совпадать с именем тома.
-
volumeMounts.mountPropagation (string)
mountPropagation определяет, как монтирования распространяются от хоста к контейнеру и обратно. Если не задано, используется MountPropagationNone. Это поле является бета-версией в 1.10.
-
volumeMounts.readOnly (boolean)
Монтируется в режиме только для чтения, если true, в режиме чтения-записи в противном случае (false или не указано). По умолчанию false.
-
volumeMounts.subPath (string)
Путь внутри тома, из которого должен быть смонтирован том контейнера. По умолчанию "" (корень тома).
-
volumeMounts.subPathExpr (string)
Расширенный путь внутри тома, из которого должен быть смонтирован том контейнера. Ведёт себя аналогично SubPath, но ссылки на переменные окружения $(VAR_NAME) расширяются с использованием среды контейнера. По умолчанию "" (корень тома). SubPathExpr и SubPath взаимно исключают друг друга.
-
-
volumeDevices ([]VolumeDevice)
Стратегия патчинга: слияние по ключу
devicePathvolumeDevices — это список блочных устройств, которые нужно использовать контейнером.
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 (строка)
Необязательно: Путь, по которому файл, в который будет записано сообщение о завершении контейнера, смонтирован в файловую систему контейнера. Записываемое сообщение должно быть кратким итоговым статусом, таким как сообщение об ошибке проверки. Будет усечено узлом, если превышает 4096 байт. Общий размер сообщения во всех контейнерах будет ограничен 12 Кб. По умолчанию /dev/termination-log. Не может быть обновлено.
-
terminationMessagePolicy (строка)
Указывает, как должно быть заполнено сообщение о завершении. Файл будет использовать содержимое terminationMessagePath для заполнения сообщения о состоянии контейнера как при успехе, так и при ошибке. FallbackToLogsOnError будет использовать последний фрагмент вывода журнала контейнера, если файл сообщения о завершении пуст, а контейнер завершился с ошибкой. Вывод журнала ограничен 2048 байтами или 80 строками, в зависимости от того, что меньше. По умолчанию File. Не может быть обновлено.
-
restartPolicy (строка)
Политика перезапуска для контейнера, управляющая поведением перезапуска каждого контейнера в задаче. Это может быть установлено только для контейнеров инициализации. Нельзя задавать этот параметр для временных контейнеров.
Отладка
-
stdin (булево)
Нужно ли этому контейнеру выделять буфер для stdin в среде выполнения контейнера. Если это не установлено, чтение из stdin в контейнере всегда приведет к EOF. По умолчанию false.
-
stdinOnce (булево)
Нужно ли среде выполнения контейнера закрыть канал stdin после его открытия единственным подключением. Когда stdin равно true, поток stdin остается открытым во время нескольких сеансов подключения. Если stdinOnce установлено в true, stdin открывается при запуске контейнера, пуст до первого подключения клиента к stdin, затем остается открытым и принимает данные до отключения клиента, в этот момент stdin закрывается и остается закрытым до перезапуска контейнера. Если этот флаг равен false, процесс контейнера, читающий из stdin, никогда не получит EOF. По умолчанию false
-
tty (булево)
Нужно ли этому контейнеру выделить 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 (булево)
Указывает, что контейнер должен запускаться не от имени 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 (булево)
Указывает, имеет ли этот контейнер доступ к файловой системе только для чтения. По умолчанию false. Обратите внимание, что это поле не может быть установлено, когда spec.os.name является windows.
-
securityContext.procMount (строка)
procMount определяет тип монтирования proc для контейнеров. По умолчанию DefaultProcMount, который использует значения по умолчанию среды выполнения контейнера для путей только для чтения и замаскированных путей. Требуется, чтобы флаг ProcMountType был включен. Обратите внимание, что это поле не может быть установлено, когда spec.os.name является windows.
-
securityContext.privileged (булево)
Запустить контейнер в привилегированном режиме. Процессы в привилегированных контейнерах по существу эквивалентны root на хосте. По умолчанию false. Обратите внимание, что это поле не может быть установлено, когда spec.os.name является windows.
-
securityContext.allowPrivilegeEscalation (булево)
AllowPrivilegeEscalation контролирует, может ли процесс получить больше привилегий, чем у родительского процесса. Этот bool напрямую управляет тем, будет ли установлен флаг no_new_privs для процесса контейнера. AllowPrivilegeEscalation всегда равно true, когда контейнер: 1) запущен как Privileged 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 (строка), обязательно
тип указывает, какой вид профиля seccomp будет применен. Допустимые варианты:
Localhost - должен использоваться профиль, определенный в файле на узле. RuntimeDefault - должен использоваться профиль по умолчанию среды выполнения контейнера. Unconfined - не должен применяться никакой профиль.
-
securityContext.seccompProfile.localhostProfile (строка)
localhostProfile указывает, что должен использоваться профиль, определенный в файле на узле. Профиль должен быть предварительно настроен на узле для работы. Должен быть нисходящим путем, относительным к настроенному расположению профиля seccomp kubelet. Должен быть установлен, если тип равен "Localhost". Не должен устанавливаться для других типов.
-
-
securityContext.seLinuxOptions (SELinuxOptions)
Контекст SELinux, который будет применен к контейнеру. Если не указано, среда выполнения контейнера выделит случайный контекст SELinux для каждого контейнера. Также может быть установлен в PodSecurityContext. Если установлен в SecurityContext и PodSecurityContext, значение, указанное в SecurityContext, имеет приоритет. Обратите внимание, что это поле не может быть установлено, когда spec.os.name является windows.
SELinuxOptions — это метки, которые будут применены к контейнеру
-
securityContext.seLinuxOptions.level (строка)
Уровень — это метка уровня SELinux, которая применяется к контейнеру.
-
securityContext.seLinuxOptions.role (строка)
Роль — это метка роли SELinux, которая применяется к контейнеру.
-
securityContext.seLinuxOptions.type (строка)
Тип — это метка типа SELinux, которая применяется к контейнеру.
-
securityContext.seLinuxOptions.user (строка)
Пользователь — это метка пользователя SELinux, которая применяется к контейнеру.
-
-
securityContext.windowsOptions (WindowsSecurityContextOptions)
Настройки, специфичные для Windows, применяемые ко всем контейнерам. Если не указано, будут использоваться параметры из PodSecurityContext. Если установлено в SecurityContext и PodSecurityContext, значение, указанное в SecurityContext, имеет приоритет. Обратите внимание, что это поле не может быть установлено, когда spec.os.name является linux.
WindowsSecurityContextOptions содержат параметры и учетные данные, специфичные для Windows.
-
securityContext.windowsOptions.gmsaCredentialSpec (строка)
GMSACredentialSpec — это место, где веб-хук по доступу GMSA (https://github.com/kubernetes-sigs/windows-gmsa) встраивает содержимое спецификации учетных данных GMSA, заданной именем в поле GMSACredentialSpecName.
-
securityContext.windowsOptions.gmsaCredentialSpecName (строка)
GMSACredentialSpecName — это имя используемой спецификации учетных данных GMSA.
-
securityContext.windowsOptions.hostProcess (булево)
HostProcess определяет, должен ли контейнер запускаться как контейнер 'Host Process'. Все контейнеры Pod должны иметь одинаковое эффективное значение HostProcess (не разрешается смешивать контейнеры HostProcess и не-HostProcess). Кроме того, если HostProcess равно true, HostNetwork также должно быть установлено в true.
-
securityContext.windowsOptions.runAsUserName (строка)
Имя пользователя в 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)
Карта: уникальные значения по ключу name будут сохранены во время слияния
Список имен ресурсов, определённых в spec.resourceClaims, которые используются этим контейнером.
Это поле находится в стадии альфа-тестирования и требует включения функции DynamicResourceAllocation.
Это поле неизменяемое. Его можно задать только для контейнеров.
ResourceClaim ссылается на одну запись в PodSpec.ResourceClaims.
-
resources.claims.name (строка), обязательно
Имя должно совпадать с именем одной записи в под.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/
-
-
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. Независимо от результата обработчика, контейнер в конечном итоге завершится в течение периода завершения под (если не отложен окончательными обработчиками). Другое управление контейнером блокируется до завершения обработчика или достижения периода завершения. Подробнее: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
-
-
livenessProbe (Probe)
Зондирование работоспособности запрещено для контейнеров со временем жизни.
-
readinessProbe (Probe)
Зондирование готовности запрещено для контейнеров со временем жизни.
-
startupProbe (Probe)
Зондирование запуска запрещено для контейнеров со временем жизни.
LifecycleHandler
LifecycleHandler определяет конкретное действие, которое должно быть выполнено в обработчике жизненного цикла. Должно быть указано только одно и единственное поле, кроме TCPSocket.
-
exec (ExecAction)
Exec определяет действие, которое нужно выполнить.
ExecAction описывает действие «выполнение в контейнере».
-
exec.command ([]string)
Command — это команда командной строки для выполнения внутри контейнера. Рабочий каталог для команды — корень ('/') в файловой системе контейнера. Команда просто выполняется, она не выполняется внутри оболочки, поэтому традиционные инструкции оболочки ('|', и т. д.) не будут работать. Для использования оболочки необходимо явно вызвать эту оболочку. Код возврата 0 обрабатывается как живой/работоспособный, а ненулевой — как неработоспособный.
-
-
httpGet (HTTPGetAction)
HTTPGet определяет HTTP-запрос, который необходимо выполнить.
HTTPGetAction описывает действие, основанное на HTTP-запросах GET.
-
httpGet.port (IntOrString), обязательно
Имя или номер порта для доступа к контейнеру. Номер должен быть в диапазоне от 1 до 65535. Имя должно быть IANA_SVC_NAME.
IntOrString — тип, который может содержать int32 или строку. При использовании в JSON или YAML маршаллировании и расмаршаллировании он производит или потребляет внутренний тип. Это позволяет, например, иметь поле JSON, которое может принимать имя или номер.
-
httpGet.host (строка)
Имя хоста для подключения, по умолчанию используется IP-адрес под. Вероятно, вместо "Host" вы захотите установить "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
Сродство узла — это набор правил планирования сродства узла.
-
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 для liveness и startup. Минимальное значение — 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 представляет информацию о состоянии под. Состояние может отставать от фактического состояния системы, особенно если узел, на котором размещен под, не может связаться с контрольной плоскостью.
-
nominatedNodeName (строка)
nominatedNodeName устанавливается только тогда, когда этот pod вытесняет другие pod на узле, но он не может быть запланирован сразу, так как жертвы вытеснения получают свои периоды плавного завершения. Это поле не гарантирует, что pod будет запланирован на этом узле. Планировщик может решить разместить pod в другом месте, если другие узлы станут доступны раньше. Планировщик также может решить предоставить ресурсы на этом узле под более высокому приоритету, который создан после вытеснения. В результате это поле может отличаться от PodSpec.nodeName, когда pod планируется.
-
hostIP (строка)
hostIP содержит IP-адрес узла, которому назначен pod. Пусто, если pod еще не запущен. Pod может быть назначен узлу, у которого есть проблема в kubelet, что в свою очередь означает, что HostIP не будет обновлен, даже если узел назначен pod
-
hostIPs ([]HostIP)
Стратегия исправления: слияние по ключу
ipАтомарное: будет заменено во время слияния
hostIPs содержит IP-адреса, выделенные узлу. Если это поле указано, первая запись должна соответствовать полю hostIP. Этот список пуст, если pod еще не запущен. Pod может быть назначен узлу, у которого есть проблема в kubelet, что в свою очередь означает, что HostIPs не будут обновлены, даже если узел назначен этому pod.
HostIP представляет собой единственный IP-адрес, выделенный узлу.
-
hostIPs.ip (строка)
IP — это IP-адрес, назначенный узлу
-
-
startTime (Время)
Дата и время RFC 3339, в которые объект был подтвержден Kubelet. Это до того, как Kubelet извлек образ(ы) контейнера для pod.
Время — это оболочка вокруг time.Time, которая поддерживает правильное приведение к YAML и JSON. Оболочки предоставляются для многих фабричных методов, которые предлагает пакет времени.
-
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)
Стратегия исправления: слияние по ключу
ippodIPs содержит IP-адреса, выделенные pod. Если это поле указано, нулевая запись должна соответствовать полю podIP. Pod может получить не более 1 значения для каждого из IPv4 и IPv6. Этот список пуст, если еще не были выделены IP-адреса.
PodIP представляет собой единственный IP-адрес, выделенный pod.
-
podIPs.ip (строка)
IP — это IP-адрес, назначенный под
-
-
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. Оболочки предоставляются для многих фабричных методов, которые предлагает пакет времени.
-
conditions.lastTransitionTime (Время)
Последнее время перехода условия из одного состояния в другое.
Время — это оболочка вокруг time.Time, которая поддерживает правильное приведение к YAML и JSON. Оболочки предоставляются для многих фабричных методов, которые предлагает пакет времени.
-
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)
Список содержит по одной записи на каждый init-контейнер в манифесте. Самый последний успешный init-контейнер будет иметь 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 содержит подробности о текущем состоянии этого контейнера.
-
resourceClaimStatuses ([]PodResourceClaimStatus)
Стратегии исправления: retainKeys, слияние по ключу
nameКарта: уникальные значения по ключу name будут сохранены во время слияния
Состояние заявок на ресурсы.
PodResourceClaimStatus хранится в PodStatus для каждого PodResourceClaim, который ссылается на ResourceClaimTemplate. Он хранит сгенерированное имя для соответствующего ResourceClaim.
-
resourceClaimStatuses.name (строка), обязательно
Имя уникально идентифицирует эту заявку на ресурс внутри pod. Оно должно совпадать с именем записи в pod.spec.resourceClaims, что подразумевает, что строка должна быть DNS_LABEL.
-
resourceClaimStatuses.resourceClaimName (строка)
ResourceClaimName — это имя ResourceClaim, которое было сгенерировано для Pod в пространстве имен Pod. Если это не задано, то генерация ResourceClaim не была необходима. Запись pod.spec.resourceClaims в этом случае можно проигнорировать.
-
-
resize (строка)
Статус изменения размеров ресурсов, желаемых для контейнеров pod. Он пуст, если изменение размеров ресурсов не ожидается. Любые изменения ресурсов контейнера автоматически установят это значение на "Предложено"
PodList
PodList — это список pod.
-
items ([]Pod), обязательно
Список pod. Дополнительная информация: 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-28.docs.kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/