Под
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), необходимо
Стратегия патчинга: merge по ключу
nameКарта: уникальные значения по ключу name будут сохранены при слиянии
Список контейнеров, принадлежащих под. В настоящее время контейнеры нельзя добавлять или удалять. В Под должен быть хотя бы один контейнер. Не может быть обновлён.
-
initContainers ([]Container)
Стратегия патчинга: merge по ключу
nameКарта: уникальные значения по ключу name будут сохранены при слиянии
Список контейнеров инициализации, принадлежащих под. Контейнеры инициализации выполняются в порядке, предшествующем запуску контейнеров. Если какой-либо контейнер инициализации завершается неудачно, под считается завершённым неудачно и обрабатывается в соответствии с его restartPolicy. Имя контейнера инициализации или обычного контейнера должно быть уникальным среди всех контейнеров. Контейнеры инициализации не могут иметь действий Lifecycle, проверок готовности, проверок на жизнеспособность или проверок запуска. Требования к ресурсам контейнера инициализации учитываются при планировании путём поиска максимального запроса/лимита для каждого типа ресурса и последующим использованием максимума этого значения или суммы значений обычных контейнеров. Ограничения применяются к контейнерам инициализации аналогичным образом. В настоящее время контейнеры инициализации нельзя добавлять или удалять. Не может быть обновлён. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
-
ephemeralContainers ([]EphemeralContainer)
Стратегия патчинга: merge по ключу
nameКарта: уникальные значения по ключу name будут сохранены при слиянии
Список временных контейнеров, выполняемых в этом под. Временные контейнеры могут выполняться в существующем под для выполнения действий, инициированных пользователем, таких как отладка. Этот список не может быть указан при создании под, и он не может быть изменён обновлением спецификации под. Для добавления временного контейнера в существующий под используйте подресурс ephemeralcontainers.
-
imagePullSecrets ([]LocalObjectReference)
Стратегия патчинга: merge по ключу
nameКарта: уникальные значения по ключу name будут сохранены при слиянии
ImagePullSecrets — это необязательный список ссылок на секреты в том же пространстве имён, которые нужно использовать для извлечения любых образов, используемых этим PodSpec. При указании эти секреты будут переданы отдельным реализациям извлекателей для их использования. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
-
enableServiceLinks (boolean)
EnableServiceLinks указывает, следует ли вставлять информацию о службах в переменные окружения под, соответствующие синтаксису Docker-ссылки. Необязательно: по умолчанию true.
-
os (PodOS)
Определяет ОС контейнеров в под. Некоторые поля под и контейнеров ограничены, если это установлено.
Если поле OS установлено в linux, следующие поля должны быть сброшены: -securityContext.windowsOptions
Если поле OS установлено в windows, следующие поля должны быть сброшены: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - 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.securityContext.supplementalGroupsPolicy - spec.containers[].securityContext.appArmorProfile - 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, merge по ключу
nameКарта: уникальные значения по ключу 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 указывает, на каком узле этот под запланирован. Если пусто, этот под является кандидатом для планирования планировщиком, определённым в schedulerName. После того, как это поле установлено, kubelet для этого узла становится ответственным за жизненный цикл этого пода. Это поле не должно использоваться для выражения желания разместить под на определённом узле. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename
-
affinity (Affinity)
Если указано, ограничения планирования пода
Affinity — это группа правил планирования affinity.
-
affinity.nodeAffinity (NodeAffinity)
Описывает правила планирования affinity узла для пода.
-
affinity.podAffinity (PodAffinity)
Описывает правила планирования affinity пода (например, расположить этот под на том же узле, зоне и т. д., что и некоторые другие под(ы)).
-
affinity.podAntiAffinity (PodAntiAffinity)
Описывает правила планирования анти-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 и отрицательные значения будут обрабатываться как 0 (немедленно выгнать) системой.
-
-
schedulerName (string)
Если указано, под будет распределён указанным планировщиком. Если не указано, под будет распределён по умолчанию.
-
runtimeClassName (string)
RuntimeClassName относится к объекту RuntimeClass в группе node.k8s.io, который должен использоваться для запуска этого пода. Если ни один ресурс RuntimeClass не соответствует названному классу, под не будет запущен. Если не установлено или пусто, будет использоваться «legacy» RuntimeClass, который является неявным классом с пустым определением, использующим обработчик по умолчанию. Дополнительная информация: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
-
priorityClassName (string)
Если указано, указывает приоритет пода. "system-node-critical" и "system-cluster-critical" — это два специальных ключевых слова, которые указывают на наивысшие приоритеты, причем первый — самый высокий приоритет. Любое другое имя должно быть определено путём создания объекта PriorityClass с этим именем. Если не указано, приоритет пода будет по умолчанию или нулевым, если нет значения по умолчанию.
-
priority (int32)
Значение приоритета. Различные системные компоненты используют это поле для определения приоритета пода. При включённом контроллере допуска Priority, пользователи не могут установить это поле. Контроллер допуска заполняет это поле из PriorityClassName. Чем больше значение, тем выше приоритет.
-
preemptionPolicy (string)
PreemptionPolicy — это политика для прерывания пода с более низким приоритетом. Одно из Never, PreemptLowerPriority. По умолчанию — PreemptLowerPriority, если не установлено.
-
topologySpreadConstraints ([]TopologySpreadConstraint)
Стратегия патча: слияние по ключу
topologyKeyКарта: уникальные значения по ключам
topologyKey, whenUnsatisfiableбудут сохранены при слиянииTopologySpreadConstraints описывает, как группа под должен быть распределена по топологическим доменам. Планировщик будет планировать под таким образом, чтобы соблюдать ограничения. Все topologySpreadConstraints выполняются по логике И.
TopologySpreadConstraint определяет, как распределить совпадающие под по заданной топологии.
-
topologySpreadConstraints.maxSkew (int32), обязательно
MaxSkew описывает степень, в которой под могут быть неравномерно распределены. Когда
whenUnsatisfiable=DoNotSchedule, это максимальная допустимая разница между количеством совпадающих под в целевой топологии и глобальным минимумом. Глобальный минимум — это минимальное количество совпадающих под в подходящем домене или ноль, если количество подходящих доменов меньше MinDomains. Например, в кластере с 3-мя зонами MaxSkew установлен в 1, а под с одинаковым labelSelector распределены как 2/2/1: В этом случае глобальный минимум равен 1. | зона1 | зона2 | зона3 | | P P | P P | P | - если MaxSkew равен 1, новый под может быть запланирован только в зону 3, чтобы стать 2/2/2; планирование его в зону 1 (зону 2) приведет к тому, что ActualSkew (3-1) в зоне 1 (зоне 2) нарушит MaxSkew (1). - если MaxSkew равен 2, новый под может быть запланирован в любую зону. КогдаwhenUnsatisfiable=ScheduleAnyway, это используется для повышения приоритета топологий, которые его удовлетворяют. Это обязательное поле. Значение по умолчанию равно 1, и 0 недопустимо. -
topologySpreadConstraints.topologyKey (string), обязательно
TopologyKey — это ключ меток узлов. Узлы, которые имеют метку с этим ключом и идентичными значениями, считаются принадлежащими к одной и той же топологии. Мы рассматриваем каждую пару <ключ, значение> как «ведро» и пытаемся поместить в каждое ведро сбалансированное количество под. Мы определяем домен как конкретное воплощение топологии. Также мы определяем подходящий домен как домен, узлы которого соответствуют требованиям nodeAffinityPolicy и nodeTaintsPolicy. Например, если TopologyKey равен "kubernetes.io/hostname", каждый узел является доменом этой топологии. А если TopologyKey равен "topology.kubernetes.io/zone", каждая зона является доменом этой топологии. Это обязательное поле.
-
topologySpreadConstraints.whenUnsatisfiable (string), обязательно
WhenUnsatisfiable указывает, как обработать под, если он не удовлетворяет ограничению распределения. - DoNotSchedule (по умолчанию) сообщает планировщику, что не следует планировать его. - ScheduleAnyway сообщает планировщику, что следует планировать под в любом месте, но при этом уделяя более высокую важность топологиям, которые помогут уменьшить дисбаланс. Ограничение считается «неудовлетворительным» для нового под тогда и только тогда, когда каждое возможное назначение узла для этого под нарушает «MaxSkew» в какой-то топологии. Например, в кластере с 3 зонами MaxSkew равен 1, а под с одинаковым labelSelector распределены как 3/1/1: | зона1 | зона2 | зона3 | | P P P | P | P | Если WhenUnsatisfiable установлен в DoNotSchedule, новый под может быть запланирован только в зону 2 (зону 3), чтобы стать 3/2/1 (3/1/2), так как ActualSkew (2-1) в зоне 2 (зоне 3) удовлетворяет MaxSkew (1). Другими словами, кластер по-прежнему может быть несбалансированным, но планировщик не сделает его *более* несбалансированным. Это обязательное поле.
-
topologySpreadConstraints.labelSelector (LabelSelector)
LabelSelector используется для поиска совпадающих под. Под, которые соответствуют этому label selector, подсчитываются для определения количества под в соответствующем топологическом домене.
-
topologySpreadConstraints.matchLabelKeys ([]string)
Атомарно: будет заменено при слиянии
MatchLabelKeys — это набор ключей меток под для выбора под, по которым будет рассчитываться распределение. Эти ключи используются для поиска значений из меток нового под, эти пары ключ-значение сопоставляются с labelSelector, чтобы выбрать группу существующих под, по которым будет рассчитываться распределение для нового под. Один и тот же ключ запрещен для существования как в MatchLabelKeys, так и в LabelSelector. MatchLabelKeys не может быть установлен, если LabelSelector не установлен. Ключи, которых нет в метках нового под, будут проигнорированы. Null или пустой список означает, что сопоставление происходит только с labelSelector.
Это поле бета-версии и требует включения функции MatchLabelKeysInPodTopologySpread (включена по умолчанию).
-
topologySpreadConstraints.minDomains (int32)
MinDomains указывает минимальное количество подходящих доменов. Когда количество подходящих доменов с совпадающими ключами топологии меньше minDomains, Pod Topology Spread рассматривает «глобальный минимум» как 0, и затем выполняется вычисление Skew. А когда количество подходящих доменов с совпадающими ключами топологии равно или больше minDomains, это значение не влияет на планирование. В результате, когда количество подходящих доменов меньше minDomains, планировщик не будет планировать более чем maxSkew под в эти домены. Если значение равно null, ограничение ведет себя так, как если бы MinDomains было равно 1. Допустимые значения — целые числа, большие 0. Когда значение не равно null, WhenUnsatisfiable должно быть DoNotSchedule.
Например, в кластере с 3 зонами MaxSkew равен 2, MinDomains равен 5, а под с одинаковым labelSelector распределены как 2/2/2: | зона1 | зона2 | зона3 | | P P | P P | P P | Количество доменов меньше 5 (MinDomains), поэтому «глобальный минимум» рассматривается как 0. В этой ситуации новый под с тем же labelSelector не может быть запланирован, потому что вычисленный skew будет 3 (3 - 0), если новый под запланирован в любую из трех зон, это нарушит MaxSkew.
-
topologySpreadConstraints.nodeAffinityPolicy (string)
NodeAffinityPolicy указывает, как мы будем обрабатывать nodeAffinity/nodeSelector под при вычислении дисбаланса топологии под. Опции: - Honor: учитываются только узлы, соответствующие nodeAffinity/nodeSelector. - Ignore: nodeAffinity/nodeSelector игнорируются. Учитываются все узлы.
Если это значение равно null, поведение эквивалентно политике Honor. Это функция бета-уровня, включенная по умолчанию флагом NodeInclusionPolicyInPodTopologySpread.
-
topologySpreadConstraints.nodeTaintsPolicy (string)
NodeTaintsPolicy указывает, как мы будем обрабатывать метки узлов при вычислении дисбаланса топологии под. Опции: - Honor: учитываются узлы без меток и помеченные узлы, для которых у нового под есть толерантность. - Ignore: метки узлов игнорируются. Учитываются все узлы.
Если это значение равно null, поведение эквивалентно политике Ignore. Это функция бета-уровня, включенная по умолчанию флагом NodeInclusionPolicyInPodTopologySpread.
-
-
overhead (map[string]Quantity)
Overhead представляет собой накладные расходы на ресурс, связанные с запуском под для заданного RuntimeClass. Это поле будет автоматически заполняться во время этапа admission контроллером RuntimeClass. Если контроллер RuntimeClass admission включен, overhead не должен устанавливаться в запросах создания Pod. Контроллер RuntimeClass admission отклонит запросы создания Pod, в которых overhead уже установлен. Если RuntimeClass настроен и выбран в PodSpec, Overhead будет установлен на значение, определенное в соответствующем RuntimeClass, в противном случае он останется не установленным и будет обработан как ноль. Более подробная информация: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md
Lifecycle
-
restartPolicy (string)
Политика перезапуска для всех контейнеров в рамках pod. Одна из Always, OnFailure, Never. В некоторых контекстах может быть разрешен только подмножество этих значений. По умолчанию Always. Более подробная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
-
terminationGracePeriodSeconds (int64)
Необязательный интервал времени в секундах, необходимый для плавного завершения работы под. Может быть уменьшен в запросе удаления. Значение должно быть неотрицательным целым числом. Значение ноль означает немедленное завершение работы через сигнал kill (нет возможности завершить работу). Если это значение равно null, будет использоваться значение по умолчанию. Интервал времени завершения — это интервал времени в секундах после того, как процессам, выполняющимся в pod, отправлен сигнал завершения, и до момента, когда процессы принудительно останавливаются с помощью сигнала kill. Установите это значение больше, чем ожидаемое время завершения работы вашего процесса. По умолчанию 30 секунд.
-
activeDeadlineSeconds (int64)
Необязательный интервал времени в секундах, в течение которого pod может быть активным на узле относительно StartTime, прежде чем система будет активно пытаться пометить его как завершившийся и убить связанные контейнеры. Значение должно быть положительным целым числом.
-
readinessGates ([]PodReadinessGate)
Атомарно: будет заменено при слиянии
Если указано, все готовности будут оценены для готовности под. Под готов, когда все его контейнеры готовы И все условия, указанные в готовностях, имеют статус «True». Более подробная информация: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates
PodReadinessGate содержит ссылку на состояние pod
-
readinessGates.conditionType (string), обязательно
ConditionType относится к состоянию в списке состояний pod с соответствующим типом.
-
Hostname и разрешение имен
-
hostname (строка)
Указывает имя хоста Pod. Если не указано, имя хоста под будет установлено системным значением.
-
setHostnameAsFQDN (булево)
Если true, имя хоста под будет настроено как FQDN под, а не как имя листа (по умолчанию). В контейнерах Linux это означает установку FQDN в поле hostname ядра (поле nodename структуры utsname). В контейнерах Windows это означает установку значения реестра hostname для ключа реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters на FQDN. Если у под нет FQDN, это не повлияет. По умолчанию false.
-
subdomain (строка)
Если указано, полное имя хоста Pod будет «<hostname>.<subdomain>.<пространство имен под>.svc.<домен кластера>». Если не указано, у под вообще не будет имени домена.
-
hostAliases ([]HostAlias)
Стратегия исправления: слияние по ключу
ipКарта: уникальные значения по ключу ip будут сохранены во время слияния
HostAliases — это необязательный список хостов и IP-адресов, которые будут внедрены в файл hosts под, если указаны.
HostAlias содержит сопоставление между IP-адресом и именами хостов, которое будет внедрено как запись в файл hosts под.
-
hostAliases.ip (строка), обязательно
IP-адрес записи в файле хостов.
-
hostAliases.hostnames ([]строка)
Атомарное: будет заменено во время слияния
Имена хостов для указанного выше IP-адреса.
-
-
dnsConfig (PodDNSConfig)
Указывает параметры DNS под. Указанные здесь параметры будут объединены с генерируемой конфигурацией DNS на основе DNSPolicy.
PodDNSConfig определяет параметры DNS под помимо тех, которые сгенерированы из DNSPolicy.
-
dnsConfig.nameservers ([]строка)
Атомарное: будет заменено во время слияния
Список IP-адресов DNS-серверов. Он будет добавлен к базовым DNS-серверам, сгенерированным из DNSPolicy. Дублированные DNS-серверы будут удалены.
-
dnsConfig.options ([]PodDNSConfigOption)
Атомарное: будет заменено во время слияния
Список опций DNS-резолвера. Они будут объединены с базовыми опциями, сгенерированными из DNSPolicy. Дублированные записи будут удалены. Параметры разрешения, заданные в Options, переопределят параметры, которые появляются в базовом DNSPolicy.
PodDNSConfigOption определяет параметры DNS-резолвера под.
-
dnsConfig.options.name (строка)
Обязательно.
dnsConfig.options.value (строка)
-
-
dnsConfig.searches ([]строка)
Атомарное: будет заменено во время слияния
Список DNS-доменов поиска для поиска имени хоста. Он будет добавлен к базовым путям поиска, сгенерированным из DNSPolicy. Дублированные пути поиска будут удалены.
-
-
dnsPolicy (строка)
Установите политику DNS для под. По умолчанию «ClusterFirst». Допустимые значения — 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' или 'None'. Параметры DNS, заданные в DNSConfig, будут объединены с политикой, выбранной с DNSPolicy. Для установки опций DNS вместе с hostNetwork необходимо явно указать политику DNS на 'ClusterFirstWithHostNet'.
Пространства имен хостов
-
hostNetwork (булево)
Запрошен хост-сетевой интерфейс для данного Pod. Используйте сетевое пространство имени хоста. Если эта опция установлена, порты, которые будут использоваться, должны быть указаны. По умолчанию false.
-
hostPID (булево)
Используйте пространство имен pid хоста. Необязательно: По умолчанию false.
-
hostIPC (булево)
Используйте пространство имен ipc хоста. Необязательно: По умолчанию false.
-
shareProcessNamespace (булево)
Поделите одно пространство имен процессов между всеми контейнерами в под. Когда это установлено, контейнеры смогут просматривать и посылать сигналы процессам из других контейнеров в том же под, и первому процессу в каждом контейнере не будет назначен PID 1. HostPID и ShareProcessNamespace нельзя устанавливать одновременно. Необязательно: По умолчанию false.
Учетная запись службы
-
serviceAccountName (строка)
ServiceAccountName — имя учетной записи службы, которое нужно использовать для запуска этого под. Дополнительная информация: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
-
automountServiceAccountToken (булево)
AutomountServiceAccountToken указывает, следует ли автоматически монтировать токен учетной записи службы.
Контекст безопасности
-
securityContext (PodSecurityContext)
SecurityContext содержит атрибуты безопасности на уровне под и общие настройки контейнеров. Необязательно: по умолчанию пусто. См. описание типа для значений по умолчанию каждого поля.
PodSecurityContext содержит атрибуты безопасности на уровне под и общие настройки контейнеров. Некоторые поля также присутствуют в container.securityContext. Значения полей container.securityContext имеют приоритет над значениями полей PodSecurityContext.
-
securityContext.appArmorProfile (AppArmorProfile)
appArmorProfile — это параметры AppArmor, которые должны использоваться контейнерами в этом под. Обратите внимание, что это поле не может быть установлено, когда spec.os.name равно windows.
AppArmorProfile определяет параметры AppArmor для под или контейнера.
-
securityContext.appArmorProfile.type (string), required
type указывает, какой вид профиля AppArmor будет применен. Допустимые варианты: Localhost — предварительно загруженный на узел профиль. RuntimeDefault — по умолчанию профиль контейнерного движка. Unconfined — без принудительного применения AppArmor.
-
securityContext.appArmorProfile.localhostProfile (string)
localhostProfile указывает профиль, загруженный на узле, который следует использовать. Профиль должен быть предварительно настроен на узле для работы. Должен совпадать с загруженным именем профиля. Должен быть установлен, если и только если type равен "Localhost".
-
-
securityContext.fsGroup (int64)
Специальная дополнительная группа, которая применяется ко всем контейнерам в под. Некоторые типы томов позволяют Kubelet изменять владение этим томом, чтобы он принадлежал под:
- Владеющий GID будет FSGroup 2. Флаг setgid установлен (новые файлы, созданные в томе, будут принадлежать FSGroup) 3. Разрешения объединяются с rw-rw----
Если не установлено, Kubelet не будет изменять владение и права доступа к любому тому. Обратите внимание, что это поле не может быть установлено, когда spec.os.name равно windows.
-
securityContext.fsGroupChangePolicy (string)
fsGroupChangePolicy определяет поведение изменения владения и прав доступа к томам перед экспонированием внутри под. Это поле будет применяться только к типам томов, которые поддерживают владение (и права доступа) на основе fsGroup. Оно не повлияет на временные типы томов, такие как: secret, configmaps и emptydir. Допустимые значения — "OnRootMismatch" и "Always". Если не указано, используется "Always". Обратите внимание, что это поле не может быть установлено, когда spec.os.name равно windows.
-
securityContext.runAsUser (int64)
UID для запуска точки входа процесса контейнера. По умолчанию используется пользователь, указанный в метаданных образа, если не указано иначе. Может также быть установлен в SecurityContext. Если установлен как в SecurityContext, так и в PodSecurityContext, значение, указанное в SecurityContext, имеет приоритет для данного контейнера. Обратите внимание, что это поле не может быть установлено, когда spec.os.name равно windows.
-
securityContext.runAsNonRoot (boolean)
Указывает, что контейнер должен запускаться как пользователь, не являющийся root. Если true, Kubelet проверит образ во время выполнения, чтобы убедиться, что он не запускается с UID 0 (root), и остановит запуск контейнера, если это произойдёт. Если не установлено или false, такая проверка не будет выполнена. Может также быть установлен в SecurityContext. Если установлен как в SecurityContext, так и в PodSecurityContext, значение, указанное в SecurityContext, имеет приоритет.
-
securityContext.runAsGroup (int64)
GID для запуска точки входа процесса контейнера. Используется значение по умолчанию runtime, если не указано. Может также быть установлен в SecurityContext. Если установлен как в SecurityContext, так и в PodSecurityContext, значение, указанное в SecurityContext, имеет приоритет для данного контейнера. Обратите внимание, что это поле не может быть установлено, когда spec.os.name равно windows.
-
securityContext.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. Должен быть установлен, если тип равен "Localhost". Не должен устанавливаться для других типов.
-
-
securityContext.seLinuxOptions (SELinuxOptions)
Контекст SELinux, который будет применён ко всем контейнерам. Если не указано, контейнерный движок выделит случайный контекст SELinux для каждого контейнера. Может также быть установлен в SecurityContext. Если установлен как в SecurityContext, так и в PodSecurityContext, значение, указанное в SecurityContext, имеет приоритет для данного контейнера. Обратите внимание, что это поле не может быть установлено, когда spec.os.name равно windows.
SELinuxOptions — метки, которые будут применены к контейнеру
-
securityContext.seLinuxOptions.level (string)
Level — метка уровня SELinux, которая применяется к контейнеру.
-
securityContext.seLinuxOptions.role (string)
Role — метка роли SELinux, которая применяется к контейнеру.
-
securityContext.seLinuxOptions.type (string)
Type — метка типа SELinux, которая применяется к контейнеру.
-
securityContext.seLinuxOptions.user (string)
User — метка пользователя SELinux, которая применяется к контейнеру.
-
-
securityContext.supplementalGroups ([]int64)
Атомарно: будет заменено при слиянии
Список групп, применяемых к первому процессу, запущенному в каждом контейнере, помимо основной GID и fsGroup контейнера (если указаны). Если функция SupplementalGroupsPolicy включена, поле supplementalGroupsPolicy определяет, добавляются ли эти группы дополнительно или вместо любых групповых членств, определённых в образе контейнера. Если не указано, дополнительные группы не добавляются, хотя групповые членства, определённые в образе контейнера, могут по-прежнему использоваться в зависимости от поля supplementalGroupsPolicy. Обратите внимание, что это поле не может быть установлено, когда spec.os.name равно windows.
-
securityContext.supplementalGroupsPolicy (string)
Определяет, как вычисляются дополнительные группы первых процессов контейнеров. Допустимые значения — "Merge" и "Strict". Если не указано, используется "Merge". (Альфа) Использование поля требует включения функции SupplementalGroupsPolicy и контейнерный движок должен реализовывать поддержку этой функции. Обратите внимание, что это поле не может быть установлено, когда spec.os.name равно windows.
-
securityContext.sysctls ([]Sysctl)
Атомарно: будет заменено при слиянии
Sysctls содержат список именсованных sysctls, используемых для под. Поды с неподдерживаемыми sysctl (контейнерным движком) могут не запуститься. Обратите внимание, что это поле не может быть установлено, когда spec.os.name равно windows.
Sysctl определяет параметр ядра, который необходимо установить
-
securityContext.sysctls.name (string), required
Имя свойства, которое необходимо установить
-
securityContext.sysctls.value (string), required
Значение свойства, которое необходимо установить
-
-
securityContext.windowsOptions (WindowsSecurityContextOptions)
Настройки, специфичные для Windows, применимые ко всем контейнерам. Если не указано, будут использоваться опции в SecurityContext контейнера. Если установлены как в SecurityContext, так и в PodSecurityContext, значение, указанное в SecurityContext, имеет приоритет. Обратите внимание, что это поле не может быть установлено, когда spec.os.name равно linux.
WindowsSecurityContextOptions содержат опции и учетные данные, специфичные для Windows.
-
securityContext.windowsOptions.gmsaCredentialSpec (string)
GMSACredentialSpec — это место, где веб-хук проверки подлинности GMSA (https://github.com/kubernetes-sigs/windows-gmsa) встраивает содержимое спецификации учетных данных GMSA, названной полем GMSACredentialSpecName.
-
securityContext.windowsOptions.gmsaCredentialSpecName (string)
GMSACredentialSpecName — имя спецификации учетных данных GMSA для использования.
-
securityContext.windowsOptions.hostProcess (boolean)
HostProcess определяет, должен ли контейнер запускаться как контейнер 'Host Process'. Все контейнеры под должны иметь одинаковое значение HostProcess (не допускается сочетание контейнеров HostProcess и не-HostProcess). Кроме того, если HostProcess равно true, то HostNetwork также должно быть установлено в true.
-
securityContext.windowsOptions.runAsUserName (string)
Имя пользователя в Windows для запуска точки входа процесса контейнера. По умолчанию используется пользователь, указанный в метаданных образа, если не указано иначе. Может также быть установлен в PodSecurityContext. Если установлен как в SecurityContext, так и в PodSecurityContext, значение, указанное в SecurityContext, имеет приоритет.
-
-
Уровень альфа
-
hostUsers (boolean)
Использовать пространство имён пользователей хоста. Необязательно: по умолчанию true. Если установлено в true или отсутствует, контейнер будет запущен в пространстве имён пользователей хоста, что полезно, когда контейнеру необходима функция, доступная только в пространстве имён пользователей хоста, например, загрузка модуля ядра с CAP_SYS_MODULE. Если установлено в false, для контейнера создаётся новое пространство имён пользователей. Установка в false полезна для смягчения уязвимостей нарушения границ контейнеров, даже позволяя пользователям запускать свои контейнеры как root, не имея на хосте привилегий root. Это поле находится на стадии alpha и поддерживается только серверами, включившими функцию UserNamespacesSupport.
-
resourceClaims ([]PodResourceClaim)
Стратегии патчинга: retainKeys, merge по ключу
nameКарта: уникальные значения по ключу name будут сохранены во время слияния
ResourceClaims определяют, какие ResourceClaims должны быть выделены и зарезервированы перед запуском Pod. Ресурсы будут доступны тем контейнерам, которые обращаются к ним по имени.
Это поле alpha-уровня и требует включения функции DynamicResourceAllocation.
Это поле неизменяемо.
*PodResourceClaim ссылается ровно на один ResourceClaim, либо напрямую, либо по имени ResourceClaimTemplate, который затем преобразуется в ResourceClaim для контейнера.
Он добавляет имя, которое однозначно идентифицирует ResourceClaim внутри Pod. Контейнеры, которые нуждаются в доступе к ResourceClaim, ссылаются на него по этому имени.*
-
resourceClaims.name (string), обязательное
Имя однозначно идентифицирует этот запрос на ресурс внутри контейнера. Это должно быть DNS_LABEL.
-
resourceClaims.resourceClaimName (string)
ResourceClaimName — имя объекта ResourceClaim в том же пространстве имён, что и этот контейнер.
Должно быть установлено ровно одно из ResourceClaimName и ResourceClaimTemplateName.
-
resourceClaims.resourceClaimTemplateName (string)
ResourceClaimTemplateName — имя объекта ResourceClaimTemplate в том же пространстве имён, что и этот контейнер.
Шаблон будет использован для создания нового ResourceClaim, который будет привязан к этому контейнеру. Когда этот контейнер удаляется, ResourceClaim также удаляется. Имя контейнера и имя ресурса, вместе с сгенерированным компонентом, будут использованы для формирования уникального имени ResourceClaim, которое будет записано в pod.status.resourceClaimStatuses.
Это поле неизменяемо, и никакие изменения в соответствующем ResourceClaim не будут внесены контрольной плоскостью после создания ResourceClaim.
Должно быть установлено ровно одно из ResourceClaimName и ResourceClaimTemplateName.
-
-
schedulingGates ([]PodSchedulingGate)
Стратегия патчинга: слияние по ключу
nameКарта: уникальные значения по ключу name будут сохранены во время слияния
SchedulingGates — это неявный список значений, которые, если указаны, заблокируют планирование контейнера. Если schedulingGates не пустой, контейнер останется в состоянии SchedulingGated, и планировщик не будет пытаться запланировать контейнер.
SchedulingGates могут быть установлены только при создании контейнера и удалены только после этого.
PodSchedulingGate ассоциируется с контейнером для защиты его планирования.
-
schedulingGates.name (string), обязательное
Имя планировочной заслонки. Каждая планировочная заслонка должна иметь уникальное имя поля.
-
Устаревшее
-
serviceAccount (string)
DeprecatedServiceAccount — устаревший псевдоним для ServiceAccountName. Устарело: используйте serviceAccountName вместо этого.
Контейнер
Один контейнер приложения, который вы хотите запустить внутри контейнера.
-
name (string), обязательное
Имя контейнера, указанное как 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)
Атомарно: будет заменено при слиянии
Массив точек входа. Не выполняется в оболочке. Изображение контейнера используется, если это не указано. Ссылки переменных $(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)
Атомарно: будет заменено при слиянии
Аргументы для точки входа. Изображение контейнера используется, если это не указано. Ссылки переменных $(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), обязательное
Номер порта для экспорта по 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Карта: уникальные значения по ключу name будут сохранены во время слияния
Список переменных окружения для установки в контейнере. Не может быть обновлен.
EnvVar представляет переменную окружения, присутствующую в контейнере.
-
env.name (строка), обязательно
Имя переменной окружения. Должно быть C_IDENTIFIER.
-
env.value (строка)
Ссылая на переменные $(VAR_NAME) расширяются с использованием ранее определенных переменных окружения в контейнере и любых переменных окружения сервиса. Если переменную нельзя разрешить, ссылка в строке входных данных останется неизменной. Двойные $$ заменяются на один $, что позволяет экранировать синтаксис $(VAR_NAME): например, "$$(VAR_NAME)" даст строковый литерал "$(VAR_NAME)". Экранированные ссылки никогда не будут расширены, независимо от того, существует ли переменная или нет. По умолчанию "".
-
env.valueFrom (EnvVarSource)
Источник значения переменной окружения. Не может быть использован, если значение не пустое.
EnvVarSource представляет источник значения EnvVar.
-
env.valueFrom.configMapKeyRef (ConfigMapKeySelector)
Выбирает ключ ConfigMap.
Выбирает ключ из ConfigMap.
-
env.valueFrom.configMapKeyRef.key (строка), обязательно
Ключ для выбора.
-
env.valueFrom.configMapKeyRef.name (строка)
Имя объекта-ссылочного. Это поле фактически необходимо, но из-за обратной совместимости допускается пустое значение. Примеры такого типа с пустым значением здесь почти наверняка неправильны. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
env.valueFrom.configMapKeyRef.optional (булево)
Укажите, должен ли быть определён ConfigMap или его ключ
-
-
env.valueFrom.fieldRef (ObjectFieldSelector)
Выбирает поле под: поддерживает metadata.name, metadata.namespace,
metadata.labels['\<KEY>'],metadata.annotations['\<KEY>'], spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. -
env.valueFrom.resourceFieldRef (ResourceFieldSelector)
Выбирает ресурс контейнера: в настоящее время поддерживаются только ресурсы limits и requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory и requests.ephemeral-storage).
-
env.valueFrom.secretKeyRef (SecretKeySelector)
Выбирает ключ секрета в пространстве имен под.
SecretKeySelector выбирает ключ секрета.
-
env.valueFrom.secretKeyRef.key (строка), обязательно
Ключ секрета для выбора. Должен быть допустимым ключом секрета.
-
env.valueFrom.secretKeyRef.name (строка)
Имя объекта-ссылочного. Это поле фактически необходимо, но из-за обратной совместимости допускается пустое значение. Примеры такого типа с пустым значением здесь почти наверняка неправильны. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
env.valueFrom.secretKeyRef.optional (булево)
Укажите, должен ли быть определен Secret или его ключ
-
-
-
envFrom ([]EnvFromSource)
Атомарно: будет заменено при слиянии
Список источников для заполнения переменных окружения в контейнере. Ключи, определённые в источнике, должны быть C_IDENTIFIER. Все неверные ключи будут сообщены как событие при запуске контейнера. Когда ключ существует в нескольких источниках, значение, связанное с последним источником, будет иметь приоритет. Значения, определённые в Env с дублирующим ключом, будут иметь приоритет. Не может быть обновлен.
EnvFromSource представляет источник набора ConfigMaps
-
envFrom.configMapRef (ConfigMapEnvSource)
ConfigMap для выбора.
*ConfigMapEnvSource выбирает ConfigMap для заполнения переменных окружения.
Содержание поля Data целевого ConfigMap будет представлять пары "ключ-значение" как переменные окружения.*
-
envFrom.configMapRef.name (строка)
Имя объекта-ссылочного. Это поле фактически необходимо, но из-за обратной совместимости допускается пустое значение. Примеры такого типа с пустым значением здесь почти наверняка неправильны. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
envFrom.configMapRef.optional (булево)
Укажите, должен ли быть определён ConfigMap
-
-
envFrom.prefix (строка)
Необязательный идентификатор для добавления в качестве префикса к каждому ключу в ConfigMap. Должен быть C_IDENTIFIER.
-
envFrom.secretRef (SecretEnvSource)
Секрет для выбора.
*SecretEnvSource выбирает Secret для заполнения переменных окружения.
Содержание поля Data целевого Secret будет представлять пары "ключ-значение" как переменные окружения.*
-
envFrom.secretRef.name (строка)
Имя объекта-ссылочного. Это поле фактически необходимо, но из-за обратной совместимости допускается пустое значение. Примеры такого типа с пустым значением здесь почти наверняка неправильны. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
envFrom.secretRef.optional (булево)
Укажите, должен ли быть определён Secret
-
-
Тома
-
volumeMounts ([]VolumeMount)
Стратегия патчинга: слияние по ключу
mountPathКарта: уникальные значения по ключу mountPath будут сохранены во время слияния
Тома Pod для монтирования в файловую систему контейнера. Не может быть обновлен.
VolumeMount описывает монтирование тома внутри контейнера.
-
volumeMounts.mountPath (строка), обязательно
Путь внутри контейнера, в котором должен быть смонтирован том. Не должен содержать ':'.
-
volumeMounts.name (строка), обязательно
Это должно совпадать с именем тома.
-
volumeMounts.mountPropagation (строка)
mountPropagation определяет, как монтирования распространяются от хоста к контейнеру и наоборот. Если не задано, используется MountPropagationNone. Это поле является бета-версией в 1.10. Если RecursiveReadOnly установлено в IfPossible или Enabled, MountPropagation должно быть None или не указано (что по умолчанию равно None).
-
volumeMounts.readOnly (булево)
Монтируется в режиме только для чтения, если true, в режиме чтения-записи в противном случае (false или не указано). По умолчанию false.
-
volumeMounts.recursiveReadOnly (строка)
RecursiveReadOnly указывает, должны ли монтирования только для чтения обрабатываться рекурсивно.
Если ReadOnly равно false, это поле не имеет смысла и должно быть не указано.
Если ReadOnly равно true, и это поле установлено в Disabled, монтирование не выполняется в режиме рекурсивного чтения-записи. Если это поле установлено в IfPossible, монтирование выполняется в режиме рекурсивного чтения-записи, если это поддерживается исполняемой средой контейнера. Если это поле установлено в Enabled, монтирование выполняется в режиме рекурсивного чтения-записи, если это поддерживается исполняемой средой контейнера, в противном случае под не будет запущен, и будет сгенерирована ошибка, указывающая причину.
Если это поле установлено в IfPossible или Enabled, MountPropagation должно быть установлено в None (или не указано, что по умолчанию равно None).
Если это поле не указано, оно обрабатывается как эквивалент Disabled.
-
volumeMounts.subPath (строка)
Путь в томе, из которого должен быть смонтирован том контейнера. По умолчанию "" (корень тома).
-
volumeMounts.subPathExpr (строка)
Расширенный путь в томе, из которого должен быть смонтирован том контейнера. Ведёт себя аналогично SubPath, но ссылки на переменные окружения $(VAR_NAME) расширяются с использованием окружения контейнера. По умолчанию "" (корень тома). SubPathExpr и SubPath взаимоисключают.
-
-
volumeDevices ([]VolumeDevice)
Стратегия патчинга: слияние по ключу
devicePathКарта: уникальные значения по ключу devicePath будут сохранены во время слияния
volumeDevices - это список блочных устройств, которые будут использоваться контейнером.
volumeDevice описывает сопоставление блочного устройства в контейнере.
-
volumeDevices.devicePath (строка), обязательно
devicePath - это путь внутри контейнера, к которому будет назначено устройство.
-
volumeDevices.name (строка), обязательно
name должно совпадать с именем persistentVolumeClaim в под
-
Ресурсы
-
-
ресурсы (ResourceRequirements)
Вычислительные ресурсы, необходимые для этого контейнера. Не может быть обновлено. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
ResourceRequirements описывает требования к вычислительным ресурсам.
-
ресурсы.требования ([]ResourceClaim)
Карта: уникальные значения в ключе name будут сохранены во время слияния
Список требований к ресурсам, определенным в spec.resourceClaims, которые используются этим контейнером.
Это поле alpha и требует активации функции DynamicResourceAllocation.
Это поле неизменяемо. Его можно устанавливать только для контейнеров.
ResourceClaim ссылается на одну запись в PodSpec.ResourceClaims.
-
ресурсы.требования.имя (строка), необходимо
Имя должно соответствовать имени одной записи в pod.spec.resourceClaims под, где используется это поле. Это делает этот ресурс доступным внутри контейнера.
-
ресурсы.требования.запрос (строка)
Запрос — это выбранное имя запроса в ссылке. Если пусто, то все из требования доступно, иначе только результат этого запроса.
-
-
ресурсы.пределы (map[string]Quantity)
Пределы описывают максимальное количество вычислительных ресурсов, разрешенных. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
-
ресурсы.запросы (map[string]Quantity)
Запросы описывают минимальное количество вычислительных ресурсов, необходимых. Если запросы не указаны для контейнера, они по умолчанию равны пределам, если это явно указано, иначе — определенное реализацией значение. Запросы не могут превышать пределы. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
-
-
политика изменения размера ([]ContainerResizePolicy)
Атомарно: будет заменено при слиянии
Политика изменения размера ресурсов для контейнера.
ContainerResizePolicy представляет политику изменения размера ресурсов для контейнера.
-
политика изменения размера.имя_ресурса (строка), необходимо
Имя ресурса, к которому применяется эта политика изменения размера ресурса. Поддерживаемые значения: cpu, memory.
-
политика изменения размера.политика_перезапуска (строка), необходимо
Политика перезапуска, применяемая при изменении размера указанного ресурса. Если не указано, по умолчанию используется NotRequired.
-
Жизненный цикл
-
жизненный_цикл (Lifecycle)
Действия, которые система управления должна предпринять в ответ на события жизненного цикла контейнера. Не может быть обновлено.
Lifecycle описывает действия, которые система управления должна предпринять в ответ на события жизненного цикла контейнера. Для обработчиков жизненного цикла PostStart и PreStop управление контейнером блокируется до завершения действия, если процесс контейнера завершается неудачно, обработчик прерывается.
-
жизненный_цикл.postStart (LifecycleHandler)
PostStart вызывается сразу после создания контейнера. Если обработчик завершился неудачно, контейнер завершается и перезапускается в соответствии с его политикой перезапуска. Другое управление контейнером блокируется до завершения хука. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
-
жизненный_цикл.preStop (LifecycleHandler)
PreStop вызывается непосредственно перед завершением контейнера из-за запроса API или события управления, такого как сбой зондирования готовности/запуска, преемственность, конкуренция ресурсов и т. д. Обработчик не вызывается, если контейнер завершается аварийно или завершается. Отсчет периода завершения Pod начинается до выполнения хука PreStop. Независимо от результата выполнения обработчика, контейнер в конечном итоге завершится в течение периода завершения Pod (если не задерживается финализаторами). Другое управление контейнером блокируется до завершения хука или достижения периода завершения. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
-
-
путь_сообщения_о_завершении (строка)
Необязательно: Путь, в который файл с сообщением о завершении контейнера будет смонтирован в файловой системе контейнера. Записанное сообщение предназначено для краткого финального состояния, например, сообщения об ошибке проверки. Будет усечено узлом, если превышает 4096 байт. Общая длина сообщения во всех контейнерах будет ограничена 12 Кб. По умолчанию /dev/termination-log. Не может быть обновлено.
-
политика_сообщения_о_завершении (строка)
Указывает, как должно быть заполнено сообщение о завершении. Файл будет использовать содержимое terminationMessagePath для заполнения сообщения состояния контейнера при успешном и неудачном завершении. FallbackToLogsOnError будет использовать последний фрагмент вывода логов контейнера, если файл сообщения о завершении пуст, и контейнер завершился с ошибкой. Вывод логов ограничен 2048 байтами или 80 строками, что меньше. По умолчанию File. Не может быть обновлено.
-
проверка_готовности (Probe)
Периодическое зондирование готовности контейнера. Контейнер будет удален из конечных точек сервиса, если зондирование завершится неудачно. Не может быть обновлено. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
-
старт_зондирование (Probe)
StartupProbe указывает, что Pod успешно инициализирован. Если указано, никакие другие зондирования не выполняются, пока это не завершится успешно. Если зондирование завершается неудачно, Pod будет перезапущен, как если бы завершилось неудачно livenessProbe. Это можно использовать для предоставления различных параметров зондирования в начале жизненного цикла Pod, когда может потребоваться много времени для загрузки данных или прогрева кэша, чем во время стабильной работы. Это не может быть обновлено. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
-
политика_перезапуска (строка)
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.allowPrivilegeEscalation (boolean)
AllowPrivilegeEscalation управляет возможностью процесса получить больше привилегий, чем у родительского процесса. Этот булевый параметр напрямую контролирует, будет ли установлен флаг no_new_privs для процесса контейнера. AllowPrivilegeEscalation всегда имеет значение true, когда контейнер: 1) запущен с привилегиями (Privileged) 2) имеет CAP_SYS_ADMIN. Обратите внимание, что это поле не может быть установлено, когда spec.os.name — windows.
-
securityContext.appArmorProfile (AppArmorProfile)
appArmorProfile — это параметры AppArmor, которые необходимо использовать для этого контейнера. Если задано, этот профиль переопределяет профиль appArmorProfile под. Обратите внимание, что это поле не может быть установлено, когда spec.os.name — windows.
AppArmorProfile определяет настройки AppArmor для под или контейнера.
-
securityContext.appArmorProfile.type (string), required
type указывает, какой тип профиля AppArmor будет применяться. Допустимые значения: Localhost — профиль, предварительно загруженный на узел. RuntimeDefault — профиль по умолчанию для среды выполнения контейнера. Unconfined — без принудительного применения AppArmor.
-
securityContext.appArmorProfile.localhostProfile (string)
localhostProfile указывает профиль, загруженный на узел, который должен быть использован. Профиль должен быть предварительно настроен на узле для работы. Должен совпадать с загруженным именем профиля. Должен быть установлен, и только если type — "Localhost".
-
-
securityContext.capabilities (Capabilities)
Привилегии (capabilities) для добавления/удаления при запуске контейнеров. По умолчанию используется набор привилегий, предоставляемых средой выполнения контейнера. Обратите внимание, что это поле не может быть установлено, когда spec.os.name — windows.
Добавляет и удаляет POSIX-привилегии из работающих контейнеров.
-
securityContext.capabilities.add ([]string)
Атомарно: будет заменено во время слияния
Добавленные привилегии
-
securityContext.capabilities.drop ([]string)
Атомарно: будет заменено во время слияния
Удаленные привилегии
-
-
securityContext.procMount (string)
procMount определяет тип монтирования proc для контейнеров. Значение по умолчанию — Default, которое использует значения по умолчанию среды выполнения контейнера для чтения/записи путей и замаскированных путей. Для этого требуется включить признак ProcMountType. Обратите внимание, что это поле не может быть установлено, когда spec.os.name — windows.
-
securityContext.privileged (boolean)
Запуск контейнера в режиме с привилегиями. Процессы в привилегированных контейнерах по сути эквивалентны root на хосте. По умолчанию false. Обратите внимание, что это поле не может быть установлено, когда spec.os.name — windows.
-
securityContext.readOnlyRootFilesystem (boolean)
Указывает, имеет ли этот контейнер корневую файловую систему только для чтения. По умолчанию false. Обратите внимание, что это поле не может быть установлено, когда spec.os.name — windows.
-
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.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.seccompProfile (SeccompProfile)
Параметры seccomp, которые необходимо использовать для этого контейнера. Если параметры seccomp заданы как на уровне под, так и на уровне контейнера, параметры контейнера переопределяют параметры под. Обратите внимание, что это поле не может быть установлено, когда spec.os.name — windows.
SeccompProfile определяет настройки профиля seccomp для под/контейнера. Может быть установлен только один источник профиля.
-
securityContext.seccompProfile.type (string), required
type указывает, какой тип профиля seccomp будет применен. Допустимые значения:
Localhost — использовать профиль, определенный в файле на узле. RuntimeDefault — использовать профиль по умолчанию среды выполнения контейнера. Unconfined — не применять профиль.
-
securityContext.seccompProfile.localhostProfile (string)
localhostProfile указывает, что должен использоваться профиль, определенный в файле на узле. Профиль должен быть предварительно настроен на узле для работы. Должен быть нисходящим путем, относительным к настроенному местоположению профиля seccomp kubelet. Должен быть установлен, если type — "Localhost". НЕ должен быть установлен для других типов.
-
-
securityContext.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 (строка)
Имя контейнерного образа. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images
-
imagePullPolicy (строка)
Политика получения образа. Одно из значений: 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 (строка)
Рабочая директория контейнера. Если не указано, будет использоваться значение по умолчанию контейнерного времени выполнения, которое может быть настроено в контейнерном образе. Не может быть обновлено.
Переменные среды
-
env ([]EnvVar)
Стратегия исправления: слияние по ключу
nameКарта: уникальные значения по ключу name будут сохранены при слиянии
Список переменных среды, которые необходимо установить в контейнере. Не может быть обновлено.
EnvVar представляет переменную среды, присутствующую в контейнере.
-
env.name (строка), обязательно
Имя переменной среды. Должно быть C_IDENTIFIER.
-
env.value (строка)
Ссылки на переменные $(VAR_NAME) расширяются с использованием ранее определённых переменных среды в контейнере и любых переменных среды сервиса. Если переменная не может быть разрешена, ссылка в входной строке останется неизменной. Двойные $$ сокращаются до одного $, что позволяет экранировать синтаксис $(VAR_NAME): т.е. "$$(VAR_NAME)" даст строковый литерал "$(VAR_NAME)". Экранированные ссылки никогда не будут расширены, независимо от того, существует переменная или нет. По умолчанию "".
-
env.valueFrom (EnvVarSource)
Источник значения переменной среды. Не может быть использовано, если значение не пустое.
EnvVarSource представляет источник значения EnvVar.
-
env.valueFrom.configMapKeyRef (ConfigMapKeySelector)
Выбирает ключ из ConfigMap.
Выбирает ключ из ConfigMap.
-
env.valueFrom.configMapKeyRef.key (строка), обязательно
Ключ для выбора.
-
env.valueFrom.configMapKeyRef.name (строка)
Имя объекта-ссылочного. Этот параметр фактически необходим, но из-за обратной совместимости допускается пустым. Примеры данного типа с пустым значением здесь, почти наверняка, неправильные. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
env.valueFrom.configMapKeyRef.optional (булево)
Указывает, должен ли быть определён ConfigMap или его ключ.
-
-
env.valueFrom.fieldRef (ObjectFieldSelector)
Выбирает поле под: поддерживает metadata.name, metadata.namespace,
metadata.labels['\<KEY>'],metadata.annotations['\<KEY>'], spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. -
env.valueFrom.resourceFieldRef (ResourceFieldSelector)
Выбирает ресурс контейнера: в настоящее время поддерживаются только лимиты и запросы ресурсов (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory и requests.ephemeral-storage).
-
env.valueFrom.secretKeyRef (SecretKeySelector)
Выбирает ключ секрета в пространстве имён под.
SecretKeySelector выбирает ключ секрета.
-
env.valueFrom.secretKeyRef.key (строка), обязательно
Ключ секрета для выбора. Должен быть валидным ключом секрета.
-
env.valueFrom.secretKeyRef.name (строка)
Имя объекта-ссылочного. Этот параметр фактически необходим, но из-за обратной совместимости допускается пустым. Примеры данного типа с пустым значением здесь, почти наверняка, неправильные. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
env.valueFrom.secretKeyRef.optional (булево)
Указывает, должен ли быть определён Secret или его ключ.
-
-
-
-
envFrom ([]EnvFromSource)
Атомарно: будет заменено при слиянии
Список источников для заполнения переменных среды в контейнере. Ключи, определённые в источнике, должны быть C_IDENTIFIER. Все недопустимые ключи будут сообщены как событие при запуске контейнера. Если ключ существует в нескольких источниках, значение, связанное с последним источником, будет иметь приоритет. Значения, определённые с помощью Env с дублирующимся ключом, будут иметь приоритет. Не может быть обновлено.
EnvFromSource представляет источник набора ConfigMaps
-
envFrom.configMapRef (ConfigMapEnvSource)
Выбираемый ConfigMap
*ConfigMapEnvSource выбирает ConfigMap для заполнения переменных среды.
Содержимое поля Data целевого ConfigMap будет представлять пары ключ-значение как переменные среды.*
-
envFrom.configMapRef.name (строка)
Имя объекта-ссылочного. Этот параметр фактически необходим, но из-за обратной совместимости допускается пустым. Примеры данного типа с пустым значением здесь, почти наверняка, неправильные. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
envFrom.configMapRef.optional (булево)
Указывает, должен ли быть определён ConfigMap.
-
-
envFrom.prefix (строка)
Необязательный идентификатор, который добавляется в префикс каждого ключа в ConfigMap. Должен быть C_IDENTIFIER.
-
envFrom.secretRef (SecretEnvSource)
Выбираемый Secret
*SecretEnvSource выбирает Secret для заполнения переменных среды.
Содержимое поля Data целевого Secret будет представлять пары ключ-значение как переменные среды.*
-
envFrom.secretRef.name (строка)
Имя объекта-ссылочного. Этот параметр фактически необходим, но из-за обратной совместимости допускается пустым. Примеры данного типа с пустым значением здесь, почти наверняка, неправильные. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
-
envFrom.secretRef.optional (булево)
Указывает, должен ли быть определён Secret.
-
-
Тома
-
volumeMounts ([]VolumeMount)
Стратегия патчинга: слияние по ключу
mountPathКарта: уникальные значения по ключу mountPath будут сохранены во время слияния
Тома под контейнер, которые необходимо смонтировать в файловую систему контейнера. Подмонтирование по пути не разрешено для временных контейнеров. Не может быть обновлено.
VolumeMount описывает монтирование тома в контейнер.
-
volumeMounts.mountPath (строка), обязательно
Путь внутри контейнера, в который должен быть смонтирован том. Не должен содержать ':'.
-
volumeMounts.name (строка), обязательно
Это должно совпадать с именем тома.
-
volumeMounts.mountPropagation (строка)
mountPropagation определяет, как монтирования распространяются с хоста в контейнер и наоборот. Если не задано, используется MountPropagationNone. Это поле находится в стадии бета-тестирования в версии 1.10. При установке RecursiveReadOnly в IfPossible или Enabled, MountPropagation должно быть None или не указано (по умолчанию None).
-
volumeMounts.readOnly (булево)
Монтировать только для чтения, если true, в противном случае (false или не указано). По умолчанию false.
-
volumeMounts.recursiveReadOnly (строка)
RecursiveReadOnly указывает, должны ли монтирования только для чтения обрабатываться рекурсивно.
Если ReadOnly равно false, это поле не имеет значения и должно быть не указано.
Если ReadOnly равно true, и это поле установлено в Disabled, монтирование не делается рекурсивно только для чтения. Если это поле установлено в IfPossible, монтирование делается рекурсивно только для чтения, если это поддерживается контейнерной средой выполнения. Если это поле установлено в Enabled, монтирование делается рекурсивно только для чтения, если это поддерживается контейнерной средой выполнения, в противном случае контейнер не будет запущен, и будет сгенерирована ошибка, указывающая причину.
Если это поле установлено в IfPossible или Enabled, MountPropagation должно быть установлено в None (или не указано, что по умолчанию равно None).
Если это поле не указано, оно обрабатывается как эквивалент Disabled.
-
volumeMounts.subPath (строка)
Путь внутри тома, с которого контейнеру следует смонтировать том. По умолчанию "" (корень тома).
-
volumeMounts.subPathExpr (строка)
Расширенный путь внутри тома, с которого контейнеру следует смонтировать том. Ведёт себя аналогично SubPath, но ссылки на переменные среды $(VAR_NAME) расширяются с использованием среды контейнера. По умолчанию "" (корень тома). SubPathExpr и SubPath взаимоисключают друг друга.
-
-
volumeDevices ([]VolumeDevice)
Стратегия патчинга: слияние по ключу
devicePathКарта: уникальные значения по ключу devicePath будут сохранены во время слияния
volumeDevices — это список блочных устройств, которые будут использоваться контейнером.
volumeDevice описывает отображение блочного устройства в контейнере.
-
volumeDevices.devicePath (строка), обязательно
devicePath — это путь внутри контейнера, к которому будет подключено устройство.
-
volumeDevices.name (строка), обязательно
имя должно совпадать с именем persistentVolumeClaim в под контейнере
-
Ресурсы
-
resizePolicy ([]ContainerResizePolicy)
Атомарно: будет заменено во время слияния
Политика изменения размеров ресурсов для контейнера.
ContainerResizePolicy представляет политику изменения размера ресурсов контейнера.
-
resizePolicy.resourceName (строка), обязательно
Имя ресурса, к которому применяется данная политика изменения размера. Поддерживаемые значения: cpu, memory.
-
resizePolicy.restartPolicy (строка), обязательно
Политика перезапуска, применяемая при изменении размера указанного ресурса. Если не указана, по умолчанию используется 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.allowPrivilegeEscalation (boolean)
AllowPrivilegeEscalation управляет возможностью процесса получить больше привилегий, чем у родительского процесса. Этот булев параметр напрямую контролирует установку флага no_new_privs для процесса контейнера. AllowPrivilegeEscalation всегда истинно, когда контейнер: 1) запущен как Privileged 2) имеет CAP_SYS_ADMIN Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.
-
securityContext.appArmorProfile (AppArmorProfile)
appArmorProfile — это параметры AppArmor для использования этим контейнером. Если задано, этот профиль переопределяет appArmorProfile под. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.
AppArmorProfile определяет настройки AppArmor для под или контейнера.
-
securityContext.appArmorProfile.type (string), обязательное поле
type указывает, какой тип профиля AppArmor будет применен. Допустимые варианты: Localhost — профиль, предварительно загруженный на узел. RuntimeDefault — профили по умолчанию контейнерного времени выполнения. Unconfined — применение AppArmor отключено.
-
securityContext.appArmorProfile.localhostProfile (string)
localhostProfile указывает профиль, загруженный на узел, который должен использоваться. Профиль должен быть предварительно настроен на узле для работы. Должен совпадать с загруженным именем профиля. Должно быть установлено тогда и только тогда, когда тип равен "Localhost".
-
-
securityContext.capabilities (Capabilities)
Возможности для добавления/удаления при запуске контейнеров. По умолчанию используются стандартные возможности, предоставляемые контейнерным временем выполнения. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.
Добавляет и удаляет POSIX-возможности из работающих контейнеров.
-
securityContext.capabilities.add ([]string)
Атомарно: будет заменено во время слияния
Добавленные возможности
-
securityContext.capabilities.drop ([]string)
Атомарно: будет заменено во время слияния
Удаленные возможности
-
-
securityContext.procMount (string)
procMount определяет тип монтирования proc для контейнеров. Значение по умолчанию — Default, которое использует значения по умолчанию для контейнерного времени выполнения для путей для чтения и замаскированных путей. Требуется включенный флаг ProcMountType. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.
-
securityContext.privileged (boolean)
Запустить контейнер в режиме привилегий. Процессы в привилегированных контейнерах по существу эквивалентны root на хосте. Значение по умолчанию — false. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.
-
securityContext.readOnlyRootFilesystem (boolean)
Указывает, имеет ли этот контейнер чтение-только корневую файловую систему. Значение по умолчанию — false. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.
-
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.seLinuxOptions (SELinuxOptions)
Контекст SELinux, который должен быть применен к контейнеру. Если не указано, контейнерное время выполнения выделит случайный контекст SELinux для каждого контейнера. Может также быть задан в PodSecurityContext. Если задан как в SecurityContext, так и в PodSecurityContext, значение из SecurityContext имеет приоритет. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.
SELinuxOptions — метки, которые должны быть применены к контейнеру
-
securityContext.seLinuxOptions.level (string)
Level — метка уровня SELinux, которая применяется к контейнеру.
-
securityContext.seLinuxOptions.role (string)
Role — метка роли SELinux, которая применяется к контейнеру.
-
securityContext.seLinuxOptions.type (string)
Type — метка типа SELinux, которая применяется к контейнеру.
-
securityContext.seLinuxOptions.user (string)
User — метка пользователя SELinux, которая применяется к контейнеру.
-
-
securityContext.seccompProfile (SeccompProfile)
Параметры seccomp для использования этим контейнером. Если параметры seccomp заданы как на уровне под, так и на уровне контейнера, параметры контейнера переопределяют параметры под. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — windows.
SeccompProfile определяет настройки профиля seccomp для под/контейнера. Может быть задан только один источник профиля.
-
securityContext.seccompProfile.type (string), обязательное поле
type указывает, какой тип профиля seccomp будет применен. Допустимые варианты:
Localhost — должен использоваться профиль, определённый в файле на узле. RuntimeDefault — должен использоваться профиль по умолчанию контейнерного времени выполнения. Unconfined — профиль не должен применяться.
-
securityContext.seccompProfile.localhostProfile (string)
localhostProfile указывает, что должен использоваться профиль, определённый в файле на узле. Профиль должен быть предварительно настроен на узле для работы. Должен быть нисходящим путём, относительным к местоположению профиля seccomp, настроенному в kubelet. Должен быть задан, если тип равен "Localhost". Не должен быть задан для других типов.
-
-
securityContext.windowsOptions (WindowsSecurityContextOptions)
Настройки, специфичные для Windows, применяемые ко всем контейнерам. Если не указано, будут использованы параметры из PodSecurityContext. Если заданы как в SecurityContext, так и в PodSecurityContext, значение из SecurityContext имеет приоритет. Обратите внимание, что это поле нельзя задавать, когда spec.os.name — linux.
WindowsSecurityContextOptions содержат параметры и учётные данные, специфичные для Windows.
-
securityContext.windowsOptions.gmsaCredentialSpec (string)
GMSACredentialSpec — место, где веб-хук GMSA (https://github.com/kubernetes-sigs/windows-gmsa) вставляет содержимое спецификации учётных данных GMSA, указанное в поле GMSACredentialSpecName.
-
securityContext.windowsOptions.gmsaCredentialSpecName (string)
GMSACredentialSpecName — имя используемой спецификации учётных данных GMSA.
-
securityContext.windowsOptions.hostProcess (boolean)
HostProcess определяет, должен ли контейнер выполняться как контейнер "Host Process". Все контейнеры в Pod должны иметь одинаковое значение HostProcess (не допускается сочетание контейнеров HostProcess и не-HostProcess). Кроме того, если HostProcess имеет значение true, то HostNetwork также должно иметь значение true.
-
securityContext.windowsOptions.runAsUserName (string)
Имя пользователя в Windows для запуска точки входа процесса контейнера. По умолчанию используется пользователь, указанный в метаданных изображения, если не указан. Может также быть задан в PodSecurityContext. Если задан как в SecurityContext, так и в PodSecurityContext, значение из SecurityContext имеет приоритет.
-
-
Не разрешено
-
ports ([]ContainerPort)
Стратегия изменения: слияние по ключу
containerPortКарта: уникальные значения по ключам
containerPort, protocolбудут сохранены при слиянииПорты запрещены для контейнеров с коротким сроком службы.
ContainerPort представляет сетевой порт в одном контейнере.
-
ports.containerPort (int32), обязательно
Номер порта для экспонирования на IP-адресе под. Это должен быть действительный номер порта, 0 < x < 65536.
-
ports.hostIP (string)
IP-адрес хоста для привязки внешнего порта.
-
ports.hostPort (int32)
Номер порта для экспонирования на хосте. Если указано, это должен быть действительный номер порта, 0 < x < 65536. Если указан HostNetwork, это значение должно совпадать с ContainerPort. Большинству контейнеров это не нужно.
-
ports.name (string)
Если указано, это должно быть значение IANA_SVC_NAME и уникальным внутри под. Каждый именованный порт в под должен иметь уникальное имя. Имя порта, к которому можно обратиться с помощью служб.
-
ports.protocol (string)
Протокол для порта. Должен быть UDP, TCP или SCTP. По умолчанию "TCP".
-
-
resources (ResourceRequirements)
Ресурсы запрещены для контейнеров с коротким сроком службы. Контейнеры с коротким сроком службы используют свободные ресурсы, уже выделенные под.
ResourceRequirements описывает требования к вычислительным ресурсам.
-
resources.claims ([]ResourceClaim)
Карта: уникальные значения по ключу name будут сохранены при слиянии
Список имен ресурсов, определенных в spec.resourceClaims, используемых этим контейнером.
Это экспериментальное поле и требует включения функции DynamicResourceAllocation.
Это неизменяемое поле. Его можно задать только для контейнеров.
ResourceClaim ссылается на одну запись в PodSpec.ResourceClaims.
-
resources.claims.name (string), обязательно
Имя должно совпадать с именем одной записи в pod.spec.resourceClaims под, где используется это поле. Это делает ресурс доступным внутри контейнера.
-
resources.claims.request (string)
Request — имя, выбранное для запроса в связанном claim. Если пустое, то всё из claim становится доступным, иначе доступен только результат этого запроса.
-
-
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)
Атомарно: будет заменено при слиянии
Команда для выполнения в контейнере, рабочая директория для команды — корень ('/') в файловой системе контейнера. Команда просто выполняется, она не выполняется в оболочке, поэтому традиционные инструкции оболочки ('|', и т. д.) не сработают. Для использования оболочки необходимо явно вызвать эту оболочку. Код выхода 0 интерпретируется как активный/здоровый, а ненулевой — как нездоровый.
-
-
httpGet (HTTPGetAction)
HTTPGet определяет http-запрос для выполнения.
HTTPGetAction описывает действие, основанное на HTTP-запросах GET.
-
httpGet.port (IntOrString), обязательно
Имя или номер порта для доступа в контейнере. Номер должен быть в диапазоне от 1 до 65535. Имя должно быть IANA_SVC_NAME.
IntOrString — тип, который может содержать int32 или строку. При сериализации и десериализации JSON или YAML он генерирует или потребляет внутренний тип. Это позволяет, например, иметь поле JSON, которое может принимать имя или число.
-
httpGet.host (string)
Имя хоста для подключения, по умолчанию IP-адрес под. Вероятно, следует установить «Host» в httpHeaders вместо этого.
-
httpGet.httpHeaders ([]HTTPHeader)
Атомарно: будет заменено при слиянии
Настраиваемые заголовки для установки в запросе. HTTP допускает повторяющиеся заголовки.
HTTPHeader описывает настраиваемый заголовок, используемый в HTTP-пробах
-
httpGet.httpHeaders.name (string), обязательно
Имя поля заголовка. При выводе оно будет канонизировано, поэтому имена с разными регистрами будут восприниматься как один и тот же заголовок.
-
httpGet.httpHeaders.value (string), обязательно
Значение поля заголовка
-
-
httpGet.path (string)
Путь для доступа к HTTP-серверу.
-
httpGet.scheme (string)
Схема для подключения к хосту. По умолчанию HTTP.
-
-
sleep (SleepAction)
Sleep представляет собой продолжительность, в течение которой контейнер должен находиться в режиме ожидания перед завершением.
SleepAction описывает действие «ожидание».
-
sleep.seconds (int64), обязательно
Seconds — количество секунд, которое нужно подождать.
-
-
tcpSocket (TCPSocketAction)
Устарело. TCPSocket НЕ поддерживается как LifecycleHandler и сохраняется для обратной совместимости. Нет проверки этого поля, и обработчики жизненного цикла завершатся сбоем во время выполнения, если указан обработчик tcp.
TCPSocketAction описывает действие, основанное на открытии сокета
-
tcpSocket.port (IntOrString), обязательно
Номер или имя порта для доступа в контейнере. Номер должен быть в диапазоне от 1 до 65535. Имя должно быть IANA_SVC_NAME.
IntOrString — тип, который может содержать int32 или строку. При сериализации и десериализации JSON или YAML он генерирует или потребляет внутренний тип. Это позволяет, например, иметь поле JSON, которое может принимать имя или число.
-
tcpSocket.host (string)
Необязательно: Имя хоста для подключения, по умолчанию IP-адрес под.
-
NodeAffinity
Node affinity — это группа правил планирования affinity для узла.
-
preferredDuringSchedulingIgnoredDuringExecution ([]PreferredSchedulingTerm)
Atomic: will be replaced during a merge
Планировщик будет отдавать предпочтение планированию под задач на узлах, удовлетворяющих выражениям сродства, указанным в этом поле, но может выбрать узел, нарушающий одно или несколько выражений. Узел, который предпочитается больше всего, — это узел с наибольшей суммой весов, то есть для каждого узла, удовлетворяющего всем требованиям планирования (запрос ресурсов, требования сродства requiredDuringScheduling и т. д.), вычисляется сумма, итерируя элементы этого поля и добавляя «вес» к сумме, если узел соответствует соответствующим matchExpressions; узлы с наибольшей суммой имеют наибольший приоритет.
Пустое выражение preferred scheduling term соответствует всем объектам с неявным весом 0 (т. е. это бесполезно). Нулевое выражение preferred scheduling term не соответствует никаким объектам (т. е. также бесполезно).
-
preferredDuringSchedulingIgnoredDuringExecution.preference (NodeSelectorTerm), required
Термин селектора узла, связанный с соответствующим весом.
Нулевой или пустой термин селектора узла не соответствует никаким объектам. Требования к ним объединены по «И». Тип TopologySelectorTerm реализует подмножество NodeSelectorTerm.
-
preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions ([]NodeSelectorRequirement)
Atomic: will be replaced during a merge
Список требований селектора узла по меткам узла.
-
preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields ([]NodeSelectorRequirement)
Atomic: will be replaced during a merge
Список требований селектора узла по полям узла.
-
-
preferredDuringSchedulingIgnoredDuringExecution.weight (int32), required
Вес, связанный с соответствием соответствующему термин селектора узла, в диапазоне от 1 до 100.
-
-
requiredDuringSchedulingIgnoredDuringExecution (NodeSelector)
Если требования сродства, указанные в этом поле, не выполнены во время планирования, подзадача не будет запланирована на узел. Если требования сродства, указанные в этом поле, перестанут выполняться в какой-то момент во время выполнения подзадачи (например, из-за обновления), система может или не может попытаться в конечном итоге удалить подзадачу с её узла.
Селектор узла представляет собой объединение результатов одного или нескольких запросов по меткам на наборе узлов; то есть, он представляет собой логическое «ИЛИ» селекторов, представленных терминами селектора узла.
-
requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms ([]NodeSelectorTerm), required
Atomic: will be replaced during a merge
Обязательный. Список терминов селектора узла. Термы объединены по «ИЛИ».
Нулевой или пустой термин селектора узла не соответствует никаким объектам. Требования к ним объединены по «И». Тип TopologySelectorTerm реализует подмножество NodeSelectorTerm.
-
requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions ([]NodeSelectorRequirement)
Atomic: will be replaced during a merge
Список требований селектора узла по меткам узла.
-
requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields ([]NodeSelectorRequirement)
Atomic: will be replaced during a merge
Список требований селектора узла по полям узла.
-
-
PodAffinity
Pod affinity — это группа правил планирования сродства между подзадачами.
-
preferredDuringSchedulingIgnoredDuringExecution ([]WeightedPodAffinityTerm)
Атомарно: будет заменено во время слияния
Планировщик будет отдавать предпочтение планированию Pods на узлах, удовлетворяющих выражениям affinity, указанным в этом поле, но может выбрать узел, нарушающий одно или несколько выражений. Узел, который предпочтительнее всего, — это узел с наибольшей суммой весов, т. е. для каждого узла, удовлетворяющего всем требованиям планирования (запросы ресурсов, requiredDuringScheduling affinity expressions и т. д.), вычислите сумму, пройдя по элементам этого поля и добавив «вес» к сумме, если узел содержит Pods, которые соответствуют соответствующему podAffinityTerm; узлы(ы) с наибольшей суммой являются наиболее предпочтительными.
Веса всех сопоставленных полей WeightedPodAffinityTerm добавляются на узел для поиска наиболее предпочтительного узла(ов)
-
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm (PodAffinityTerm), требуется
Требуется. Термин affinity для Pod, связанный с соответствующим весом.
Определяет набор Pods (в частности, тех, которые соответствуют labelSelector относительно заданного(ых) namespace(ов)), с которыми этот Pod должен быть расположен вместе (affinity) или не расположен вместе (anti-affinity). При этом расположенными вместе считаются Pods, запущенные на узле, значение метки с ключом
которого совпадает со значением метки любого узла, на котором запущен Pod из набора Pods. -
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey (строка), требуется
Этот Pod должен быть расположен вместе (affinity) или не расположен вместе (anti-affinity) с Pods, соответствующими labelSelector в указанных namespace(ах), где расположенными вместе считаются Pods, запущенные на узле, значение метки с ключом topologyKey которого совпадает со значением метки любого узла, на котором запущен любой из выбранных Pods. Пустой topologyKey не допускается.
-
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector (LabelSelector)
Запрос меток к набору ресурсов, в данном случае к Pods. Если он равен null, этот PodAffinityTerm не соответствует ни одному Pod.
-
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.matchLabelKeys ([]строка)
Атомарно: будет заменено во время слияния
MatchLabelKeys — это набор ключей меток Pod, выбирающих, какие Pods будут рассмотрены. Ключи используются для поиска значений из меток входящего Pod, эти метки ключи-значения объединяются с
labelSelectorкакkey in (value)для выбора группы существующих Pods, которые будут рассмотрены для incoming Pod's pod (anti) affinity. Ключи, которых нет в метках входящего Pod, будут проигнорированы. Значение по умолчанию — пустое. Один и тот же ключ запрещено использовать в matchLabelKeys и labelSelector. Также matchLabelKeys не может быть установлен, когда labelSelector не установлен. Это бета-поле и требует включения функции MatchLabelKeysInPodAffinity (включена по умолчанию). -
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.mismatchLabelKeys ([]строка)
Атомарно: будет заменено во время слияния
MismatchLabelKeys — это набор ключей меток Pod, выбирающих, какие Pods будут рассмотрены. Ключи используются для поиска значений из меток входящего Pod, эти метки ключи-значения объединяются с
labelSelectorкакkey notin (value)для выбора группы существующих Pods, которые будут рассмотрены для incoming Pod's pod (anti) affinity. Ключи, которых нет в метках входящего Pod, будут проигнорированы. Значение по умолчанию — пустое. Один и тот же ключ запрещено использовать в mismatchLabelKeys и labelSelector. Также mismatchLabelKeys не может быть установлен, когда labelSelector не установлен. Это бета-поле и требует включения функции MatchLabelKeysInPodAffinity (включена по умолчанию). -
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector (LabelSelector)
Запрос меток к набору namespace, к которым относится термин. Термин применяется к объединению namespace, выбранных этим полем, и тех, которые перечислены в поле namespaces. null селектор и null или пустой список namespaces означают «namespace этого Pod». Пустой селектор ({}) соответствует всем namespace.
-
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaces ([]строка)
Атомарно: будет заменено во время слияния
namespaces указывает статический список имен namespace, к которым применяется термин. Термин применяется к объединению namespace, перечисленных в этом поле, и тех, которые выбраны namespaceSelector. null или пустой список namespaces и null namespaceSelector означают «namespace этого Pod».
-
-
preferredDuringSchedulingIgnoredDuringExecution.weight (int32), требуется
Вес, связанный с соответствием соответствующему podAffinityTerm, в диапазоне от 1 до 100.
-
-
requiredDuringSchedulingIgnoredDuringExecution ([]PodAffinityTerm)
Атомарно: будет заменено во время слияния
Если требования affinity, указанные в этом поле, не будут выполнены во время планирования, Pod не будет запланирован на узел. Если требования affinity, указанные в этом поле, перестанут выполняться в какой-то момент во время выполнения Pod (например, из-за обновления метки Pod), система может или не может попытаться в конечном итоге выгнать Pod с узла. При наличии нескольких элементов списки узлов, соответствующих каждому podAffinityTerm, пересекаются, т. е. должны быть удовлетворены все термины.
Определяет набор Pods (в частности, тех, которые соответствуют labelSelector относительно заданного(ых) namespace(ов)), с которыми этот Pod должен быть расположен вместе (affinity) или не расположен вместе (anti-affinity). При этом расположенными вместе считаются Pods, запущенные на узле, значение метки с ключом
которого совпадает со значением метки любого узла, на котором запущен Pod из набора Pods. -
requiredDuringSchedulingIgnoredDuringExecution.topologyKey (строка), требуется
Этот Pod должен быть расположен вместе (affinity) или не расположен вместе (anti-affinity) с Pods, соответствующими labelSelector в указанных namespace(ах), где расположенными вместе считаются Pods, запущенные на узле, значение метки с ключом topologyKey которого совпадает со значением метки любого узла, на котором запущен любой из выбранных Pods. Пустой topologyKey не допускается.
-
requiredDuringSchedulingIgnoredDuringExecution.labelSelector (LabelSelector)
Запрос меток к набору ресурсов, в данном случае к Pods. Если он равен null, этот PodAffinityTerm не соответствует ни одному Pod.
-
requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys ([]строка)
Атомарно: будет заменено во время слияния
MatchLabelKeys — это набор ключей меток Pod, выбирающих, какие Pods будут рассмотрены. Ключи используются для поиска значений из меток входящего Pod, эти метки ключи-значения объединяются с
labelSelectorкакkey in (value)для выбора группы существующих Pods, которые будут рассмотрены для incoming Pod's pod (anti) affinity. Ключи, которых нет в метках входящего Pod, будут проигнорированы. Значение по умолчанию — пустое. Один и тот же ключ запрещено использовать в matchLabelKeys и labelSelector. Также matchLabelKeys не может быть установлен, когда labelSelector не установлен. Это бета-поле и требует включения функции MatchLabelKeysInPodAffinity (включена по умолчанию). -
requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys ([]строка)
Атомарно: будет заменено во время слияния
MismatchLabelKeys — это набор ключей меток Pod, выбирающих, какие Pods будут рассмотрены. Ключи используются для поиска значений из меток входящего Pod, эти метки ключи-значения объединяются с
labelSelectorкакkey notin (value)для выбора группы существующих Pods, которые будут рассмотрены для incoming Pod's pod (anti) affinity. Ключи, которых нет в метках входящего Pod, будут проигнорированы. Значение по умолчанию — пустое. Один и тот же ключ запрещено использовать в mismatchLabelKeys и labelSelector. Также mismatchLabelKeys не может быть установлен, когда labelSelector не установлен. Это бета-поле и требует включения функции MatchLabelKeysInPodAffinity (включена по умолчанию). -
requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector (LabelSelector)
Запрос меток к набору namespace, к которым относится термин. Термин применяется к объединению namespace, выбранных этим полем, и тех, которые перечислены в поле namespaces. null селектор и null или пустой список namespaces означают «namespace этого Pod». Пустой селектор ({}) соответствует всем namespace.
-
requiredDuringSchedulingIgnoredDuringExecution.namespaces ([]строка)
Атомарно: будет заменено во время слияния
namespaces указывает статический список имен namespace, к которым применяется термин. Термин применяется к объединению namespace, перечисленных в этом поле, и тех, которые выбраны namespaceSelector. null или пустой список namespaces и null namespaceSelector означают «namespace этого Pod».
-
PodAntiAffinity
Pod anti affinity — это группа правил планирования меж-Pod анти-affinity.
-
preferredDuringSchedulingIgnoredDuringExecution ([]WeightedPodAffinityTerm)
Атомарно: будет заменено при слиянии
Планировщик отдаст предпочтение планированию Pods на узлах, удовлетворяющих выражениям антисродства, указанным в этом поле, но может выбрать узел, нарушающий одно или несколько выражений. Узел с наибольшим предпочтением — это узел с наибольшей суммой весов, то есть для каждого узла, удовлетворяющего всем требованиям планирования (запросы ресурсов, требования anti-affinity во время планирования и т.д.), вычислите сумму, итерируя по элементам этого поля, и добавляя «вес» к сумме, если на узле есть Pods, соответствующие соответствующему полю podAffinityTerm; узел(ы) с наибольшей суммой имеют наибольшее предпочтение.
Веса всех сопоставленных полей WeightedPodAffinityTerm суммируются на узел для определения наиболее предпочтительного узла(ов)
-
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm (PodAffinityTerm), обязательно
Обязательно. Поле подсродства Pods, связанное с соответствующим весом.
Определяет набор Pods (а именно те, которые соответствуют labelSelector относительно заданного(ых) namespace(ов)), с которыми этот Pod должен быть расположен совместно (сродство) или не расположен совместно (антисродство), где совместно означает, что он выполняется на узле, значение метки с ключом
соответствует значению любой метки узла, на котором выполняется Pod из набора Pods -
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey (строка), обязательно
Этот Pod должен быть расположен совместно (сродство) или не расположен совместно (антисродство) с Pods, соответствующими labelSelector в указанных namespace, где совместно означает, что он выполняется на узле, значение метки с ключом topologyKey соответствует значению любой метки узла, на котором выполняется любой из отобранных Pods. Пустой topologyKey запрещен.
-
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector (LabelSelector)
Запрос метки над набором ресурсов, в данном случае Pods. Если он равен null, это PodAffinityTerm не соответствует ни одному Pod.
-
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.matchLabelKeys ([]string)
Атомарно: будет заменено при слиянии
MatchLabelKeys — это набор ключей меток Pods, для выбора Pods, которые будут приняты во внимание. Ключи используются для поиска значений из меток входящих Pods, эти метки ключ-значение объединяются с
labelSelectorкакkey in (value)для выбора группы существующих Pods, которые будут приняты во внимание для (анти)сродства входящего Pod. Ключи, отсутствующие в метках входящих Pods, будут проигнорированы. Значение по умолчанию — пустое. Один и тот же ключ запрещен как в matchLabelKeys, так и в labelSelector. Также matchLabelKeys не может быть установлено, если labelSelector не установлено. Это бета-поле и требует включения функции MatchLabelKeysInPodAffinity (включено по умолчанию). -
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.mismatchLabelKeys ([]string)
Атомарно: будет заменено при слиянии
MismatchLabelKeys — это набор ключей меток Pods, для выбора Pods, которые будут приняты во внимание. Ключи используются для поиска значений из меток входящих Pods, эти метки ключ-значение объединяются с
labelSelectorкакkey notin (value)для выбора группы существующих Pods, которые будут приняты во внимание для (анти)сродства входящего Pod. Ключи, отсутствующие в метках входящих Pods, будут проигнорированы. Значение по умолчанию — пустое. Один и тот же ключ запрещен как в mismatchLabelKeys, так и в labelSelector. Также mismatchLabelKeys не может быть установлено, если labelSelector не установлено. Это бета-поле и требует включения функции MatchLabelKeysInPodAffinity (включено по умолчанию). -
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector (LabelSelector)
Запрос метки над набором namespace, к которому применяется условие. Условие применяется к объединению namespace, выбранных в этом поле, и перечисленных в поле namespaces. null selector и null или пустой список namespaces означает "namespace этого Pod". Пустой селектор ({}) соответствует всем namespace.
-
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaces ([]string)
Атомарно: будет заменено при слиянии
namespaces указывает статический список имен namespace, к которым применяется условие. Условие применяется к объединению namespace, перечисленных в этом поле, и выбранных namespaceSelector. null или пустой список namespaces и null namespaceSelector означает "namespace этого Pod".
-
-
preferredDuringSchedulingIgnoredDuringExecution.weight (int32), обязательно
Вес, связанный с соответствием соответствующему podAffinityTerm, в диапазоне от 1 до 100.
-
-
requiredDuringSchedulingIgnoredDuringExecution ([]PodAffinityTerm)
Атомарно: будет заменено при слиянии
Если требования антисродства, указанные в этом поле, не выполнены во время планирования, Pod не будет запланирован на узел. Если требования антисродства, указанные в этом поле, перестанут выполняться в какой-то момент во время выполнения Pod (например, из-за обновления метки Pod), система может или не может попытаться в конечном итоге изгнать Pod с его узла. При нескольких элементах списки узлов, соответствующие каждому podAffinityTerm, пересекаются, то есть должны быть удовлетворены все условия.
Определяет набор Pods (а именно те, которые соответствуют labelSelector относительно заданного(ых) namespace(ов)), с которыми этот Pod должен быть расположен совместно (сродство) или не расположен совместно (антисродство), где совместно означает, что он выполняется на узле, значение метки с ключом
соответствует значению любой метки узла, на котором выполняется Pod из набора Pods -
requiredDuringSchedulingIgnoredDuringExecution.topologyKey (строка), обязательно
Этот Pod должен быть расположен совместно (сродство) или не расположен совместно (антисродство) с Pods, соответствующими labelSelector в указанных namespace, где совместно означает, что он выполняется на узле, значение метки с ключом topologyKey соответствует значению любой метки узла, на котором выполняется любой из отобранных Pods. Пустой topologyKey запрещен.
-
requiredDuringSchedulingIgnoredDuringExecution.labelSelector (LabelSelector)
Запрос метки над набором ресурсов, в данном случае Pods. Если он равен null, это PodAffinityTerm не соответствует ни одному Pod.
-
requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys ([]string)
Атомарно: будет заменено при слиянии
MatchLabelKeys — это набор ключей меток Pods, для выбора Pods, которые будут приняты во внимание. Ключи используются для поиска значений из меток входящих Pods, эти метки ключ-значение объединяются с
labelSelectorкакkey in (value)для выбора группы существующих Pods, которые будут приняты во внимание для (анти)сродства входящего Pod. Ключи, отсутствующие в метках входящих Pods, будут проигнорированы. Значение по умолчанию — пустое. Один и тот же ключ запрещен как в matchLabelKeys, так и в labelSelector. Также matchLabelKeys не может быть установлено, если labelSelector не установлено. Это бета-поле и требует включения функции MatchLabelKeysInPodAffinity (включено по умолчанию). -
requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys ([]string)
Атомарно: будет заменено при слиянии
MismatchLabelKeys — это набор ключей меток Pods, для выбора Pods, которые будут приняты во внимание. Ключи используются для поиска значений из меток входящих Pods, эти метки ключ-значение объединяются с
labelSelectorкакkey notin (value)для выбора группы существующих Pods, которые будут приняты во внимание для (анти)сродства входящего Pod. Ключи, отсутствующие в метках входящих Pods, будут проигнорированы. Значение по умолчанию — пустое. Один и тот же ключ запрещен как в mismatchLabelKeys, так и в labelSelector. Также mismatchLabelKeys не может быть установлено, если labelSelector не установлено. Это бета-поле и требует включения функции MatchLabelKeysInPodAffinity (включено по умолчанию). -
requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector (LabelSelector)
Запрос метки над набором namespace, к которому применяется условие. Условие применяется к объединению namespace, выбранных в этом поле, и перечисленных в поле namespaces. null selector и null или пустой список namespaces означает "namespace этого Pod". Пустой селектор ({}) соответствует всем namespace.
-
requiredDuringSchedulingIgnoredDuringExecution.namespaces ([]string)
Атомарно: будет заменено при слиянии
namespaces указывает статический список имен namespace, к которым применяется условие. Условие применяется к объединению namespace, перечисленных в этом поле, и выбранных namespaceSelector. null или пустой список namespaces и null namespaceSelector означает "namespace этого Pod".
-
Проба
Проба описывает проверку работоспособности, выполняемую на контейнере, чтобы определить, жив ли он или готов принимать трафик.
-
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 подсети. В противном случае это значение переопределяет значение, предоставленное спецификацией подсети. Значение должно быть целым числом без знака. Значение 0 означает немедленную остановку с помощью сигнала kill (нет возможности завершить работу). Это бета-поле и требует активации функции ProbeTerminationGracePeriod. Минимальное значение — 1. spec.terminationGracePeriodSeconds используется, если не задано.
-
periodSeconds (int32)
Периодичность выполнения зондирования (в секундах). По умолчанию — 10 секунд. Минимальное значение — 1.
-
timeoutSeconds (int32)
Количество секунд, после которого зондирование завершается по тайм-ауту. По умолчанию — 1 секунда. Минимальное значение — 1. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
-
failureThreshold (int32)
Минимальное количество последовательных сбоев для того, чтобы зондирование считалось неудачным после успешного выполнения. По умолчанию — 3. Минимальное значение — 1.
-
successThreshold (int32)
Минимальное количество последовательных успехов для того, чтобы зондирование считалось успешным после неудачного выполнения. По умолчанию — 1. Должно быть 1 для зондирования на работоспособность и запуска. Минимальное значение — 1.
-
grpc (GRPCAction)
GRPC задаёт действие, связанное с GRPC-портом.
**
-
grpc.port (int32), required
Номер порта GRPC-сервиса. Номер должен быть в диапазоне от 1 до 65535.
-
grpc.service (string)
Service — имя сервиса, которое должно быть указано в GRPC HealthCheckRequest (см. https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
Если это не указано, поведение по умолчанию определяется GRPC.
-
PodStatus
PodStatus представляет информацию о состоянии подсети. Статус может отставать от фактического состояния системы, особенно если узел, на котором размещена подсеть, не может связаться с контрольной плоскостью.
-
nominatedNodeName (строка)
nominatedNodeName устанавливается только тогда, когда этот pod вытесняет другие pods на узле, но он не может быть запланирован сразу, так как жертвы вытеснения получают свои периоды плавного завершения. Это поле не гарантирует, что 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. Оболочки предоставляются для многих из методов фабрики, которые предоставляет пакет time.
-
phase (строка)
Фаза pod — это простой, высокоуровневый обзор того, где pod находится на своем жизненном цикле. Массив условий, поля reason и message, а также отдельные массивы состояния контейнеров содержат более подробную информацию о состоянии pod. Существует пять возможных значений фазы:
Pending: Pod принят системой Kubernetes, но один или несколько образов контейнера не созданы. Это включает время до планирования, а также время, затраченное на загрузку изображений по сети, что может занять некоторое время. Running: Pod привязан к узлу, и все контейнеры были созданы. По крайней мере, один контейнер все еще выполняется или находится в процессе запуска или перезапуска. Succeeded: Все контейнеры в pod завершились успешно и не будут перезапущены. Failed: Все контейнеры в pod завершились, и по крайней мере один контейнер завершился с ошибкой. Контейнер либо завершился с ненулевым статусом, либо был завершен системой. Unknown: По какой-то причине состояние pod не может быть получено, как правило, из-за ошибки при общении с хостом pod.
Подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
-
message (строка)
Читаемое человеком сообщение, указывающее подробности о том, почему pod находится в этом состоянии.
-
reason (строка)
Краткое сообщение в формате CamelCase, указывающее подробности о том, почему pod находится в этом состоянии. Например, 'Evicted'
-
podIP (строка)
IP-адрес pod, выделенный pod. Доступен по крайней мере внутри кластера. Пустое, если еще не выделено.
-
podIPs ([]PodIP)
Стратегия патча: слияние по ключу
ipМассив: уникальные значения по ключу ip будут сохранены во время слияния
podIPs содержит IP-адреса, выделенные pod. Если это поле указано, нулевая запись должна соответствовать полю podIP. Pod может быть выделен не более чем 1 значением для IPv4 и IPv6. Этот список пустой, если еще не были выделены IP-адреса.
PodIP представляет собой единственный IP-адрес, выделенный pod.
-
podIPs.ip (строка), обязательно
IP — это IP-адрес, назначенный pod
-
-
conditions ([]PodCondition)
Стратегия патча: слияние по ключу
typeМассив: уникальные значения по ключу type будут сохранены во время слияния
Текущее состояние службы pod. Подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
PodCondition содержит подробности о текущем состоянии этого pod.
-
conditions.status (строка), обязательно
Status — это состояние условия. Может быть True, False, Unknown. Подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
-
conditions.type (строка), обязательно
Type — это тип условия. Подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
-
conditions.lastProbeTime (Время)
Последнее время, когда мы исследовали условие.
Время — это оболочка вокруг time.Time, которая поддерживает правильное кодирование в YAML и JSON. Оболочки предоставляются для многих из методов фабрики, которые предоставляет пакет time.
-
conditions.lastTransitionTime (Время)
Последнее время, когда условие перешло из одного состояния в другое.
Время — это оболочка вокруг time.Time, которая поддерживает правильное кодирование в YAML и JSON. Оболочки предоставляются для многих из методов фабрики, которые предоставляет пакет time.
-
conditions.message (строка)
Читаемое человеком сообщение, указывающее подробности о последнем переходе.
-
conditions.reason (строка)
Уникальное, однословное, сообщение в формате CamelCase, указывающее причину последнего перехода состояния.
-
-
qosClass (строка)
Классификация качества обслуживания (QOS), назначенная pod на основе требований к ресурсам. См. тип PodQOSClass для доступных классов QOS Подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes
-
initContainerStatuses ([]ContainerStatus)
Атомарно: будет заменено во время слияния
Список содержит по одной записи на каждый начальный контейнер в манифесте. Самый последний успешно завершенный начальный контейнер будет иметь ready = true, у самого недавно запущенного контейнера будет установлено значение startTime. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
ContainerStatus содержит детали текущего состояния этого контейнера.
-
initContainerStatuses.allocatedResources (map[string]Quantity)
AllocatedResources представляет вычислительные ресурсы, выделенные для этого контейнера узлом. Kubelet устанавливает это значение в Container.Resources.Requests после успешного принятия под и после успешного изменения размера под.
-
initContainerStatuses.allocatedResourcesStatus ([]ResourceStatus)
Стратегия патча: слияние по ключу
nameКарта: уникальные значения по ключу name будут сохранены при слиянии
AllocatedResourcesStatus представляет состояние различных ресурсов, выделенных для данного Pod.
**
-
initContainerStatuses.allocatedResourcesStatus.name (string), required
Имя ресурса. Должно быть уникальным в пределах под и соответствовать одному из ресурсов из спецификации под.
-
initContainerStatuses.allocatedResourcesStatus.resources ([]ResourceHealth)
Карта: уникальные значения по ключу resourceID будут сохранены при слиянии
Список уникальных состояний здоровья ресурсов. Каждый элемент в списке содержит уникальный идентификатор ресурса и состояние здоровья ресурса. Как минимум, ResourceID должен однозначно идентифицировать ресурс, выделенный под на узле на протяжении всего жизненного цикла под. См. тип ResourceID для его определения.
ResourceHealth представляет состояние здоровья ресурса. Он содержит последнюю информацию о состоянии устройства. Это часть KEP https://kep.k8s.io/4680, и исторические изменения состояния здоровья планируется добавить в будущие итерации KEP.
-
initContainerStatuses.allocatedResourcesStatus.resources.resourceID (string), required
ResourceID — уникальный идентификатор ресурса. См. тип ResourceID для получения дополнительной информации.
-
initContainerStatuses.allocatedResourcesStatus.resources.health (string)
Состояние здоровья ресурса. Может быть одним из:
- Healthy: работает нормально
- Unhealthy: обнаружено неисправное состояние. Мы считаем это временной проблемой, так как сегодня у нас нет механизма для различения временных и постоянных проблем.
- Unknown: состояние не может быть определено. Например, плагин устройства был деинсталлирован и не был повторно зарегистрирован с тех пор.
В будущем мы можем ввести состояние PermanentlyUnhealthy.
-
-
-
initContainerStatuses.containerID (string)
ContainerID — идентификатор контейнера в формате '<тип>://<идентификатор_контейнера>'. Где тип — идентификатор контейнерного запуска, возвращаемый вызовом Version API CRI (например, "containerd").
-
initContainerStatuses.image (string), required
Image — имя образа контейнера, в котором работает контейнер. Образ контейнера может не совпадать с образом, используемым в PodSpec, так как он может быть разрешен runtime. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images.
-
initContainerStatuses.imageID (string), required
ImageID — идентификатор образа контейнера. Идентификатор образа может не совпадать с идентификатором образа, используемым в PodSpec, так как он может быть разрешен runtime.
-
initContainerStatuses.lastState (ContainerState)
LastTerminationState содержит последнее состояние завершения контейнера для отладки сбоев и перезапусков контейнера. Это поле не заполняется, если контейнер все еще работает, и RestartCount равен 0.
ContainerState содержит возможное состояние контейнера. Может быть указано только одно из его членов. Если ни одно из них не указано, используется значение по умолчанию ContainerStateWaiting.
-
initContainerStatuses.lastState.running (ContainerStateRunning)
Подробности о работающем контейнере
ContainerStateRunning — состояние работы контейнера.
-
initContainerStatuses.lastState.running.startedAt (Time)
Время последнего (пере)запуска контейнера
Time — оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета time.
-
-
initContainerStatuses.lastState.terminated (ContainerStateTerminated)
Подробности о завершенном контейнере
ContainerStateTerminated — завершенное состояние контейнера.
-
initContainerStatuses.lastState.terminated.containerID (string)
Идентификатор контейнера в формате '<тип>://<идентификатор_контейнера>'
-
initContainerStatuses.lastState.terminated.exitCode (int32), required
Код завершения последнего завершения работы контейнера
-
initContainerStatuses.lastState.terminated.startedAt (Time)
Время начала предыдущего выполнения контейнера
Time — оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета time.
-
initContainerStatuses.lastState.terminated.finishedAt (Time)
Время последнего завершения контейнера
Time — оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета time.
-
initContainerStatuses.lastState.terminated.message (string)
Сообщение о последнем завершении работы контейнера
-
initContainerStatuses.lastState.terminated.reason (string)
(краткое) причина последнего завершения работы контейнера
-
initContainerStatuses.lastState.terminated.signal (int32)
Сигнал от последнего завершения работы контейнера
-
-
initContainerStatuses.lastState.waiting (ContainerStateWaiting)
Подробности о контейнере в ожидании
ContainerStateWaiting — состояние ожидания контейнера.
-
initContainerStatuses.lastState.waiting.message (string)
Сообщение о причине, по которой контейнер еще не запущен.
-
initContainerStatuses.lastState.waiting.reason (string)
(краткое) причина, по которой контейнер еще не запущен.
-
-
-
initContainerStatuses.name (string), required
Name — DNS_LABEL, представляющий уникальное имя контейнера. Каждый контейнер в pod должен иметь уникальное имя во всех типах контейнеров. Не может быть обновлено.
-
initContainerStatuses.ready (boolean), required
Ready указывает, проходит ли контейнер в настоящее время проверку готовности. Значение изменяется по мере выполнения проверок готовности. Если проверки готовности не указаны, это поле по умолчанию устанавливается в true, как только контейнер полностью запущен (см. поле Started).
Это значение обычно используется для определения готовности контейнера к приему трафика.
-
initContainerStatuses.resources (ResourceRequirements)
Resources представляет вычислительные запросы и лимиты ресурсов, которые были успешно применены к работающему контейнеру после его запуска или успешного изменения размера.
ResourceRequirements описывает требования к вычислительным ресурсам.
-
initContainerStatuses.resources.claims ([]ResourceClaim)
Карта: уникальные значения по ключу name будут сохранены при слиянии
Claims перечисляет имена ресурсов, определенных в spec.resourceClaims, которые используются этим контейнером.
Это альфа-поле и требует включения функции DynamicResourceAllocation.
Это поле неизменяемо. Оно может быть установлено только для контейнеров.
ResourceClaim ссылается на одну запись в PodSpec.ResourceClaims.
-
initContainerStatuses.resources.claims.name (string), required
Name должно соответствовать имени одной записи в pod.spec.resourceClaims pod, где используется это поле. Это делает ресурс доступным внутри контейнера.
-
initContainerStatuses.resources.claims.request (string)
Request — имя, выбранное для запроса в связанном требовании. Если пусто, всё из требования доступно, иначе доступен только результат этого запроса.
-
-
initContainerStatuses.resources.limits (map[string]Quantity)
Limits описывает максимальное количество разрешенных вычислительных ресурсов. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
-
initContainerStatuses.resources.requests (map[string]Quantity)
Requests описывает минимальное количество требуемых вычислительных ресурсов. Если Requests не указаны для контейнера, они по умолчанию равны Limits, если явно указаны, иначе равны определённому реализацией значению. Requests не могут превышать Limits. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
-
-
initContainerStatuses.restartCount (int32), required
RestartCount содержит количество перезапусков контейнера. Kubelet прилагает усилия для постоянного инкремента значения, но существуют случаи, когда состояние может быть потеряно из-за перезагрузки узла, а затем значение может быть сброшено до 0. Значение никогда не отрицательно.
-
initContainerStatuses.started (boolean)
Started указывает, завершил ли контейнер свой постстарт жизненный цикл и прошёл ли проверку запуска. Инициализируется как false, становится true после успешной проверки запуска. Сбрасывается до false при перезапуске контейнера или при временной потере состояния kubelet. В обоих случаях проверки запуска будут выполняться снова. Всегда равно true, когда нет проверки запуска и контейнер работает и прошел постстарт жизненный цикл. Нулевое значение должно рассматриваться так же, как false.
-
-
initContainerStatuses.state (ContainerState)
Состояние содержит сведения о текущем состоянии контейнера.
ContainerState содержит возможное состояние контейнера. Может быть указан только один из его членов. Если ни один из них не указан, используется значение по умолчанию ContainerStateWaiting.
-
initContainerStatuses.state.running (ContainerStateRunning)
Сведения о работающем контейнере
ContainerStateRunning — состояние работающего контейнера.
-
initContainerStatuses.state.running.startedAt (Time)
Время последнего (пере)запуска контейнера
Time — оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета time.
-
-
initContainerStatuses.state.terminated (ContainerStateTerminated)
Сведения о завершенном контейнере
ContainerStateTerminated — завершенное состояние контейнера.
-
initContainerStatuses.state.terminated.containerID (string)
Идентификатор контейнера в формате '<тип>://<идентификатор_контейнера>'
-
initContainerStatuses.state.terminated.exitCode (int32), required
Код завершения последнего завершения работы контейнера
-
initContainerStatuses.state.terminated.startedAt (Time)
Время запуска предыдущего выполнения контейнера
Time — оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета time.
-
initContainerStatuses.state.terminated.finishedAt (Time)
Время последнего завершения работы контейнера
Time — оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета time.
-
initContainerStatuses.state.terminated.message (string)
Сообщение о последнем завершении работы контейнера
-
initContainerStatuses.state.terminated.reason (string)
(краткое) объяснение последнего завершения работы контейнера
-
initContainerStatuses.state.terminated.signal (int32)
Сигнал последнего завершения работы контейнера
-
-
initContainerStatuses.state.waiting (ContainerStateWaiting)
Сведения о контейнере, ожидающем выполнения
ContainerStateWaiting — состояние ожидания контейнера.
-
initContainerStatuses.state.waiting.message (string)
Сообщение о причине, по которой контейнер еще не запущен.
-
initContainerStatuses.state.waiting.reason (string)
(краткое) объяснение, почему контейнер еще не запущен.
-
-
-
initContainerStatuses.user (ContainerUser)
Пользователь представляет информацию об идентификации пользователя, первоначально прикрепленную к первому процессу контейнера
ContainerUser представляет информацию об идентификации пользователя
-
initContainerStatuses.user.linux (LinuxContainerUser)
Linux содержит информацию об идентификации пользователя, первоначально прикрепленную к первому процессу контейнеров в Linux. Обратите внимание, что фактическая идентификация пользователя может быть изменена, если процесс имеет достаточные привилегии для этого.
LinuxContainerUser представляет информацию об идентификации пользователя в контейнерах Linux
-
initContainerStatuses.user.linux.gid (int64), required
GID — основной gid, первоначально прикрепленный к первому процессу в контейнере
-
initContainerStatuses.user.linux.uid (int64), required
UID — основной uid, первоначально прикрепленный к первому процессу в контейнере
-
initContainerStatuses.user.linux.supplementalGroups ([]int64)
Атомарно: будет заменено во время слияния
SupplementalGroups — дополнительные группы, первоначально прикрепленные к первому процессу в контейнере
-
-
-
initContainerStatuses.volumeMounts ([]VolumeMountStatus)
Стратегия патчинга: слияние по ключу
mountPathМассив: уникальные значения по ключу mountPath будут сохранены во время слияния
Статус подключений томов.
VolumeMountStatus отображает состояние подключений томов.
-
initContainerStatuses.volumeMounts.mountPath (string), required
MountPath соответствует исходному VolumeMount.
-
initContainerStatuses.volumeMounts.name (string), required
Name соответствует имени исходного VolumeMount.
-
initContainerStatuses.volumeMounts.readOnly (boolean)
ReadOnly соответствует исходному VolumeMount.
-
initContainerStatuses.volumeMounts.recursiveReadOnly (string)
RecursiveReadOnly должен быть установлен в Disabled, Enabled или не указан (для не-только-для-чтения подключений). Значение IfPossible в исходном VolumeMount должно быть переведено в Disabled или Enabled, в зависимости от результата подключения.
-
-
-
containerStatuses ([]ContainerStatus)
Атомарно: будет заменено во время слияния
Список содержит по одной записи на каждый контейнер в манифесте. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
ContainerStatus содержит подробную информацию о текущем состоянии контейнера.
-
containerStatuses.allocatedResources (map[string]Quantity)
AllocatedResources представляет вычисленные ресурсы, выделенные для этого контейнера узлом. Kubelet устанавливает это значение в Container.Resources.Requests после успешного приема под и после успешного приема желаемого изменения размера под.
-
containerStatuses.allocatedResourcesStatus ([]ResourceStatus)
Стратегия исправления: слияние по ключу
nameМассив: уникальные значения по ключу name будут сохранены во время слияния
AllocatedResourcesStatus представляет состояние различных ресурсов, выделенных для этого Pod.
**
-
containerStatuses.allocatedResourcesStatus.name (string), обязательно
Имя ресурса. Должно быть уникальным в рамках под и соответствовать одному из ресурсов из спецификации под.
-
containerStatuses.allocatedResourcesStatus.resources ([]ResourceHealth)
Массив: уникальные значения по ключу resourceID будут сохранены во время слияния
Список уникальных состояний здоровья ресурсов. Каждый элемент списка содержит уникальный идентификатор ресурса и состояние здоровья ресурса. Как минимум, ResourceID должен однозначно идентифицировать ресурс, выделенный под на узле на протяжении всего жизненного цикла под. Смотрите тип ResourceID для его определения.
ResourceHealth представляет состояние здоровья ресурса. Он содержит последнюю информацию о состоянии устройства. Это часть KEP https://kep.k8s.io/4680, и исторические изменения состояния здоровья планируется добавить в будущих итерациях KEP.
-
containerStatuses.allocatedResourcesStatus.resources.resourceID (string), обязательно
ResourceID — уникальный идентификатор ресурса. Смотрите тип ResourceID для получения дополнительной информации.
-
containerStatuses.allocatedResourcesStatus.resources.health (string)
Состояние здоровья ресурса. может быть одним из:
- Healthy: работает в нормальном режиме
- Unhealthy: сообщил о нездоровье. Мы считаем это временной проблемой со здоровьем, так как у нас нет механизма для различения временных и постоянных проблем.
- Unknown: Состояние не может быть определено. Например, плагин устройства был дерегистрирован и не был повторно зарегистрирован.
В будущем мы можем добавить состояние PermanentlyUnhealthy.
-
-
-
containerStatuses.containerID (string)
ContainerID — ID контейнера в формате '<type>://<container_id>'. Где type — идентификатор контейнерного выполнения, возвращаемый из вызова Version API CRI (например, "containerd").
-
containerStatuses.image (string), обязательно
Image — имя образа контейнера, в котором работает контейнер. Образ контейнера может не совпадать с образом, используемым в PodSpec, так как он может быть разрешен выполнением. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images.
-
containerStatuses.imageID (string), обязательно
ImageID — ID образа образа контейнера. Идентификатор образа может не совпадать с идентификатором образа, используемым в PodSpec, так как он может быть разрешен выполнением.
-
containerStatuses.lastState (ContainerState)
LastTerminationState хранит последнее состояние завершения контейнера для отладки сбоев и перезапусков контейнеров. Это поле не заполняется, если контейнер все еще работает и RestartCount равен 0.
ContainerState содержит возможные состояния контейнера. Может быть указано только одно из его членов. Если ни одно из них не указано, значение по умолчанию — ContainerStateWaiting.
-
containerStatuses.lastState.running (ContainerStateRunning)
Подробности о работающем контейнере
ContainerStateRunning — состояние работы контейнера.
-
containerStatuses.lastState.running.startedAt (Time)
Время, когда контейнер был последний раз (пере)запущен
Time — обёртка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Обёртки предоставляются для многих фабричных методов пакета time.
-
-
containerStatuses.lastState.terminated (ContainerStateTerminated)
Подробности о завершенном контейнере
ContainerStateTerminated — состояние завершения контейнера.
-
containerStatuses.lastState.terminated.containerID (string)
ID контейнера в формате '<type>://<container_id>'
-
containerStatuses.lastState.terminated.exitCode (int32), обязательно
Код выхода из последнего завершения контейнера
-
containerStatuses.lastState.terminated.startedAt (Time)
Время запуска предыдущего выполнения контейнера
Time — обёртка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Обёртки предоставляются для многих фабричных методов пакета time.
-
containerStatuses.lastState.terminated.finishedAt (Time)
Время последнего завершения контейнера
Time — обёртка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Обёртки предоставляются для многих фабричных методов пакета time.
-
containerStatuses.lastState.terminated.message (string)
Сообщение о последнем завершении контейнера
-
containerStatuses.lastState.terminated.reason (string)
(краткое) объяснение последнего завершения контейнера
-
containerStatuses.lastState.terminated.signal (int32)
Сигнал последнего завершения контейнера
-
-
containerStatuses.lastState.waiting (ContainerStateWaiting)
Подробности о контейнере в ожидании
ContainerStateWaiting — состояние ожидания контейнера.
-
containerStatuses.lastState.waiting.message (string)
Сообщение о причине, по которой контейнер еще не запущен.
-
containerStatuses.lastState.waiting.reason (string)
(краткое) объяснение, почему контейнер еще не запущен.
-
-
-
containerStatuses.name (string), обязательно
Имя — DNS_LABEL, представляющий уникальное имя контейнера. Каждый контейнер в pod должен иметь уникальное имя среди всех типов контейнеров. Не может быть обновлено.
-
containerStatuses.ready (boolean), обязательно
Ready указывает, проходит ли контейнер текущую проверку готовности. Значение меняется по мере выполнения зондирования готовности. Если зондирование готовности не указано, это поле по умолчанию равно true, как только контейнер полностью запущен (см. поле Started).
Это значение обычно используется для определения готовности контейнера к приему трафика.
-
containerStatuses.resources (ResourceRequirements)
Resources представляет запросы на вычислительные ресурсы и ограничения, которые были успешно реализованы для работающего контейнера после его запуска или успешного изменения размера.
ResourceRequirements описывает требования к вычислительным ресурсам.
-
containerStatuses.resources.claims ([]ResourceClaim)
Массив: уникальные значения по ключу name будут сохранены во время слияния
Claims перечисляет имена ресурсов, определенных в spec.resourceClaims, которые используются этим контейнером.
Это поле альфа-версии и требует включения функции DynamicResourceAllocation.
Это поле неизменяемо. Его можно установить только для контейнеров.
ResourceClaim ссылается на одну запись в PodSpec.ResourceClaims.
-
containerStatuses.resources.claims.name (string), обязательно
Имя должно соответствовать имени одной записи в pod.spec.resourceClaims Pod, где используется это поле. Это делает ресурс доступным внутри контейнера.
-
containerStatuses.resources.claims.request (string)
Request — выбранное имя запроса в связанном требовании. Если пусто, все из требования доступно, иначе доступен только результат этого запроса.
-
-
containerStatuses.resources.limits (map[string]Quantity)
Limits описывает максимальное количество вычислительных ресурсов, разрешенных. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
-
containerStatuses.resources.requests (map[string]Quantity)
Requests описывает минимальное количество требуемых вычислительных ресурсов. Если Requests не указан для контейнера, он по умолчанию равен Limits, если это явно указано, иначе это определенное значение реализации. Запросы не могут превышать Limits. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
-
-
containerStatuses.restartCount (int32), обязательно
RestartCount содержит количество раз, когда контейнер был перезапущен. Kubelet пытается всегда увеличивать значение, но есть случаи, когда состояние может быть потеряно из-за перезапуска узла, а затем значение может быть сброшено до 0. Значение никогда не является отрицательным.
-
containerStatuses.started (boolean)
Started указывает, завершил ли контейнер свой пост-запуск жизненного цикла и прошел ли начальное зондирование запуска. Инициализируется как false, становится true после успешного зондирования запуска. Сбрасывается до false при перезапуске контейнера или если kubelet временно теряет состояние. В обоих случаях начальное зондирование запуска выполнится снова. Всегда равно true, если зондирование запуска не определено, контейнер работает и прошел пост-запуск жизненного цикла. Значение null должно обрабатываться так же, как false.
-
-
containerStatuses.state (ContainerState)
Состояние содержит подробности о текущем состоянии контейнера.
ContainerState хранит возможное состояние контейнера. Может быть указан только один из его элементов. Если ни один из них не указан, используется значение по умолчанию ContainerStateWaiting.
-
containerStatuses.state.running (ContainerStateRunning)
Подробности о работающем контейнере
ContainerStateRunning — это состояние работы контейнера.
-
containerStatuses.state.running.startedAt (Time)
Время последнего (пере)запуска контейнера
Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета time.
-
-
containerStatuses.state.terminated (ContainerStateTerminated)
Подробности о завершенном контейнере
ContainerStateTerminated — это состояние завершения контейнера.
-
containerStatuses.state.terminated.containerID (string)
Идентификатор контейнера в формате '<type>://<container_id>'
-
containerStatuses.state.terminated.exitCode (int32), обязательное поле
Код завершения последнего завершения работы контейнера
-
containerStatuses.state.terminated.startedAt (Time)
Время запуска предыдущего выполнения контейнера
Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета time.
-
containerStatuses.state.terminated.finishedAt (Time)
Время последнего завершения работы контейнера
Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета time.
-
containerStatuses.state.terminated.message (string)
Сообщение о последнем завершении работы контейнера
-
containerStatuses.state.terminated.reason (string)
(краткое) обоснование последнего завершения работы контейнера
-
containerStatuses.state.terminated.signal (int32)
Сигнал последнего завершения работы контейнера
-
-
containerStatuses.state.waiting (ContainerStateWaiting)
Подробности о контейнере, ожидающем выполнения
ContainerStateWaiting — это состояние ожидания контейнера.
-
containerStatuses.state.waiting.message (string)
Сообщение о причинах, по которым контейнер ещё не запущен.
-
containerStatuses.state.waiting.reason (string)
(краткое) обоснование того, почему контейнер ещё не запущен.
-
-
-
containerStatuses.user (ContainerUser)
Пользователь представляет информацию об идентификации пользователя, первоначально прикреплённую к первому процессу контейнера
ContainerUser представляет информацию об идентификации пользователя
-
containerStatuses.user.linux (LinuxContainerUser)
Linux хранит информацию об идентификации пользователя, первоначально прикреплённую к первому процессу контейнеров в Linux. Обратите внимание, что фактическая идентификация пользователя может быть изменена, если процесс обладает достаточными привилегиями.
LinuxContainerUser представляет информацию об идентификации пользователя в контейнерах Linux
-
containerStatuses.user.linux.gid (int64), обязательное поле
GID — основной gid, первоначально прикреплённый к первому процессу в контейнере
-
containerStatuses.user.linux.uid (int64), обязательное поле
UID — основной uid, первоначально прикреплённый к первому процессу в контейнере
-
containerStatuses.user.linux.supplementalGroups ([]int64)
Атомарно: будет заменено во время слияния
Дополнительные группы — дополнительные группы, первоначально прикреплённые к первому процессу в контейнере
-
-
-
containerStatuses.volumeMounts ([]VolumeMountStatus)
Стратегия патча: слияние по ключу
mountPathМассив: уникальные значения по ключу mountPath будут сохранены во время слияния
Статус подмонтированных томов.
VolumeMountStatus отображает статус подмонтированных томов.
-
containerStatuses.volumeMounts.mountPath (string), обязательное поле
MountPath соответствует исходному VolumeMount.
-
containerStatuses.volumeMounts.name (string), обязательное поле
Имя соответствует имени исходного VolumeMount.
-
containerStatuses.volumeMounts.readOnly (boolean)
ReadOnly соответствует исходному VolumeMount.
-
containerStatuses.volumeMounts.recursiveReadOnly (string)
RecursiveReadOnly должно быть установлено в Disabled, Enabled или не указано (для не-только-чтения монтирования). Значение IfPossible в исходном VolumeMount должно быть преобразовано в Disabled или Enabled в зависимости от результата монтирования.
-
-
-
ephemeralContainerStatuses ([]ContainerStatus)
Атомарно: будет заменено во время слияния
Статус всех кратковременных контейнеров, запущенных в этом Pod.
ContainerStatus содержит подробности о текущем статусе этого контейнера.
-
ephemeralContainerStatuses.allocatedResources (map[string]Quantity)
AllocatedResources представляет вычисленные ресурсы, выделенные для этого контейнера узлом. Kubelet устанавливает это значение в Container.Resources.Requests при успешном допуске Pod и после успешного изменения размера желаемого Pod.
-
ephemeralContainerStatuses.allocatedResourcesStatus ([]ResourceStatus)
Стратегия исправления: слияние по ключу
nameМассив: уникальные значения по ключу name будут сохранены при слиянии
AllocatedResourcesStatus представляет статус различных ресурсов, выделенных для этого Pod.
**
-
ephemeralContainerStatuses.allocatedResourcesStatus.name (string), required
Имя ресурса. Должно быть уникальным внутри Pod и соответствовать одному из ресурсов из спецификации Pod.
-
ephemeralContainerStatuses.allocatedResourcesStatus.resources ([]ResourceHealth)
Массив: уникальные значения по ключу resourceID будут сохранены при слиянии
Список уникальных состояний здоровья ресурсов. Каждый элемент списка содержит уникальный идентификатор ресурса и состояние здоровья ресурса. Как минимум, ResourceID должен уникально идентифицировать ресурс, выделенный для Pod на узле на протяжении всего жизненного цикла Pod. См. тип ResourceID для его определения.
ResourceHealth представляет состояние здоровья ресурса. Он содержит самую последнюю информацию о состоянии устройства. Это часть KEP https://kep.k8s.io/4680, и исторические изменения состояния здоровья планируется добавить в будущие итерации KEP.
-
ephemeralContainerStatuses.allocatedResourcesStatus.resources.resourceID (string), required
ResourceID — уникальный идентификатор ресурса. См. тип ResourceID для получения дополнительной информации.
-
ephemeralContainerStatuses.allocatedResourcesStatus.resources.health (string)
Состояние здоровья ресурса. Может быть одним из:
- Здоровый: работает нормально
- Нездоровый: сообщили о нездоровье. Мы считаем это временной проблемой со здоровьем, так как у нас нет механизма для различения временных и постоянных проблем на данный момент.
- Неизвестный: статус не может быть определен. Например, плагин устройства был дерегистрирован и не был перерегистрирован с тех пор.
В будущем мы можем добавить статус PermanentlyUnhealthy.
-
-
-
ephemeralContainerStatuses.containerID (string)
ContainerID — идентификатор контейнера в формате '<type>://<container_id>'. Где type — идентификатор контейнерного выполнения, возвращаемый из вызова Version API CRI (например, "containerd").
-
ephemeralContainerStatuses.image (string), required
Image — имя образа контейнера, который запущен в контейнере. Образ контейнера может не соответствовать образу, используемому в PodSpec, так как он может быть решен исполнением. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images.
-
ephemeralContainerStatuses.imageID (string), required
ImageID — идентификатор образа контейнера. Идентификатор образа может не совпадать с идентификатором образа, используемого в PodSpec, так как он может быть решен исполнением.
-
ephemeralContainerStatuses.lastState (ContainerState)
LastTerminationState содержит последнее состояние завершения контейнера, чтобы помочь отладить сбои и перезапуски контейнеров. Это поле не заполняется, если контейнер все еще работает и RestartCount равен 0.
ContainerState содержит возможное состояние контейнера. Может быть указано только одно из его членов. Если ни одно из них не указано, значение по умолчанию — ContainerStateWaiting.
-
ephemeralContainerStatuses.lastState.running (ContainerStateRunning)
Подробности о работающем контейнере
ContainerStateRunning — это состояние выполнения контейнера.
-
ephemeralContainerStatuses.lastState.running.startedAt (Time)
Время, когда контейнер был последним (пере)запущен
Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов, которые предлагает пакет time.
-
-
ephemeralContainerStatuses.lastState.terminated (ContainerStateTerminated)
Подробности о завершенном контейнере
ContainerStateTerminated — это состояние завершения контейнера.
-
ephemeralContainerStatuses.lastState.terminated.containerID (string)
Идентификатор контейнера в формате '<type>://<container_id>'
-
ephemeralContainerStatuses.lastState.terminated.exitCode (int32), required
Код выхода из последнего завершения контейнера
-
ephemeralContainerStatuses.lastState.terminated.startedAt (Time)
Время, когда предыдущее выполнение контейнера началось
Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов, которые предлагает пакет time.
-
ephemeralContainerStatuses.lastState.terminated.finishedAt (Time)
Время, когда контейнер был последний раз завершен
Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов, которые предлагает пакет time.
-
ephemeralContainerStatuses.lastState.terminated.message (string)
Сообщение о последнем завершении контейнера
-
ephemeralContainerStatuses.lastState.terminated.reason (string)
(кратко) причина последнего завершения контейнера
-
ephemeralContainerStatuses.lastState.terminated.signal (int32)
Сигнал при последнем завершении контейнера
-
-
ephemeralContainerStatuses.lastState.waiting (ContainerStateWaiting)
Подробности о ожидающем контейнере
ContainerStateWaiting — это состояние ожидания контейнера.
-
ephemeralContainerStatuses.lastState.waiting.message (string)
Сообщение о том, почему контейнер еще не запущен.
-
ephemeralContainerStatuses.lastState.waiting.reason (string)
(кратко) причина, по которой контейнер еще не запущен.
-
-
-
ephemeralContainerStatuses.name (string), required
Имя — DNS_LABEL, представляющий уникальное имя контейнера. Каждый контейнер в Pod должен иметь уникальное имя среди всех типов контейнеров. Не может быть обновлен.
-
ephemeralContainerStatuses.ready (boolean), required
Ready указывает, проходит ли контейнер текущую проверку готовности. Значение изменяется по мере выполнения зондирования готовности. Если зондирование готовности не указано, это поле по умолчанию равно true, как только контейнер полностью запущен (см. поле Started).
Это значение обычно используется для определения готовности контейнера к приему трафика.
-
ephemeralContainerStatuses.resources (ResourceRequirements)
Resources представляет запросы и ограничения вычислительных ресурсов, которые были успешно применены к работающему контейнеру после запуска или успешного изменения размера.
ResourceRequirements описывает требования к вычислительным ресурсам.
-
ephemeralContainerStatuses.resources.claims ([]ResourceClaim)
Массив: уникальные значения по ключу name будут сохранены при слиянии
Claims перечисляет имена ресурсов, определенных в spec.resourceClaims, которые используются этим контейнером.
Это поле альфа-версии и требует включения функции DynamicResourceAllocation.
Это поле неизменяемое. Его можно задавать только для контейнеров.
ResourceClaim ссылается на один элемент в PodSpec.ResourceClaims.
-
ephemeralContainerStatuses.resources.claims.name (string), required
Имя должно соответствовать имени одного элемента в pod.spec.resourceClaims Pod, где используется это поле. Это делает ресурс доступным внутри контейнера.
-
ephemeralContainerStatuses.resources.claims.request (string)
Request — имя, выбранное для запроса в указанной претензии. Если пусто, все из претензии становится доступным, в противном случае доступен только результат этого запроса.
-
-
ephemeralContainerStatuses.resources.limits (map[string]Quantity)
Limits описывает максимальное количество разрешенных вычислительных ресурсов. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
-
ephemeralContainerStatuses.resources.requests (map[string]Quantity)
Requests описывает минимальное количество необходимых вычислительных ресурсов. Если Requests опущено для контейнера, оно по умолчанию равно Limits, если это явно указано, в противном случае — определенное реализацией значение. Requests не может превышать Limits. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
-
-
ephemeralContainerStatuses.restartCount (int32), required
RestartCount содержит количество раз, когда контейнер был перезапущен. Kubelet старается всегда увеличивать значение, но есть случаи, когда состояние может быть потеряно из-за перезагрузки узла, а затем значение может быть сброшено до 0. Значение никогда не отрицательно.
-
ephemeralContainerStatuses.started (boolean)
Started указывает, завершил ли контейнер свой постстартовый хук жизненного цикла и прошел ли свой запуск зонда. Инициализируется как false, становится true после успешного зондирования запуска. Сбрасывается до false при перезапуске контейнера или если kubelet временно теряет состояние. В обоих случаях зонды запуска будут запущены снова. Всегда равно true, когда зонд запуска не определен, контейнер работает и прошел постстартовый хук жизненного цикла. Нулевое значение должно обрабатываться так же, как false.
-
-
ephemeralContainerStatuses.state (ContainerState)
Состояние содержит подробности о текущем состоянии контейнера.
ContainerState хранит возможное состояние контейнера. Может быть указано только одно из его членов. Если ни один из них не указан, используется значение по умолчанию ContainerStateWaiting.
-
ephemeralContainerStatuses.state.running (ContainerStateRunning)
Подробности о работающем контейнере
ContainerStateRunning — состояние работающего контейнера.
-
ephemeralContainerStatuses.state.running.startedAt (Time)
Время последнего (пере)запуска контейнера
Time — обёртка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Обёртки предоставляются для многих фабричных методов пакета time.
-
-
ephemeralContainerStatuses.state.terminated (ContainerStateTerminated)
Подробности о завершённом контейнере
ContainerStateTerminated — состояние завершённого контейнера.
-
ephemeralContainerStatuses.state.terminated.containerID (string)
Идентификатор контейнера в формате '<тип>://<идентификатор_контейнера>'
-
ephemeralContainerStatuses.state.terminated.exitCode (int32), required
Код завершения последнего завершения работы контейнера
-
ephemeralContainerStatuses.state.terminated.startedAt (Time)
Время запуска предыдущего выполнения контейнера
Time — обёртка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Обёртки предоставляются для многих фабричных методов пакета time.
-
ephemeralContainerStatuses.state.terminated.finishedAt (Time)
Время последнего завершения контейнера
Time — обёртка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Обёртки предоставляются для многих фабричных методов пакета time.
-
ephemeralContainerStatuses.state.terminated.message (string)
Сообщение о последнем завершении работы контейнера
-
ephemeralContainerStatuses.state.terminated.reason (string)
(краткое) объяснение последнего завершения работы контейнера
-
ephemeralContainerStatuses.state.terminated.signal (int32)
Сигнал при последнем завершении работы контейнера
-
-
ephemeralContainerStatuses.state.waiting (ContainerStateWaiting)
Подробности о ждущем контейнере
ContainerStateWaiting — состояние ожидания контейнера.
-
ephemeralContainerStatuses.state.waiting.message (string)
Сообщение о том, почему контейнер ещё не запущен.
-
ephemeralContainerStatuses.state.waiting.reason (string)
(краткое) объяснение, почему контейнер ещё не запущен.
-
-
-
ephemeralContainerStatuses.user (ContainerUser)
Пользователь представляет информацию об идентификации пользователя, первоначально присоединённую к первому процессу контейнера
ContainerUser представляет информацию об идентификации пользователя
-
ephemeralContainerStatuses.user.linux (LinuxContainerUser)
Linux хранит информацию об идентификации пользователя, первоначально присоединённую к первому процессу контейнеров в Linux. Обратите внимание, что фактическая идентификация пользователя может быть изменена, если у процесса достаточно привилегий.
LinuxContainerUser представляет информацию об идентификации пользователя в контейнерах Linux
-
ephemeralContainerStatuses.user.linux.gid (int64), required
GID — основной gid, первоначально присоединённый к первому процессу в контейнере
-
ephemeralContainerStatuses.user.linux.uid (int64), required
UID — основной uid, первоначально присоединённый к первому процессу в контейнере
-
ephemeralContainerStatuses.user.linux.supplementalGroups ([]int64)
Атомарно: будет заменено во время слияния
SupplementalGroups — дополнительные группы, первоначально присоединённые к первому процессу в контейнере
-
-
-
ephemeralContainerStatuses.volumeMounts ([]VolumeMountStatus)
Стратегия патча: merge по ключу
mountPathМассив: уникальные значения по ключу mountPath будут сохранены во время слияния
Статус монтирования томов.
VolumeMountStatus отображает статус монтирования томов.
-
ephemeralContainerStatuses.volumeMounts.mountPath (string), required
MountPath соответствует исходному VolumeMount.
-
ephemeralContainerStatuses.volumeMounts.name (string), required
Имя соответствует имени исходного VolumeMount.
-
ephemeralContainerStatuses.volumeMounts.readOnly (boolean)
ReadOnly соответствует исходному VolumeMount.
-
ephemeralContainerStatuses.volumeMounts.recursiveReadOnly (string)
RecursiveReadOnly должно быть установлено в Disabled, Enabled или не указано (для монтирований без read-only). Значение IfPossible в исходном VolumeMount должно быть переведено в Disabled или Enabled в зависимости от результата монтирования.
-
-
-
resourceClaimStatuses ([]PodResourceClaimStatus)
Стратегии патча: retainKeys, merge по ключу
nameМассив: уникальные значения по ключу name будут сохранены во время слияния
Статус заявок на ресурсы.
PodResourceClaimStatus хранится в PodStatus для каждой PodResourceClaim, которая ссылается на ResourceClaimTemplate. Он хранит сгенерированное имя для соответствующей ResourceClaim.
-
resourceClaimStatuses.name (string), required
Имя уникально идентифицирует эту заявку на ресурс внутри Pod. Это значение должно совпадать с именем записи в pod.spec.resourceClaims, что подразумевает, что строка должна соответствовать правилу DNS_LABEL.
-
resourceClaimStatuses.resourceClaimName (string)
ResourceClaimName — это имя ResourceClaim, которое было сгенерировано для Pod в пространстве имён Pod. Если это значение не установлено, то генерация ResourceClaim не была необходима. В этом случае запись pod.spec.resourceClaims можно игнорировать.
-
-
resize (string)
Статус изменения размеров ресурсов, желаемого для контейнеров Pod. Он пуст, если изменение размеров ресурсов не ожидается. Любые изменения ресурсов контейнера автоматически установят это значение в «Предложено»
PodList
PodList — это список Pod.
-
items ([]Pod), required
Список Pod. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md
-
apiVersion (string)
APIVersion определяет версию схемы представления объекта. Серверы должны преобразовать распознанные схемы в последнее внутреннее значение и могут отклонить нераспознанные значения. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
kind (string)
Kind — строковое значение, представляющее REST-ресурс, который представляет этот объект. Серверы могут вывести это значение из конечной точки, к которой клиент отправляет запросы. Не может быть обновлено. В формате CamelCase. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
-
metadata (ListMeta)
Стандартные метаданные списка. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
© 2024 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2024 The Linux Foundation ®. All rights reserved.
https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/