Spec-Zone.ru › Kubernetes

Pod

Pod — это набор контейнеров, которые могут работать на узле. Этот ресурс создаётся клиентами и назначается узлам.
Связанные концептуальные страницы
  • Подсы
    1. Что такое Pod?
    2. Использование подов
    3. Работа с подами
    4. Обновление и замена пода
    5. Совместное использование ресурсов и взаимодействие
    6. Настройки безопасности пода
    7. Запросы и ограничения ресурсов
    8. Статические поды
    9. Поды с несколькими контейнерами
    10. Проверки контейнеров
    11. Дальнейшие действия
  • Расширенная настройка пода
    1. PriorityClasses
    2. RuntimeClasses
    3. Настройка контекста безопасности на уровне пода и контейнера
    4. Влияние на решения о планировании пода
    5. Накладные расходы пода
    6. Дальнейшие действия

apiVersion: v1

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

Pod

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

Поле Описание
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
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 — это описание пода.

Поле Описание
activeDeadlineSeconds
integer
Необязательная продолжительность в секундах, в течение которой под может оставаться активным на узле относительно StartTime, прежде чем система начнёт активно пытаться отметить его как завершившийся с ошибкой и завершить связанные с ним контейнеры. Значение должно быть положительным целым числом.
affinity
Affinity
Ограничения планирования пода, если они заданы
automountServiceAccountToken
boolean
AutomountServiceAccountToken указывает, следует ли автоматически подключать токен сервисной учётной записи.
containers *
Массив Container
стратегия исправления: объединение по ключу name
Список контейнеров, принадлежащих поду. В настоящее время контейнеры нельзя добавлять или удалять. В Pod должен быть хотя бы один контейнер. Не может быть обновлён.
dnsConfig
PodDNSConfig
Задаёт параметры DNS пода. Указанные здесь параметры будут объединены с созданной конфигурацией DNS в соответствии с DNSPolicy.
dnsPolicy
string
Задаёт политику DNS для пода. По умолчанию используется "ClusterFirst". Допустимые значения: 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' или 'None'. Параметры DNS, указанные в DNSConfig, будут объединены с политикой, выбранной в DNSPolicy. Чтобы задать параметры DNS вместе с hostNetwork, необходимо явно указать политику DNS 'ClusterFirstWithHostNet'.

Возможные значения перечисления:
- `"ClusterFirst"` означает, что под должен сначала использовать кластерный DNS, а если hostNetwork имеет значение true и кластерный DNS доступен — использовать настройки DNS по умолчанию (определяемые kubelet) в качестве резервного варианта.
- `"ClusterFirstWithHostNet"` означает, что под должен сначала использовать кластерный DNS, а если он доступен — использовать настройки DNS по умолчанию (определяемые kubelet) в качестве резервного варианта.
- `"Default"` означает, что под должен использовать настройки DNS по умолчанию (определяемые kubelet).
- `"None"` означает, что под должен использовать пустые настройки DNS. Параметры DNS, такие как серверы имён и пути поиска, следует задавать с помощью DNSConfig.
enableServiceLinks
boolean
EnableServiceLinks указывает, следует ли добавлять сведения о сервисах в переменные окружения пода в соответствии с синтаксисом ссылок Docker. Необязательный параметр. По умолчанию — true.
ephemeralContainers
Массив EphemeralContainer
стратегия исправления: объединение по ключу name
Список эфемерных контейнеров, запущенных в этом поде. Эфемерные контейнеры можно запускать в существующем поде для выполнения действий, инициированных пользователем, например отладки. Этот список нельзя указывать при создании пода, а также нельзя изменять при обновлении спецификации пода. Чтобы добавить эфемерный контейнер в существующий под, используйте подресурс ephemeralcontainers этого пода.
hostAliases
Массив HostAlias
стратегия исправления: объединение по ключу ip
HostAliases — это необязательный список узлов и IP-адресов, который, если он указан, будет добавлен в файл hosts пода.
hostIPC
boolean
Использовать пространство имён IPC узла. Необязательный параметр. По умолчанию — false.
hostNetwork
boolean
Запрос на использование сети узла для этого пода. Используется пространство имён сети узла. При использовании HostNetwork следует указывать порты, чтобы планировщик располагал необходимой информацией. Если `hostNetwork` имеет значение true, заданные поля `hostPort` в описаниях портов должны совпадать с `containerPort`, а незаданные поля `hostPort` в описаниях портов получают значение `containerPort` по умолчанию. По умолчанию — false.
hostPID
boolean
Использовать пространство имён PID узла. Необязательный параметр. По умолчанию — false.
hostUsers
boolean
Использовать пространство имён пользователей узла. Необязательный параметр. По умолчанию — true. Если задано значение true или поле отсутствует, под будет работать в пространстве имён пользователей узла. Это полезно, когда поду требуется функция, доступная только в пространстве имён пользователей узла, например загрузка модуля ядра с помощью CAP_SYS_MODULE. Если задано значение false, для пода создаётся новое пространство имён пользователей. Значение false полезно для снижения риска уязвимостей, связанных с выходом из контейнера, и позволяет пользователям запускать контейнеры от имени root, не имея фактических привилегий root на узле.
hostname
string
Задаёт имя узла для Pod. Если оно не указано, имени узла пода будет присвоено системное значение.
hostnameOverride
string
HostnameOverride задаёт явное переопределение имени узла пода, видимого самому поду. Это поле задаёт только имя узла пода и не влияет на его записи DNS. Если в этом поле задана непустая строка: - Она имеет приоритет над значениями, заданными в `hostname` и `subdomain`. - Имени узла Pod будет присвоено это значение.
- `setHostnameAsFQDN` должно иметь значение nil или false.
- `hostNetwork` должно иметь значение false. Это поле должно содержать допустимое DNS-имя поддомена, определённое в RFC 1123, длиной не более 64 символов. Требуется включённый функциональный переключатель HostnameOverride.
imagePullSecrets
Массив LocalObjectReference
стратегия исправления: объединение по ключу name
ImagePullSecrets — это необязательный список ссылок на секреты в том же пространстве имён, которые следует использовать для загрузки любых образов, указанных в этом PodSpec. Если список указан, эти секреты будут переданы соответствующим реализациям загрузчиков для использования. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
initContainers
Массив Container
стратегия исправления: объединение по ключу name
Список контейнеров инициализации, принадлежащих поду. Контейнеры инициализации выполняются по порядку до запуска контейнеров. Если какой-либо контейнер инициализации завершается с ошибкой, считается, что под завершился с ошибкой, и он обрабатывается в соответствии с его restartPolicy. Имя контейнера инициализации или обычного контейнера должно быть уникальным среди всех контейнеров. У контейнеров инициализации не может быть действий Lifecycle, проверок Readiness, Liveness или Startup. При планировании учитываются resourceRequirements контейнера инициализации: для каждого типа ресурсов выбирается наибольшее значение запроса или ограничения, а затем используется максимум из этого значения и суммы значений обычных контейнеров. Ограничения для контейнеров инициализации применяются аналогичным образом. В настоящее время контейнеры инициализации нельзя добавлять или удалять. Не может быть обновлён. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
nodeName
string
NodeName указывает, на каком узле запланирован этот под. Если поле пустое, под может быть запланирован планировщиком, указанным в schedulerName. После установки этого поля kubelet на данном узле отвечает за жизненный цикл пода. Это поле не следует использовать, чтобы указать, что под желательно запланировать на конкретном узле. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename
nodeSelector
object
NodeSelector — это селектор, которому должен соответствовать узел, чтобы под мог быть на нём размещён. Для планирования пода на узел селектор должен соответствовать меткам этого узла. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
os
PodOS
Задаёт ОС контейнеров в поде. Если это поле задано, некоторые поля пода и контейнера ограничены. Если в поле OS указана linux, следующие поля должны быть не заданы: -securityContext.windowsOptions Если в поле OS указана windows, следующие поля должны быть не заданы: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - 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.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
overhead
object
Overhead представляет накладные расходы ресурсов, связанные с запуском пода для заданного RuntimeClass. Это поле автоматически заполняется во время допуска контроллером допуска RuntimeClass. Если контроллер допуска RuntimeClass включён, в запросах на создание Pod нельзя задавать overhead. Контроллер допуска RuntimeClass отклонит запросы на создание Pod, в которых overhead уже задан. Если RuntimeClass настроен и выбран в PodSpec, Overhead будет иметь значение, определённое в соответствующем RuntimeClass; в противном случае поле останется незаданным и будет считаться равным нулю. Дополнительная информация: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md
preemptionPolicy
string
PreemptionPolicy — это политика вытеснения подов с более низким приоритетом. Возможные значения: Never, PreemptLowerPriority. Если значение не задано, по умолчанию используется PreemptLowerPriority.

Возможные значения перечисления:
- `"Never"` означает, что под никогда не вытесняет другие поды с более низким приоритетом.
- `"PreemptLowerPriority"` означает, что под может вытеснять другие поды с более низким приоритетом.
priority
integer
Значение приоритета. Различные компоненты системы используют это поле, чтобы определить приоритет пода. Если включён контроллер допуска Priority, он не позволяет пользователям задавать это поле. Контроллер допуска заполняет это поле значением из PriorityClassName. Чем выше значение, тем выше приоритет.
priorityClassName
string
Если задано, указывает приоритет пода. Два специальных ключевых слова — "system-node-critical" и "system-cluster-critical" — обозначают наивысшие приоритеты, причём первое означает самый высокий приоритет. Любое другое имя должно быть определено путём создания объекта PriorityClass с этим именем. Если значение не задано, приоритет пода будет равен значению по умолчанию или нулю, если значение по умолчанию отсутствует.
readinessGates
Массив PodReadinessGate
Если поле задано, для определения готовности пода будут проверены все gates готовности. Под считается готовым, когда все его контейнеры готовы И все условия, указанные в gates готовности, имеют статус "True". Дополнительная информация: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates
resourceClaims
Массив PodResourceClaim
стратегия исправления: объединение, сохранение ключей по ключу name
ResourceClaims определяет, какие ResourceClaims необходимо выделить и зарезервировать до того, как поду будет разрешено запуститься. Эти ресурсы будут доступны контейнерам, которые используют их по имени. Это стабильное поле, но для его использования требуется включить функциональный переключатель DynamicResourceAllocation. Это поле неизменяемо.
resources
ResourceRequirements
Resources — это общий объём ресурсов CPU и памяти, необходимый всем контейнерам в поде. Поддерживается указание Requests и Limits только для имён ресурсов "cpu", "memory" и "hugepages-". ResourceClaims не поддерживаются. Это поле обеспечивает точное управление выделением ресурсов для всего пода и позволяет контейнерам в поде совместно использовать ресурсы. Это альфа-поле; для его использования требуется включить функциональный переключатель PodLevelResources.
restartPolicy
string
Политика перезапуска для всех контейнеров в поде. Возможные значения: Always, OnFailure, Never. В некоторых контекстах может быть разрешено только подмножество этих значений. По умолчанию — Always. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy

Возможные значения перечисления:
- `"Always"`
- `"Never"`
- `"OnFailure"`
runtimeClassName
string
RuntimeClassName ссылается на объект RuntimeClass в группе node.k8s.io, который следует использовать для запуска этого пода. Если ресурс RuntimeClass с указанным именем не найден, под не будет запущен. Если значение не задано или пусто, будет использоваться "legacy" RuntimeClass — неявный класс с пустым определением, использующий обработчик среды выполнения по умолчанию. Дополнительная информация: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
schedulerName
string
Если поле задано, под будет направлен указанным планировщиком. Если поле не задано, под будет направлен планировщиком по умолчанию.
schedulingGates
Массив PodSchedulingGate
стратегия исправления: объединение по ключу name
SchedulingGates — это непрозрачный список значений, который, если он задан, блокирует планирование пода. Если список schedulingGates не пуст, под останется в состоянии SchedulingGated, и планировщик не будет пытаться его запланировать. SchedulingGates можно задавать только при создании пода, а удалять — только после его создания.
schedulingGroup
PodSchedulingGroup
SchedulingGroup содержит ссылку на объект группировки, используемый средой выполнения планирования и которому принадлежит этот Pod. Планировщик использует это поле для определения группы и применения соответствующих политик группового планирования. Связь с группой также влияет на другие аспекты жизненного цикла Pod, имеющие значение в более широком контексте планирования, например вытеснение, подключение ресурсов и т. д. Если поле не задано, во всех этих аспектах Pod рассматривается как отдельная единица. Объект группы, на который ссылается это поле, может отсутствовать на момент создания Pod. Это поле неизменяемо, однако объект группы с тем же именем можно создать повторно с другими политиками. Если сделать это во время планирования пода, его размещение может не соответствовать ожидаемым политикам.
securityContext
PodSecurityContext
SecurityContext содержит атрибуты безопасности уровня пода и общие настройки контейнеров. Необязательный параметр. По умолчанию пусто. Значения каждого поля по умолчанию см. в описании типа.
serviceAccount
string
DeprecatedServiceAccount — устаревший псевдоним ServiceAccountName. Устарело: используйте вместо него serviceAccountName.
serviceAccountName
string
ServiceAccountName — это имя ServiceAccount, используемой для запуска этого пода. Дополнительная информация: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
setHostnameAsFQDN
boolean
Если значение true, имя узла пода будет настроено как FQDN пода, а не как короткое имя (по умолчанию). В контейнерах Linux это означает установку FQDN в поле hostname ядра (поле nodename структуры utsname). В контейнерах Windows это означает установку значения реестра hostname для раздела реестра HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters в значение FQDN. Если у пода нет FQDN, это не оказывает никакого эффекта. По умолчанию — false.
shareProcessNamespace
boolean
Использовать общее пространство имён процессов для всех контейнеров в поде. Если этот параметр включён, контейнеры смогут просматривать процессы в других контейнерах того же пода и отправлять им сигналы, а первому процессу каждого контейнера не будет назначен PID 1. Одновременно задать HostPID и ShareProcessNamespace нельзя. Необязательный параметр. По умолчанию — false.
subdomain
string
Если поле задано, полное доменное имя узла Pod будет иметь вид "\.\.\.svc.\". Если поле не задано, у пода вообще не будет доменного имени.
terminationGracePeriodSeconds
integer
Необязательная продолжительность в секундах, необходимая поду для корректного завершения. Может быть уменьшена в запросе на удаление. Значение должно быть неотрицательным целым числом. Нулевое значение означает немедленную остановку с помощью сигнала kill (без возможности завершения работы). Если значение равно nil, вместо него будет использоваться период ожидания завершения по умолчанию. Период ожидания завершения — это время в секундах между отправкой сигналов завершения процессам, работающим в поде, и принудительной остановкой этих процессов сигналом kill. Укажите значение, превышающее ожидаемое время очистки для вашего процесса. По умолчанию — 30 секунд.
tolerations
Массив Toleration
Допуски пода, если они заданы.
topologySpreadConstraints
Массив TopologySpreadConstraint
стратегия исправления: объединение по ключу topologyKey
TopologySpreadConstraints описывает, как группа подов должна распределяться по доменам топологии. Планировщик будет размещать поды с соблюдением этих ограничений. Все ограничения topologySpreadConstraints применяются одновременно.
volumes
Массив Volume
стратегия исправления: объединение, сохранение ключей по ключу name
Список томов, которые могут быть подключены контейнерами, принадлежащими поду. Дополнительная информация: https://kubernetes.io/docs/concepts/storage/volumes

PodStatus

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

Поле Описание
allocatedResources
object
AllocatedResources — это общий объём запросов ресурсов, выделенный узлом для этого пода. Если запросы на уровне пода не заданы, здесь указывается общий объём запросов, суммированный по контейнерам в поде.
conditions
PodCondition array
стратегия исправления: слияние по ключу type
Текущее состояние службы пода. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
containerStatuses
ContainerStatus array
Состояния контейнеров в этом поде. Для каждого контейнера в поде в этом списке должно быть не более одного состояния, и все состояния должны относиться к контейнерам в поде. Однако это не проверяется. Если в списке есть состояние для несуществующего контейнера или в списке есть повторяющиеся имена, поведение различных компонентов Kubernetes не определено, и такие состояния могут быть проигнорированы. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
ephemeralContainerStatuses
ContainerStatus array
Состояния всех эфемерных контейнеров, запускавшихся в этом поде. Для каждого эфемерного контейнера в поде в этом списке должно быть не более одного состояния, и все состояния должны относиться к контейнерам в поде. Однако это не проверяется. Если в списке есть состояние для несуществующего контейнера или в списке есть повторяющиеся имена, поведение различных компонентов Kubernetes не определено, и такие состояния могут быть проигнорированы. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
extendedResourceClaimStatus
PodExtendedResourceClaimStatus
Состояние запроса расширенного ресурса, предоставляемого посредством DRA.
hostIP
string
hostIP содержит IP-адрес узла, которому назначен под. Пустое значение, если под ещё не запущен. Под может быть назначен узлу, на котором возникла проблема с kubelet; в этом случае HostIP не будет обновлён, даже если узел назначен поду.
hostIPs
HostIP array
стратегия исправления: слияние по ключу ip
hostIPs содержит IP-адреса, выделенные узлу. Если это поле задано, первая запись должна совпадать со значением поля hostIP. Если под ещё не запущен, список пуст. Под может быть назначен узлу, на котором возникла проблема с kubelet; в этом случае HostIPs не будет обновлён, даже если узел назначен этому поду.
initContainerStatuses
ContainerStatus array
Состояния init-контейнеров в этом поде. Последний успешно завершившийся init-контейнер, который не перезапускается, будет иметь значение ready = true; у последнего запущенного контейнера будет задано startTime. Для каждого init-контейнера в поде в этом списке должно быть не более одного состояния, и все состояния должны относиться к контейнерам в поде. Однако это не проверяется. Если в списке есть состояние для несуществующего контейнера или в списке есть повторяющиеся имена, поведение различных компонентов Kubernetes не определено, и такие состояния могут быть проигнорированы. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status
message
string
Понятное человеку сообщение с подробной информацией о причине, по которой под находится в этом состоянии.
nodeAllocatableResourceClaimStatuses
NodeAllocatableResourceClaimStatus array
NodeAllocatableResourceClaimStatuses содержит состояния ресурсов, доступных для выделения узлом, которые были выделены этому поду с помощью запросов DRA. Сюда входят ресурсы, сведения о которых в данный момент представлены в v1.Node `status.allocatable` и которые не являются расширенными ресурсами (см. https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#extended-resources). Например, "cpu", "memory", "ephemeral-storage" и hugepages.
nominatedNodeName
string
nominatedNodeName задаётся только в том случае, когда этот под вытесняет другие поды с узла, но не может быть запланирован немедленно, поскольку для жертв вытеснения предусмотрен период корректного завершения. Это поле не гарантирует, что под будет запланирован на этом узле. Планировщик может решить разместить под в другом месте, если другие узлы станут доступны раньше. Планировщик также может решить выделить ресурсы этого узла поду с более высоким приоритетом, созданному после вытеснения. В результате после планирования пода это поле может отличаться от PodSpec.nodeName.
observedGeneration
integer
Если задано, это значение .metadata.generation, на основании которого было установлено состояние пода. Для использования этого поля необходимо включить функциональный переключатель PodObservedGenerationTracking.
phase
string
Фаза пода — это краткая сводка высокого уровня о том, на каком этапе жизненного цикла находится под. Массив conditions, поля reason и message, а также отдельные массивы состояний контейнеров содержат более подробную информацию о состоянии пода. Возможны пять значений фазы: Pending: под принят системой Kubernetes, но образ одного или нескольких контейнеров ещё не создан. Сюда входит время до планирования пода, а также время загрузки образов по сети, которая может занять некоторое время. Running: под привязан к узлу, и все контейнеры созданы. По крайней мере один контейнер всё ещё работает либо запускается или перезапускается. Succeeded: все контейнеры в поде завершились успешно и не будут перезапущены. Failed: все контейнеры в поде завершились, и как минимум один контейнер завершился с ошибкой. Контейнер либо завершился с ненулевым кодом состояния, либо был остановлен системой. Unknown: по какой-либо причине состояние пода не удалось получить, обычно из-за ошибки связи с узлом, на котором запущен под. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase

Возможные значения перечисления:
- `"Failed"` означает, что все контейнеры в поде завершились и как минимум один контейнер завершился с ошибкой (вышел с ненулевым кодом завершения или был остановлен системой).
- `"Pending"` означает, что под принят системой, но один или несколько контейнеров ещё не запущены. Сюда входит время до привязки пода к узлу, а также время загрузки образов на узел.
- `"Running"` означает, что под привязан к узлу и все контейнеры запущены. По крайней мере один контейнер всё ещё работает или перезапускается.
- `"Succeeded"` означает, что все контейнеры в поде завершились самостоятельно с кодом выхода 0 и система не будет перезапускать ни один из этих контейнеров.
- `"Unknown"` означает, что по какой-либо причине состояние пода не удалось получить, обычно из-за ошибки связи с узлом, на котором запущен под. Устарело: с 2015 года это значение не устанавливается (74da3b14b0c0f658b3bb8d2def5094686d0e9095)
podIP
string
IP-адрес podIP, выделенный поду. Маршрутизируем как минимум внутри кластера. Пустое значение, если адрес ещё не выделен.
podIPs
PodIP array
стратегия исправления: слияние по ключу ip
podIPs содержит IP-адреса, выделенные поду. Если это поле задано, запись с индексом 0 должна совпадать со значением поля podIP. Подам может быть выделено не более одного адреса IPv4 и одного адреса IPv6. Если IP-адреса ещё не выделены, список пуст.
qosClass
string
Классификация качества обслуживания (QOS), назначенная поду на основании требований к ресурсам. Доступные классы QOS см. в типе PodQOSClass. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes

Возможные значения перечисления:
- `"BestEffort"` — класс QOS BestEffort.
- `"Burstable"` — класс QOS Burstable.
- `"Guaranteed"` — класс QOS Guaranteed.
reason
string
Краткое сообщение в CamelCase с подробной информацией о причине, по которой под находится в этом состоянии. Например, 'Evicted'
resize
string
Состояние изменения размера ресурсов, запрошенного для контейнеров пода. Пустое значение, если изменение размера ресурсов не ожидается. Любые изменения ресурсов контейнера автоматически устанавливают значение "Proposed". Устарело: состояние изменения размера перенесено в два условия пода — PodResizePending и PodResizeInProgress. PodResizePending отслеживает состояния, в которых спецификация уже изменена, но Kubelet ещё не выделил ресурсы. PodResizeInProgress отслеживает выполняющиеся изменения размера и должно присутствовать, когда выделенные ресурсы не равны подтверждённым ресурсам.
resourceClaimStatuses
PodResourceClaimStatus array
стратегия исправления: слияние с сохранением ключей по ключу name
Состояние запросов ресурсов.
resources
ResourceRequirements
Resources — это запросы и ограничения вычислительных ресурсов, применённые на уровне пода, если в PodSpec.Resources заданы запросы или ограничения на уровне пода.
startTime
Time
Дата и время в формате RFC 3339, когда объект был подтверждён Kubelet. Это происходит до того, как Kubelet загрузит образы контейнеров для пода.

PodList

PodList — это список подов.

Поле Описание
apiVersion
string
APIVersion определяет версию схемы этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее представление и могут отклонять нераспознанные значения. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
items *
Pod array
Список подов. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md
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

Affinity

Affinity — это набор правил планирования с учётом аффинности.

Поле Описание
nodeAffinity
NodeAffinity
Описывает правила планирования пода с учётом аффинности к узлам.
podAffinity
PodAffinity
Описывает правила планирования пода с учётом аффинности к другим подам (например, размещение этого пода на том же узле, в той же зоне и т. д., что и другие поды).
podAntiAffinity
PodAntiAffinity
Описывает правила планирования пода с учётом антиаффинности к другим подам (например, запрет размещать этот под на том же узле, в той же зоне и т. д., что и другие поды).

AppArmorProfile

AppArmorProfile определяет настройки AppArmor для пода или контейнера.

Поле Описание
localhostProfile
string
localhostProfile указывает профиль, загруженный на узле, который следует использовать. Для работы профиль должен быть предварительно настроен на узле. Должен соответствовать имени загруженного профиля. Должен быть задан тогда и только тогда, когда type имеет значение "Localhost".
type *
string
type указывает, какой профиль AppArmor будет применён. Допустимые варианты: Localhost — профиль, предварительно загруженный на узел. RuntimeDefault — профиль AppArmor по умолчанию для среды выполнения контейнеров. Unconfined — принудительное применение AppArmor отключено.

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

AzureFileVolumeSource

AzureFile представляет подключение Azure File Service на узле и привязку этого подключения к поду.

Поле Описание
readOnly
boolean
readOnly по умолчанию имеет значение false (чтение/запись). Значение ReadOnly здесь принудительно задаёт настройку ReadOnly в VolumeMounts.
secretName *
string
secretName — имя секрета, содержащего имя и ключ учётной записи Azure Storage.
shareName *
string
shareName — имя общего ресурса Azure.

CSIVolumeSource

Представляет исходное расположение тома для подключения, управляемого внешним драйвером CSI.

Поле Описание
driver *
string
driver — имя драйвера CSI, обслуживающего этот том. Уточните у администратора правильное имя, зарегистрированное в кластере.
fsType
string
fsType — тип файловой системы для подключения. Например, "ext4", "xfs", "ntfs". Если значение не указано, драйверу CSI передаётся пустое значение, и он определяет файловую систему по умолчанию.
nodePublishSecretRef
LocalObjectReference
nodePublishSecretRef — ссылка на объект секрета, содержащий конфиденциальные данные, которые передаются драйверу CSI для выполнения вызовов CSI NodePublishVolume и NodeUnpublishVolume. Это поле необязательное и может быть пустым, если секрет не требуется. Если объект секрета содержит несколько секретов, передаются ссылки на все из них.
readOnly
boolean
readOnly задаёт конфигурацию тома только для чтения. По умолчанию имеет значение false (чтение/запись).
volumeAttributes
object
volumeAttributes содержит свойства, специфичные для драйвера, которые передаются драйверу CSI. Поддерживаемые значения см. в документации драйвера.

Capabilities

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

Поле Описание
add
string array
Добавленные возможности
drop
string array
Удалённые возможности

CephFSVolumeSource

Представляет подключение файловой системы Ceph, существующее в течение всего времени жизни пода. Тома Cephfs не поддерживают управление владельцами и переназначение меток SELinux.

Поле Описание
monitors *
string array
monitors — обязательное поле: список мониторов Ceph. Дополнительная информация: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
path
string
path — необязательное поле: используется в качестве корня подключённой файловой системы вместо полного дерева Ceph; по умолчанию — /
readOnly
boolean
readOnly — необязательное поле: по умолчанию имеет значение false (чтение/запись). Значение ReadOnly здесь принудительно задаёт настройку ReadOnly в VolumeMounts. Дополнительная информация: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
secretFile
string
secretFile — необязательное поле: SecretFile — путь к кольцу ключей пользователя; по умолчанию — /etc/ceph/user.secret. Дополнительная информация: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
secretRef
LocalObjectReference
secretRef — необязательное поле: SecretRef — ссылка на секрет аутентификации пользователя; по умолчанию пусто. Дополнительная информация: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it
user
string
user — необязательное поле: User — имя пользователя rados; по умолчанию — admin. Дополнительная информация: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

CinderVolumeSource

Представляет ресурс тома Cinder в OpenStack. Том Cinder должен существовать до его подключения к контейнеру. Том также должен находиться в том же регионе, что и kubelet. Тома Cinder поддерживают управление владельцами и переназначение меток SELinux.

Поле Описание
fsType
string
fsType — тип файловой системы для подключения. Должен быть типом файловой системы, поддерживаемым операционной системой узла. Примеры: "ext4", "xfs", "ntfs". Если значение не указано, предполагается "ext4". Дополнительная информация: https://examples.k8s.io/mysql-cinder-pd/README.md
readOnly
boolean
readOnly по умолчанию имеет значение false (чтение/запись). Значение ReadOnly здесь принудительно задаёт настройку ReadOnly в VolumeMounts. Дополнительная информация: https://examples.k8s.io/mysql-cinder-pd/README.md
secretRef
LocalObjectReference
secretRef — необязательное поле: указывает на объект секрета, содержащий параметры для подключения к OpenStack.
volumeID *
string
volumeID используется для идентификации тома в Cinder. Дополнительная информация: https://examples.k8s.io/mysql-cinder-pd/README.md

ClusterTrustBundleProjection

ClusterTrustBundleProjection описывает, как выбрать набор объектов ClusterTrustBundle и проецировать их содержимое в файловую систему пода.

Поле Описание
labelSelector
LabelSelector
Выбрать все ClusterTrustBundle, соответствующие этому селектору меток. Действует только в том случае, если задан signerName. Не может использоваться одновременно с name. Если значение не задано, интерпретируется как «ничего не соответствует». Если задано, но пусто, интерпретируется как «соответствует всему».
name
string
Выбрать один ClusterTrustBundle по имени объекта. Не может использоваться одновременно с signerName и labelSelector.
optional
boolean
Если значение true, запуск пода не блокируется, если указанные ClusterTrustBundle недоступны. При использовании name указанный ClusterTrustBundle может не существовать. При использовании signerName сочетание signerName и labelSelector может не соответствовать ни одному ClusterTrustBundle.
path *
string
Относительный путь от корня тома, по которому следует записать пакет.
signerName
string
Выбрать все ClusterTrustBundle, соответствующие этому имени подписанта. Не может использоваться одновременно с name. Содержимое всех выбранных ClusterTrustBundle объединяется, а дубликаты удаляются.

ConfigMapEnvSource

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

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

Поле Описание
name
string
Имя целевого объекта. Это поле фактически обязательно, но для обратной совместимости допускается пустое значение. Экземпляры этого типа с пустым значением в данном поле почти наверняка ошибочны. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
optional
boolean
Указывает, должен ли быть определён ConfigMap.

ConfigMapKeySelector

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

Поле Описание
key *
string
Выбираемый ключ.
name
string
Имя целевого объекта. Это поле фактически обязательно, но для обратной совместимости допускается пустое значение. Экземпляры этого типа с пустым значением в данном поле почти наверняка ошибочны. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
optional
boolean
Указывает, должен ли быть определён ConfigMap или его ключ.

ConfigMapProjection

Представляет ConfigMap в виде проецируемого тома.

Содержимое поля Data целевого ConfigMap будет представлено в проецируемом томе в виде файлов: ключи поля Data используются как имена файлов, если только элемент items не заполнен явными сопоставлениями ключей и путей. Обратите внимание, что это аналогично источнику тома configmap, но без режима по умолчанию.

Поле Описание
items
KeyToPath array
Если items не задан, каждая пара «ключ-значение» из поля Data указанного ConfigMap проецируется в том как файл, имя которого совпадает с ключом, а содержимое — со значением. Если items задан, перечисленные ключи проецируются по указанным путям, а неперечисленные ключи отсутствуют. Если указан ключ, которого нет в ConfigMap, настройка тома завершится ошибкой, если только этот ключ не помечен как необязательный. Пути должны быть относительными и не могут содержать путь '..' или начинаться с '..'.
name
string
Имя целевого объекта. Это поле фактически обязательно, но для обратной совместимости допускается пустое значение. Экземпляры этого типа с пустым значением в данном поле почти наверняка ошибочны. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
optional
boolean
optional указывает, должен ли быть определён ConfigMap или его ключи.

ConfigMapVolumeSource

Представляет ConfigMap в виде тома.

Содержимое поля Data целевого ConfigMap будет представлено в томе в виде файлов: ключи поля Data используются как имена файлов, если только элемент items не заполнен явными сопоставлениями ключей и путей. Тома ConfigMap поддерживают управление владельцами и переназначение меток SELinux.

Поле Описание
defaultMode
integer
defaultMode — необязательное поле: биты режима, используемые по умолчанию для установки разрешений на созданные файлы. Должно быть восьмеричным значением от 0000 до 0777 или десятичным значением от 0 до 511. YAML допускает как восьмеричные, так и десятичные значения, а JSON требует десятичные значения для битов режима. По умолчанию — 0644. На каталоги внутри пути эта настройка не влияет. Она может конфликтовать с другими параметрами, влияющими на режим файлов, например fsGroup; в результате могут быть установлены другие биты режима.
items
KeyToPath array
Если items не задан, каждая пара «ключ-значение» из поля Data указанного ConfigMap проецируется в том как файл, имя которого совпадает с ключом, а содержимое — со значением. Если items задан, перечисленные ключи проецируются по указанным путям, а неперечисленные ключи отсутствуют. Если указан ключ, которого нет в ConfigMap, настройка тома завершится ошибкой, если только этот ключ не помечен как необязательный. Пути должны быть относительными и не могут содержать путь '..' или начинаться с '..'.
name
string
Имя целевого объекта. Это поле фактически обязательно, но для обратной совместимости допускается пустое значение. Экземпляры этого типа с пустым значением в данном поле почти наверняка ошибочны. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
optional
boolean
optional указывает, должен ли быть определён ConfigMap или его ключи.

Container

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

Поле Описание
args
string array
Аргументы для точки входа. Если это поле не указано, используется 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
command
string array
Массив точки входа. Не выполняется в оболочке. Если это поле не указано, используется 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
env
EnvVar array
стратегия patch: объединение по ключу name
Список переменных окружения, задаваемых в контейнере. Поле нельзя обновить.
envFrom
EnvFromSource array
Список источников для заполнения переменных окружения контейнера. Ключи, определённые в источнике, могут состоять из любых печатных символов ASCII, кроме '='. Если ключ присутствует в нескольких источниках, приоритет имеет значение из последнего источника. Значения, заданные в Env с дублирующимся ключом, имеют приоритет. Поле нельзя обновить.
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

Возможные значения перечисления:
- `"Always"` означает, что kubelet всегда пытается загрузить последнюю версию образа. Если загрузка не удастся, контейнер завершится с ошибкой.
- `"IfNotPresent"` означает, что kubelet загружает образ, только если его нет на диске. Если образ отсутствует и загрузка не удастся, контейнер завершится с ошибкой.
- `"Never"` означает, что kubelet никогда не загружает образ, а использует только локальный образ. Если образ отсутствует, контейнер завершится с ошибкой
lifecycle
Lifecycle
Действия, которые система управления должна выполнять в ответ на события жизненного цикла контейнера. Поле нельзя обновить.
livenessProbe
Probe
Периодическая проверка работоспособности контейнера. Если проверка завершится неудачей, контейнер будет перезапущен. Поле нельзя обновить. Подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
name *
string
Имя контейнера, заданное в формате DNS_LABEL. Каждый контейнер в поде должен иметь уникальное имя (DNS_LABEL). Поле нельзя обновить.
ports
ContainerPort array
стратегия patch: объединение по ключу containerPort
Список портов, доступных извне контейнера. Если порт здесь не указан, это НЕ препятствует его доступности. Любой порт, прослушиваемый внутри контейнера по адресу по умолчанию "0.0.0.0", будет доступен из сети. Изменение этого массива с помощью стратегического патча слияния может привести к повреждению данных. Подробнее см. https://github.com/kubernetes/kubernetes/issues/108255. Поле нельзя обновить.
readinessProbe
Probe
Периодическая проверка готовности службы контейнера. Если проверка завершится неудачей, контейнер будет удалён из конечных точек службы. Поле нельзя обновить. Подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
resizePolicy
ContainerResizePolicy array
Политика изменения размера ресурсов контейнера. Это поле нельзя задавать для эфемерных контейнеров.
resources
ResourceRequirements
Вычислительные ресурсы, необходимые этому контейнеру. Поле нельзя обновить. Подробнее: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
restartPolicy
string
RestartPolicy определяет поведение при перезапуске отдельных контейнеров в поде. Эта настройка переопределяет политику перезапуска на уровне пода. Если это поле не указано, поведение при перезапуске определяется политикой перезапуска пода и типом контейнера. Кроме того, установка RestartPolicy в значение "Always" для init-контейнера приводит к следующему: этот init-контейнер будет непрерывно перезапускаться после завершения работы, пока не завершат работу все обычные контейнеры. После завершения работы всех обычных контейнеров будут остановлены все init-контейнеры с restartPolicy "Always". Этот жизненный цикл отличается от жизненного цикла обычных init-контейнеров; такие контейнеры часто называют контейнерами «sidecar». Хотя этот init-контейнер по-прежнему запускается в последовательности init-контейнеров, он не ожидает завершения своей работы перед переходом к следующему init-контейнеру. Вместо этого следующий init-контейнер запускается сразу после запуска этого init-контейнера или после успешного завершения любой startupProbe.
restartPolicyRules
ContainerRestartRule array
Список правил, которые проверяются для определения необходимости перезапуска контейнера после завершения работы. Правила проверяются по порядку. После совпадения правила с условием завершения контейнера остальные правила игнорируются. Если ни одно правило не совпадает с условием завершения контейнера, необходимость перезапуска определяется политикой перезапуска на уровне контейнера. Ограничения для правил: - Допускается не более 20 правил. - Правила могут иметь одинаковое действие. - Проверка не запрещает идентичные правила. Если заданы правила, для контейнера ОБЯЗАТЕЛЬНО нужно явно задать RestartPolicy, даже если она совпадает с RestartPolicy пода.
securityContext
SecurityContext
SecurityContext определяет параметры безопасности, с которыми должен работать контейнер. Если это поле задано, значения его полей переопределяют соответствующие поля PodSecurityContext. Подробнее: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
startupProbe
Probe
StartupProbe указывает, что инициализация пода успешно завершена. Если это поле задано, никакие другие проверки не выполняются, пока эта проверка не завершится успешно. Если эта проверка завершится неудачей, под будет перезапущен, как и в случае сбоя livenessProbe. Это позволяет задавать параметры проверки в начале жизненного цикла пода, когда загрузка данных или прогрев кэша может занять много времени, отличающиеся от параметров при стабильной работе. Это поле нельзя обновить. Подробнее: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
stdin
boolean
Указывает, должен ли контейнер выделить буфер для stdin в среде выполнения контейнеров. Если это поле не задано, чтение из stdin контейнера всегда будет приводить к EOF. По умолчанию — false.
stdinOnce
boolean
Указывает, должна ли среда выполнения контейнеров закрыть канал stdin после его открытия одним подключением. Если stdin имеет значение true, поток stdin останется открытым для нескольких сеансов подключения. Если stdinOnce имеет значение true, stdin открывается при запуске контейнера и остаётся пустым до первого подключения клиента к stdin; затем он остаётся открытым и принимает данные, пока клиент не отключится. После этого stdin закрывается и остаётся закрытым до перезапуска контейнера. Если этот флаг имеет значение false, процесс контейнера, читающий данные из stdin, никогда не получит EOF. По умолчанию — false
terminationMessagePath
string
Необязательно: путь в файловой системе контейнера, куда подключается файл для записи сообщения о завершении контейнера. Предполагается, что записываемое сообщение будет кратким итоговым статусом, например сообщением об ошибке утверждения. Если размер сообщения превышает 4096 байт, узел обрежет его. Общая длина сообщений для всех контейнеров ограничена 12 КБ. По умолчанию — /dev/termination-log. Поле нельзя обновить.
terminationMessagePolicy
string
Указывает, как следует заполнять сообщение о завершении. При значении File для сообщения о статусе контейнера при успешном завершении и при ошибке будет использоваться содержимое terminationMessagePath. При значении FallbackToLogsOnError, если файл сообщения о завершении пуст, а контейнер завершился с ошибкой, будет использована последняя часть вывода журнала контейнера. Объём вывода журнала ограничен 2048 байтами или 80 строками — в зависимости от того, что меньше. По умолчанию — File. Поле нельзя обновить.

Возможные значения перечисления:
- `"FallbackToLogsOnError"`: при завершении контейнера с ошибкой и отсутствии содержимого в terminationMessagePath для сообщения о статусе контейнера будет прочитано последнее содержимое журнала контейнера.
- `"File"` — поведение по умолчанию: при завершении контейнера сообщение о статусе контейнера будет содержать данные из terminationMessagePath контейнера.
tty
boolean
Указывает, должен ли контейнер выделить для себя TTY; для этого также требуется, чтобы значение 'stdin' было true. По умолчанию — false.
volumeDevices
VolumeDevice array
стратегия patch: объединение по ключу devicePath
volumeDevices — список блочных устройств, используемых контейнером.
volumeMounts
VolumeMount array
стратегия patch: объединение по ключу mountPath
Тома пода, подключаемые к файловой системе контейнера. Поле нельзя обновить.
workingDir
string
Рабочий каталог контейнера. Если он не указан, будет использоваться значение по умолчанию среды выполнения контейнеров, которое может быть задано в образе контейнера. Поле нельзя обновить.

ContainerExtendedResourceRequest

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

Поле Описание
containerName *
string
Имя контейнера, запрашивающего ресурсы.
requestName *
string
Имя запроса в специальном ResourceClaim, соответствующего расширенному ресурсу.
resourceName *
string
Имя расширенного ресурса в этом контейнере, обеспечиваемого DRA.

ContainerPort

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

Поле Описание
containerPort *
integer
Номер порта, открываемого на IP-адресе пода. Это должен быть допустимый номер порта: 0 \< x \< 65536.
hostIP
string
IP-адрес узла, к которому привязывается внешний порт.
hostPort
integer
Номер порта, открываемого на узле. Если он указан, это должен быть допустимый номер порта: 0 \< x \< 65536. Если задан HostNetwork, это значение должно совпадать с ContainerPort. Большинству контейнеров это поле не требуется.
name
string
Если указано, значение должно быть IANA_SVC_NAME и быть уникальным в пределах пода. Каждый именованный порт в поде должен иметь уникальное имя. Имя порта, на которое могут ссылаться службы.
protocol
string
Протокол порта. Должен быть UDP, TCP или SCTP. По умолчанию — "TCP".

Возможные значения перечисления:
- `"SCTP"` — протокол SCTP.
- `"TCP"` — протокол TCP.
- `"UDP"` — протокол UDP.

ContainerResizePolicy

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

Поле Описание
resourceName *
string
Имя ресурса, к которому применяется эта политика изменения размера. Поддерживаемые значения: cpu, memory.
restartPolicy *
string
Политика перезапуска, применяемая при изменении размера указанного ресурса. Если она не задана, по умолчанию используется NotRequired.

ContainerRestartRule

ContainerRestartRule описывает обработку завершения работы контейнера.

Поле Описание
action *
string
Действие, выполняемое при завершении работы контейнера, если выполнены заданные условия. Единственное возможное значение — "Restart", означающее перезапуск контейнера.
exitCodes
ContainerRestartRuleOnExitCodes
Коды завершения, проверяемые при завершении работы контейнера.

ContainerRestartRuleOnExitCodes

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

Поле Описание
operator *
string
Задаёт отношение между кодом (кодами) завершения контейнера и указанными значениями. Возможные значения: - In: условие выполнено, если код завершения контейнера входит в набор указанных значений. - NotIn: условие выполнено, если код завершения контейнера не входит в набор указанных значений.
values
integer array
Задаёт набор значений для проверки кодов завершения контейнера. Допускается не более 255 элементов.

ContainerState

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

Поле Описание
running
ContainerStateRunning
Сведения о работающем контейнере
terminated
ContainerStateTerminated
Сведения о завершившем работу контейнере
waiting
ContainerStateWaiting
Сведения о контейнере в ожидании

ContainerStateRunning

ContainerStateRunning — состояние работающего контейнера.

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

ContainerStateTerminated

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

Поле Описание
containerID
string
Идентификатор контейнера в формате '\://\'
exitCode *
integer
Код завершения последнего завершения работы контейнера
finishedAt
Time
Время последнего завершения работы контейнера
message
string
Сообщение о последнем завершении работы контейнера
reason
string
Краткая причина последнего завершения работы контейнера
signal
integer
Сигнал при последнем завершении работы контейнера
startedAt
Time
Время начала предыдущего запуска контейнера

ContainerStateWaiting

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

Поле Описание
message
string
Сообщение с указанием причины, по которой контейнер ещё не запущен.
reason
string
Краткая причина, по которой контейнер ещё не запущен.

ContainerUser

ContainerUser представляет сведения об идентификаторе пользователя

Поле Описание
linux
LinuxContainerUser
Linux содержит сведения об идентификаторе пользователя, изначально назначенном первому процессу контейнера в Linux. Обратите внимание: фактический идентификатор работающего процесса может измениться, если у процесса достаточно прав.

DownwardAPIProjection

Представляет сведения Downward API для проецирования в проецируемый том. Обратите внимание: это аналог источника тома downwardAPI без режима по умолчанию.

Поле Описание
items
DownwardAPIVolumeFile array
Items — список файлов DownwardAPIVolume

DownwardAPIVolumeFile

DownwardAPIVolumeFile содержит сведения для создания файла с данными о поле пода

Поле Описание
fieldRef
ObjectFieldSelector
Обязательно: выбирает поле пода; поддерживаются только annotations, labels, name, namespace и uid.
mode
integer
Необязательно: биты режима, используемые для задания прав доступа к этому файлу. Значение должно быть восьмеричным числом от 0000 до 0777 или десятичным числом от 0 до 511. YAML допускает восьмеричные и десятичные значения, а JSON требует десятичные значения для битов режима. Если значение не указано, используется значение volume defaultMode. Оно может конфликтовать с другими параметрами, влияющими на режим файла, например fsGroup; в результате могут быть установлены другие биты режима.
path *
string
Обязательно: Path — относительный путь к создаваемому файлу. Путь не должен быть абсолютным или содержать '..'. Он должен быть закодирован в UTF-8. Первый компонент относительного пути не должен начинаться с '..'
resourceFieldRef
ResourceFieldSelector
Выбирает ресурс контейнера; в настоящее время поддерживаются только ограничения и запросы ресурсов (limits.cpu, limits.memory, requests.cpu и requests.memory).

DownwardAPIVolumeSource

DownwardAPIVolumeSource представляет том, содержащий сведения Downward API. Тома Downward API поддерживают управление владельцами и перемаркировку SELinux.

Поле Описание
defaultMode
integer
Необязательно: биты режима, используемые по умолчанию для создаваемых файлов. Необязательно: биты режима, используемые по умолчанию для задания прав доступа к создаваемым файлам. Значение должно быть восьмеричным числом от 0000 до 0777 или десятичным числом от 0 до 511. YAML допускает восьмеричные и десятичные значения, а JSON требует десятичные значения для битов режима. По умолчанию — 0644. Этот параметр не влияет на каталоги внутри пути. Он может конфликтовать с другими параметрами, влияющими на режим файла, например fsGroup; в результате могут быть установлены другие биты режима.
items
DownwardAPIVolumeFile array
Items — список файлов тома downward API

EmptyDirVolumeSource

Представляет пустой каталог для пода. Тома с пустым каталогом поддерживают управление владельцами и перемаркировку SELinux.

Поле Описание
medium
string
medium задаёт тип носителя, на котором должен располагаться этот каталог. По умолчанию используется "", то есть носитель по умолчанию на узле. Допускается пустая строка (значение по умолчанию) или Memory. Подробнее: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
sizeLimit
Quantity
sizeLimit — общий объём локального хранилища, необходимый для этого тома EmptyDir. Ограничение размера также применяется к носителю Memory. Максимальное использование тома EmptyDir на носителе Memory будет равняться меньшему из двух значений: SizeLimit, указанному здесь, и сумме ограничений памяти всех контейнеров в поде. По умолчанию используется nil, то есть ограничение не задано. Подробнее: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

EnvFromSource

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

Поле Описание
configMapRef
ConfigMapEnvSource
ConfigMap, из которого выбираются значения
prefix
string
Необязательный текст, добавляемый в начало имени каждой переменной окружения. Может состоять из любых печатных символов ASCII, кроме '='.
secretRef
SecretEnvSource
Secret, из которого выбираются значения

EnvVar

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

Поле Описание
name *
string
Имя переменной окружения. Может состоять из любых печатных символов ASCII, кроме '='.
value
string
Ссылки на переменные $(VAR_NAME) раскрываются с использованием переменных окружения, ранее определённых в контейнере, а также переменных окружения службы. Если переменную не удаётся разрешить, ссылка в исходной строке остаётся без изменений. Двойные знаки $$ преобразуются в один знак $, что позволяет экранировать синтаксис $(VAR_NAME): например, "$$(VAR_NAME)" будет преобразовано в строковый литерал "$(VAR_NAME)". Экранированные ссылки никогда не раскрываются, независимо от того, существует ли переменная. По умолчанию используется "".
valueFrom
EnvVarSource
Источник значения переменной окружения. Нельзя использовать, если value не пусто.

EnvVarSource

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

Поле Описание
configMapKeyRef
ConfigMapKeySelector
Выбирает ключ ConfigMap.
fieldRef
ObjectFieldSelector
Выбирает поле пода: поддерживаются metadata.name, metadata.namespace, `metadata.labels['\']`, `metadata.annotations['\']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
fileKeyRef
FileKeySelector
FileKeyRef выбирает ключ файла окружения. Для этого необходимо включить функциональный переключатель EnvFiles.
resourceFieldRef
ResourceFieldSelector
Выбирает ресурс контейнера; в настоящее время поддерживаются только ограничения и запросы ресурсов (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory и requests.ephemeral-storage).
secretKeyRef
SecretKeySelector
Выбирает ключ Secret в пространстве имён пода

EphemeralContainer

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

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

Поле Описание
args
string array
Аргументы для точки входа. Если это значение не указано, используется 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
command
string array
Массив точки входа. Не выполняется в оболочке. Если это значение не указано, используется 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
env
Массив EnvVar
стратегия исправления: объединение по ключу name
Список переменных окружения, которые нужно установить в контейнере. Не может быть обновлено.
envFrom
Массив EnvFromSource
Список источников для заполнения переменных окружения в контейнере. Ключи, определённые в источнике, могут состоять из любых печатных символов ASCII, кроме '='. Если ключ присутствует в нескольких источниках, приоритет имеет значение из последнего источника. Значения, заданные в Env с дублирующимся ключом, имеют приоритет. Не может быть обновлено.
image
string
Имя образа контейнера. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images
imagePullPolicy
string
Политика загрузки образа. Одно из значений: Always, Never, IfNotPresent. По умолчанию используется Always, если указан тег :latest, в противном случае — IfNotPresent. Не может быть обновлено. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images#updating-images

Возможные значения перечисления:
- `"Always"` означает, что kubelet всегда пытается загрузить последний образ. Если загрузка завершается неудачей, контейнер не запустится.
- `"IfNotPresent"` означает, что kubelet загружает образ, если его нет на диске. Если образ отсутствует и загрузка завершается неудачей, контейнер не запустится.
- `"Never"` означает, что kubelet не загружает образ, а использует только локальный образ. Если образ отсутствует, контейнер не запустится.
lifecycle
Lifecycle
Для эфемерных контейнеров Lifecycle не допускается.
livenessProbe
Probe
Для эфемерных контейнеров пробы не допускаются.
name *
string
Имя эфемерного контейнера, заданное как DNS_LABEL. Это имя должно быть уникальным среди всех контейнеров, контейнеров инициализации и эфемерных контейнеров.
ports
Массив ContainerPort
стратегия исправления: объединение по ключу containerPort
Для эфемерных контейнеров порты не допускаются.
readinessProbe
Probe
Для эфемерных контейнеров пробы не допускаются.
resizePolicy
Массив ContainerResizePolicy
Политика изменения размера ресурсов контейнера.
resources
ResourceRequirements
Для эфемерных контейнеров ресурсы не допускаются. Эфемерные контейнеры используют свободные ресурсы, уже выделенные поду.
restartPolicy
string
Политика перезапуска контейнера для управления поведением перезапуска каждого контейнера в поде. Это поле нельзя задавать для эфемерных контейнеров.
restartPolicyRules
Массив ContainerRestartRule
Список правил, которые проверяются для определения необходимости перезапустить контейнер после завершения. Это поле нельзя задавать для эфемерных контейнеров.
securityContext
SecurityContext
Необязательно: SecurityContext задаёт параметры безопасности, с которыми должен запускаться эфемерный контейнер. Если поле задано, поля SecurityContext переопределяют соответствующие поля PodSecurityContext.
startupProbe
Probe
Для эфемерных контейнеров пробы не допускаются.
stdin
boolean
Указывает, должен ли этот контейнер выделить буфер для stdin в среде выполнения контейнеров. Если значение не задано, чтение из stdin в контейнере всегда будет приводить к EOF. По умолчанию — false.
stdinOnce
boolean
Указывает, должна ли среда выполнения контейнеров закрывать канал stdin после его открытия одним подключением. Если stdin имеет значение true, поток stdin останется открытым в нескольких сеансах подключения. Если stdinOnce имеет значение true, stdin открывается при запуске контейнера, остаётся пустым до первого подключения клиента к stdin, затем остаётся открытым и принимает данные до отключения клиента. После этого stdin закрывается и остаётся закрытым до перезапуска контейнера. Если этот флаг имеет значение false, процесс контейнера, считывающий данные из stdin, никогда не получит EOF. По умолчанию — false.
targetContainerName
string
Если задано, это имя контейнера из PodSpec, для которого предназначен данный эфемерный контейнер. Эфемерный контейнер будет запущен в пространствах имён (IPC, PID и т. д.) этого контейнера. Если значение не задано, эфемерный контейнер использует пространства имён, настроенные в спецификации Pod. Среда выполнения контейнеров должна поддерживать эту функцию. Если среда выполнения не поддерживает выбор целевых пространств имён, результат задания этого поля не определён.
terminationMessagePath
string
Необязательно: путь, по которому файл с сообщением о завершении контейнера подключается к файловой системе контейнера. Предполагается, что записанное сообщение будет кратким итоговым статусом, например сообщением об ошибке проверки утверждения. Если размер превышает 4096 байт, узел усечёт сообщение. Общая длина сообщений всех контейнеров ограничена 12 КБ. По умолчанию используется /dev/termination-log. Не может быть обновлено.
terminationMessagePolicy
string
Указывает, как должно формироваться сообщение о завершении. При значении File для заполнения сообщения о статусе контейнера как при успешном завершении, так и при ошибке используется содержимое terminationMessagePath. При значении FallbackToLogsOnError, если файл сообщения о завершении пуст и контейнер завершился с ошибкой, используется последняя часть журнала контейнера. Объём вывода журнала ограничен 2048 байтами или 80 строками — в зависимости от того, что меньше. По умолчанию используется File. Не может быть обновлено.

Возможные значения перечисления:
- `"FallbackToLogsOnError"` означает, что при завершении контейнера с ошибкой и отсутствии содержимого в terminationMessagePath в качестве сообщения о статусе контейнера будет использовано последнее содержимое журнала контейнера.
- `"File"` — поведение по умолчанию; при завершении контейнера в качестве сообщения о его статусе используется содержимое terminationMessagePath.
tty
boolean
Указывает, должен ли этот контейнер выделить для себя TTY; для этого также требуется, чтобы stdin имел значение true. По умолчанию — false.
volumeDevices
Массив VolumeDevice
стратегия исправления: объединение по ключу devicePath
volumeDevices — это список блочных устройств, которые должен использовать контейнер.
volumeMounts
Массив VolumeMount
стратегия исправления: объединение по ключу mountPath
Тома пода, подключаемые к файловой системе контейнера. Подключение подкаталогов не допускается для эфемерных контейнеров. Не может быть обновлено.
workingDir
string
Рабочий каталог контейнера. Если значение не задано, используется значение по умолчанию среды выполнения контейнеров, которое может быть настроено в образе контейнера. Не может быть обновлено.

EphemeralVolumeSource

Представляет эфемерный том, обслуживаемый обычным драйвером хранилища.

Поле Описание
volumeClaimTemplate
PersistentVolumeClaimTemplate
Будет использоваться для создания отдельного PVC, предназначенного для выделения тома. Владелец пода, в который встроен этот EphemeralVolumeSource, будет также владельцем PVC, то есть PVC будет удалён вместе с подом. Имя PVC будет `\-\`, где `\` — имя записи массива `PodSpec.Volumes`. Проверка пода отклонит его, если объединённое имя не соответствует требованиям к имени PVC (например, если оно слишком длинное). Существующий PVC с таким именем, не принадлежащий поду, *не* будет использоваться этим подом, чтобы случайно не подключить посторонний том. Запуск пода будет заблокирован до удаления постороннего PVC. Если предполагается использовать такой предварительно созданный PVC, после создания пода необходимо обновить PVC, добавив ссылку на владельца — под. Обычно это не требуется, но может пригодиться при ручном восстановлении неисправного кластера. Это поле доступно только для чтения; после создания PVC Kubernetes не будет вносить в него изменения. Обязательно, не должно иметь значение nil.

ExecAction

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

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

FileKeySelector

FileKeySelector выбирает ключ из файла окружения.

Поле Описание
key *
string
Ключ в файле окружения. Недопустимый ключ не позволит запустить под. Ключи, определённые в источнике, могут состоять из любых печатных символов ASCII, кроме '='. На этапе Alpha функции EnvFiles размер ключа ограничен 128 символами.
optional
boolean
Указывает, должен ли существовать файл или его ключ. Если файл или ключ не существует, переменная окружения не публикуется. Если для optional задано значение true, а указанный ключ не существует, переменная окружения не будет установлена в контейнерах Pod. Если для optional задано значение false, а указанный ключ не существует, при создании Pod будет возвращена ошибка.
path *
string
Путь в томе, по которому выбирается файл. Должен быть относительным и не должен содержать путь '..' или начинаться с '..'.
volumeName *
string
Имя подключения тома, содержащего файл окружения.

FlexVolumeSource

FlexVolume представляет универсальный ресурс тома, который выделяется или подключается с помощью плагина на основе exec.

Поле Описание
driver *
string
driver — имя драйвера, используемого для этого тома.
fsType
string
fsType — тип файловой системы для подключения. Должен быть типом файловой системы, поддерживаемым операционной системой узла. Например: "ext4", "xfs", "ntfs". Файловая система по умолчанию зависит от скрипта FlexVolume.
options
object
options — необязательно: это поле содержит дополнительные параметры команды, если они есть.
readOnly
boolean
readOnly — необязательно: по умолчанию false (чтение/запись). Значение ReadOnly здесь принудительно задаёт параметр ReadOnly в VolumeMounts.
secretRef
LocalObjectReference
secretRef — необязательно: secretRef является ссылкой на объект secret, содержащий конфиденциальные данные для передачи скриптам плагина. Значение может быть пустым, если объект secret не указан. Если объект secret содержит несколько секретов, все они передаются скриптам плагина.

GRPCAction

GRPCAction задаёт действие, связанное со службой GRPC.

Поле Описание
port *
integer
Номер порта службы gRPC. Число должно находиться в диапазоне от 1 до 65535.
service
string
Service — имя службы, указываемое в запросе gRPC HealthCheckRequest (см. https://github.com/grpc/grpc/blob/master/doc/health-checking.md). Если значение не указано, используется поведение gRPC по умолчанию.

GitRepoVolumeSource

Представляет том, заполненный содержимым репозитория git. Тома git-репозиториев не поддерживают управление владельцами. Тома git-репозиториев поддерживают перемаркировку SELinux.

УСТАРЕЛО: GitRepo устарел. Чтобы предоставить контейнеру git-репозиторий, подключите EmptyDir к InitContainer, который клонирует репозиторий с помощью git, а затем подключите EmptyDir к контейнеру Pod.

Поле Описание
directory
string
directory — имя целевого каталога. Не должно содержать '..' или начинаться с '..'. Если указано '.', каталогом тома будет git-репозиторий. В противном случае, если значение задано, том будет содержать git-репозиторий в подкаталоге с указанным именем.
repository *
string
repository — URL
revision
string
revision — хеш коммита для указанной ревизии.

GlusterfsVolumeSource

Представляет подключение Glusterfs, существующее в течение всего срока жизни пода. Тома Glusterfs не поддерживают управление владельцами или перемаркировку SELinux.

Поле Описание
endpoints *
string
endpoints — имя конечной точки, описывающей топологию Glusterfs.
path *
string
path — путь к тому Glusterfs. Дополнительная информация: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod
readOnly
boolean
Значение readOnly здесь принудительно подключает том Glusterfs с разрешениями только на чтение. По умолчанию — false. Дополнительная информация: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod

HTTPGetAction

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

Поле Описание
host
string
Имя узла для подключения; по умолчанию используется IP-адрес пода. Вероятно, вместо этого следует задать "Host" в httpHeaders.
httpHeaders
Массив HTTPHeader
Пользовательские заголовки запроса. HTTP допускает повторяющиеся заголовки.
path
string
Путь для доступа на HTTP-сервере.
port *
Имя или номер порта контейнера, к которому нужно обратиться. Число должно находиться в диапазоне от 1 до 65535. Имя должно соответствовать IANA_SVC_NAME.
scheme
string
Схема для подключения к узлу. По умолчанию используется HTTP.

Возможные значения перечисления:
- `"HTTP"` означает, что будет использоваться схема http://
- `"HTTPS"` означает, что будет использоваться схема https://

HTTPHeader

HTTPHeader описывает пользовательский заголовок для HTTP-проб.

Поле Описание
name *
string
Имя поля заголовка. При выводе оно будет приведено к канонической форме, поэтому варианты имени, различающиеся регистром, будут распознаны как один и тот же заголовок.
value *
string
Значение поля заголовка

HostAlias

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

Поле Описание
hostnames
string array
Имена узлов для указанного выше IP-адреса.
ip *
string
IP-адрес записи в файле hosts.

HostIP

HostIP представляет один IP-адрес, выделенный узлу.

Поле Описание
ip *
string
IP — IP-адрес, назначенный узлу

ISCSIVolumeSource

Представляет диск ISCSI. Тома ISCSI можно подключить для чтения и записи только один раз. Тома ISCSI поддерживают управление владельцами и перемаркировку SELinux.

Поле Описание
chapAuthDiscovery
boolean
chapAuthDiscovery определяет, поддерживается ли аутентификация CHAP при обнаружении iSCSI.
chapAuthSession
boolean
chapAuthSession определяет, поддерживается ли аутентификация CHAP для сеанса iSCSI.
fsType
string
fsType — тип файловой системы тома, который требуется подключить. Совет: убедитесь, что операционная система узла поддерживает этот тип файловой системы. Примеры: "ext4", "xfs", "ntfs". Если значение не указано, неявно используется "ext4". Дополнительная информация: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
initiatorName
string
initiatorName — пользовательское имя инициатора iSCSI. Если initiatorName одновременно задано вместе с iscsiInterface, для подключения будет создан новый интерфейс iSCSI \:\.
iqn *
string
iqn — квалифицированное имя целевого устройства iSCSI.
iscsiInterface
string
iscsiInterface — имя интерфейса, использующего транспорт iSCSI. По умолчанию используется 'default' (tcp).
lun *
integer
lun — номер LUN целевого устройства iSCSI.
portals
string array
portals — список порталов целевого устройства iSCSI. Портал задаётся IP-адресом или в формате ip_addr:port, если порт отличается от стандартного (обычно это TCP-порты 860 и 3260).
readOnly
boolean
Значение readOnly здесь принудительно задаёт параметр ReadOnly в VolumeMounts. По умолчанию — false.
secretRef
LocalObjectReference
secretRef — секрет CHAP для аутентификации целевого устройства и инициатора iSCSI.
targetPortal *
string
targetPortal — портал целевого устройства iSCSI. Портал задаётся IP-адресом или в формате ip_addr:port, если порт отличается от стандартного (обычно это TCP-порты 860 и 3260).

ImageVolumeSource

ImageVolumeSource представляет ресурс тома на основе образа.

Поле Описание
pullPolicy
string
Политика загрузки объектов OCI. Возможные значения: Always — kubelet всегда пытается загрузить ссылочный объект. Если загрузка завершается неудачей, создание контейнера не удастся. Never — kubelet не загружает ссылочный объект и использует только локальный образ или артефакт. Если ссылочный объект отсутствует, создание контейнера не удастся. IfNotPresent — kubelet загружает объект, если его ещё нет на диске. Если ссылочный объект отсутствует и загрузка завершается неудачей, создание контейнера не удастся. По умолчанию используется Always, если указан тег :latest, в противном случае — IfNotPresent.

Возможные значения перечисления:
- `"Always"` означает, что kubelet всегда пытается загрузить последний образ. Если загрузка завершается неудачей, контейнер не запустится.
- `"IfNotPresent"` означает, что kubelet загружает образ, если его нет на диске. Если образ отсутствует и загрузка завершается неудачей, контейнер не запустится.
- `"Never"` означает, что kubelet не загружает образ, а использует только локальный образ. Если образ отсутствует, контейнер не запустится.
reference
string
Обязательно: ссылка на образ или артефакт, который нужно использовать. Работает так же, как pod.spec.containers[*].image. Секреты для загрузки формируются так же, как и для образа контейнера: используются учётные данные узла, секреты SA для загрузки образов и секреты для загрузки образов из спецификации пода. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/images Это поле необязательно, чтобы системы управления конфигурацией более высокого уровня могли задавать значения по умолчанию или переопределять образы контейнеров в контроллерах рабочих нагрузок, таких как Deployments и StatefulSets.

ImageVolumeStatus

ImageVolumeStatus представляет состояние тома на основе образа.

Поле Описание
imageRef *
string
ImageRef — дайджест образа, используемого для этого тома. Его значение должно быть похоже на pod's status.containerStatuses[i].imageID. Длина ImageRef не должна превышать 256 символов.

KeyToPath

Сопоставляет строковый ключ с путём в томе.

Поле Описание
key *
string
key — ключ для проецирования.
mode
integer
mode — необязательно: биты режима доступа, используемые для задания разрешений на этот файл. Должно быть восьмеричным значением от 0000 до 0777 или десятичным значением от 0 до 511. YAML принимает восьмеричные и десятичные значения, JSON требует десятичные значения для битов режима доступа. Если значение не указано, используется defaultMode тома. Это может конфликтовать с другими параметрами, влияющими на режим доступа к файлу, например fsGroup; в результате могут быть установлены другие биты режима доступа.
path *
string
path — относительный путь к файлу, которому сопоставляется ключ. Не может быть абсолютным. Не может содержать элемент пути '..'. Не может начинаться со строки '..'.

Lifecycle

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

Поле Описание
postStart
LifecycleHandler
PostStart вызывается сразу после создания контейнера. Если обработчик завершается с ошибкой, контейнер останавливается и перезапускается в соответствии с политикой перезапуска. До завершения хука другие операции управления контейнером блокируются. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
preStop
LifecycleHandler
PreStop вызывается непосредственно перед завершением контейнера по запросу API или в результате события управления, такого как ошибка пробы liveness/startup, вытеснение, конкуренция за ресурсы и т. д. Обработчик не вызывается, если контейнер аварийно завершает работу или останавливается. Отсчёт периода ожидания завершения Pod начинается до выполнения хука PreStop. Независимо от результата работы обработчика контейнер в конечном итоге завершится в пределах периода ожидания завершения Pod (если только завершение не задерживается финализаторами). Другие операции управления контейнером блокируются до завершения хука или истечения периода ожидания завершения. Дополнительная информация: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
stopSignal
string
StopSignal задаёт сигнал, который будет отправлен контейнеру при его остановке. Если значение не указано, используется значение по умолчанию для используемой среды выполнения контейнеров. StopSignal можно задать только для подов с непустым значением .spec.os.name

Возможные значения перечисления:
- `"SIGABRT"`
- `"SIGALRM"`
- `"SIGBUS"`
- `"SIGCHLD"`
- `"SIGCLD"`
- `"SIGCONT"`
- `"SIGFPE"`
- `"SIGHUP"`
- `"SIGILL"`
- `"SIGINT"`
- `"SIGIO"`
- `"SIGIOT"`
- `"SIGKILL"`
- `"SIGPIPE"`
- `"SIGPOLL"`
- `"SIGPROF"`
- `"SIGPWR"`
- `"SIGQUIT"`
- `"SIGRTMAX"`
- `"SIGRTMAX-1"`
- `"SIGRTMAX-10"`
- `"SIGRTMAX-11"`
- `"SIGRTMAX-12"`
- `"SIGRTMAX-13"`
- `"SIGRTMAX-14"`
- `"SIGRTMAX-2"`
- `"SIGRTMAX-3"`
- `"SIGRTMAX-4"`
- `"SIGRTMAX-5"`
- `"SIGRTMAX-6"`
- `"SIGRTMAX-7"`
- `"SIGRTMAX-8"`
- `"SIGRTMAX-9"`
- `"SIGRTMIN"`
- `"SIGRTMIN+1"`
- `"SIGRTMIN+10"`
- `"SIGRTMIN+11"`
- `"SIGRTMIN+12"`
- `"SIGRTMIN+13"`
- `"SIGRTMIN+14"`
- `"SIGRTMIN+15"`
- `"SIGRTMIN+2"`
- `"SIGRTMIN+3"`
- `"SIGRTMIN+4"`
- `"SIGRTMIN+5"`
- `"SIGRTMIN+6"`
- `"SIGRTMIN+7"`
- `"SIGRTMIN+8"`
- `"SIGRTMIN+9"`
- `"SIGSEGV"`
- `"SIGSTKFLT"`
- `"SIGSTOP"`
- `"SIGSYS"`
- `"SIGTERM"`
- `"SIGTRAP"`
- `"SIGTSTP"`
- `"SIGTTIN"`
- `"SIGTTOU"`
- `"SIGURG"`
- `"SIGUSR1"`
- `"SIGUSR2"`
- `"SIGVTALRM"`
- `"SIGWINCH"`
- `"SIGXCPU"`
- `"SIGXFSZ"`

LifecycleHandler

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

Поле Описание
exec
ExecAction
Exec задаёт команду для выполнения в контейнере.
httpGet
HTTPGetAction
HTTPGet задаёт HTTP GET-запрос, который нужно выполнить.
sleep
SleepAction
Sleep задаёт период, в течение которого контейнер должен ожидать.
tcpSocket
TCPSocketAction
Устарело. TCPSocket НЕ поддерживается в качестве LifecycleHandler и сохранено для обратной совместимости. Проверка этого поля не выполняется, и при его указании хуки жизненного цикла завершатся с ошибкой во время выполнения.

LinuxContainerUser

LinuxContainerUser представляет сведения об идентификаторе пользователя в контейнерах Linux.

Поле Описание
gid *
integer
GID — основной gid, изначально назначенный первому процессу в контейнере.
supplementalGroups
integer array
SupplementalGroups — дополнительные группы, изначально назначенные первому процессу в контейнере.
uid *
integer
UID — основной uid, изначально назначенный первому процессу в контейнере.

NodeAffinity

Привязка к узлу — это набор правил планирования, задающих предпочтения для узлов.

Поле Описание
preferredDuringSchedulingIgnoredDuringExecution
PreferredSchedulingTerm array
Планировщик будет отдавать предпочтение размещению подов на узлах, удовлетворяющих выражениям affinity, указанным в этом поле, но может выбрать узел, нарушающий одно или несколько выражений. Наиболее предпочтительным является узел с наибольшей суммой весов. Иными словами, для каждого узла, удовлетворяющего всем требованиям планирования (запрос ресурсов, выражения affinity requiredDuringScheduling и т. д.), вычисляется сумма: планировщик перебирает элементы этого поля и добавляет к сумме «weight», если узел соответствует соответствующим matchExpressions. Узел или узлы с наибольшей суммой являются наиболее предпочтительными.
requiredDuringSchedulingIgnoredDuringExecution
NodeSelector
Если требования affinity, указанные в этом поле, не выполняются во время планирования, под не будет размещён на узле. Если требования affinity, указанные в этом поле, перестанут выполняться в какой-либо момент во время выполнения пода (например, из-за обновления), система может попытаться выселить под с узла, а может и не делать этого.

NodeAllocatableResourceClaimStatus

NodeAllocatableResourceClaimStatus описывает состояние ресурсов узла, доступных для выделения и выделенных через DRA.

Поле Описание
containers
string array
Containers содержит имена всех контейнеров в этом поде, ссылающихся на этот запрос.
resourceClaimName *
string
ResourceClaimName — это запрос ресурса, на который ссылается под и который привёл к выделению этого ресурса узла.
resources *
object
Resources — это карта, сопоставляющая имя ресурса узла с агрегированным количеством, выделенным для запроса.

ObjectFieldSelector

ObjectFieldSelector выбирает поле объекта, версия API которого указана явно.

Поле Описание
apiVersion
string
Версия схемы, в терминах которой задан FieldPath; по умолчанию — "v1".
fieldPath *
string
Путь к полю, выбираемому в указанной версии API.

PersistentVolumeClaimTemplate

PersistentVolumeClaimTemplate используется для создания объектов PersistentVolumeClaim в составе EphemeralVolumeSource.

Поле Описание
metadata
ObjectMeta
Может содержать метки и аннотации, которые будут скопированы в PVC при его создании. Никакие другие поля не допускаются; их наличие приведёт к ошибке проверки.
spec *
PersistentVolumeClaimSpec
Спецификация PersistentVolumeClaim. Всё содержимое без изменений копируется в PVC, созданный на основе этого шаблона. Здесь также допустимы те же поля, что и в PersistentVolumeClaim.

PersistentVolumeClaimVolumeSource

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

Поле Описание
claimName *
string
claimName — имя PersistentVolumeClaim в том же пространстве имён, что и использующий этот том под. Дополнительная информация: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
readOnly
boolean
readOnly принудительно устанавливает параметр ReadOnly в VolumeMounts. По умолчанию — false.

PodAffinity

Pod affinity — это набор правил планирования, определяющих взаимное размещение подов.

Поле Описание
preferredDuringSchedulingIgnoredDuringExecution
WeightedPodAffinityTerm array
Планировщик будет отдавать предпочтение размещению подов на узлах, удовлетворяющих выражениям affinity, указанным в этом поле, но может выбрать узел, нарушающий одно или несколько выражений. Наиболее предпочтительным является узел с наибольшей суммой весов. Иными словами, для каждого узла, удовлетворяющего всем требованиям планирования (запрос ресурсов, выражения affinity requiredDuringScheduling и т. д.), вычисляется сумма: планировщик перебирает элементы этого поля и добавляет к сумме «weight», если на узле есть поды, соответствующие соответствующему podAffinityTerm. Узел или узлы с наибольшей суммой являются наиболее предпочтительными.
requiredDuringSchedulingIgnoredDuringExecution
PodAffinityTerm array
Если требования affinity, указанные в этом поле, не выполняются во время планирования, под не будет размещён на узле. Если требования affinity, указанные в этом поле, перестанут выполняться в какой-либо момент во время выполнения пода (например, из-за обновления метки пода), система может попытаться выселить под с узла, а может и не делать этого. Если указано несколько элементов, списки узлов, соответствующие каждому podAffinityTerm, пересекаются, то есть должны выполняться все условия.

PodAffinityTerm

Определяет набор подов (а именно подов, соответствующих labelSelector в указанных пространствах имён), с которыми этот под должен размещаться совместно (affinity) или раздельно (anti-affinity). Совместное размещение означает, что под выполняется на узле, значение метки которого с ключом <topologyKey> совпадает со значением этой метки у любого узла, на котором выполняется под из указанного набора.

Поле Описание
labelSelector
LabelSelector
Запрос меток для набора ресурсов, в данном случае — подов. Если значение равно null, этот PodAffinityTerm не соответствует ни одному поду.
matchLabelKeys
string array
MatchLabelKeys — это набор ключей меток пода, используемых для выбора подов, которые следует учитывать. По этим ключам выполняется поиск значений во входящих метках пода; найденные пары «ключ-значение» объединяются с `labelSelector` в виде `key in (value)`, чтобы выбрать группу существующих подов, учитываемых при вычислении pod (anti) affinity входящего пода. Ключи, отсутствующие во входящих метках пода, игнорируются. По умолчанию — пустое значение. Один и тот же ключ не может одновременно присутствовать в matchLabelKeys и labelSelector. Кроме того, matchLabelKeys нельзя задавать, если labelSelector не задан.
mismatchLabelKeys
string array
MismatchLabelKeys — это набор ключей меток пода, используемых для выбора подов, которые следует учитывать. По этим ключам выполняется поиск значений во входящих метках пода; найденные пары «ключ-значение» объединяются с `labelSelector` в виде `key notin (value)`, чтобы выбрать группу существующих подов, учитываемых при вычислении pod (anti) affinity входящего пода. Ключи, отсутствующие во входящих метках пода, игнорируются. По умолчанию — пустое значение. Один и тот же ключ не может одновременно присутствовать в mismatchLabelKeys и labelSelector. Кроме того, mismatchLabelKeys нельзя задавать, если labelSelector не задан.
namespaceSelector
LabelSelector
Запрос меток для набора пространств имён, к которым применяется условие. Условие применяется к объединению пространств имён, выбранных этим полем, и пространств имён, перечисленных в поле namespaces. Селектор со значением null и список namespaces со значением null или без элементов означают «пространство имён этого пода». Пустой селектор ({}) соответствует всем пространствам имён.
namespaces
string array
namespaces задаёт статический список имён пространств имён, к которым применяется условие. Условие применяется к объединению пространств имён, перечисленных в этом поле, и пространств имён, выбранных с помощью namespaceSelector. Список namespaces со значением null или без элементов и namespaceSelector со значением null означают «пространство имён этого пода».
topologyKey *
string
Этот под должен размещаться совместно (affinity) или раздельно (anti-affinity) с подами, соответствующими labelSelector в указанных пространствах имён. Совместное размещение означает, что под выполняется на узле, значение метки которого с ключом topologyKey совпадает со значением этой метки у любого узла, на котором выполняется любой из выбранных подов. Пустое значение topologyKey не допускается.

PodAntiAffinity

Pod anti-affinity — это набор правил планирования, определяющих раздельное размещение подов.

Поле Описание
preferredDuringSchedulingIgnoredDuringExecution
WeightedPodAffinityTerm array
Планировщик будет отдавать предпочтение размещению подов на узлах, удовлетворяющих выражениям anti-affinity, указанным в этом поле, но может выбрать узел, нарушающий одно или несколько выражений. Наиболее предпочтительным является узел с наибольшей суммой весов. Иными словами, для каждого узла, удовлетворяющего всем требованиям планирования (запрос ресурсов, выражения anti-affinity requiredDuringScheduling и т. д.), вычисляется сумма: планировщик перебирает элементы этого поля и вычитает из суммы «weight», если на узле есть поды, соответствующие соответствующему podAffinityTerm. Узел или узлы с наибольшей суммой являются наиболее предпочтительными.
requiredDuringSchedulingIgnoredDuringExecution
PodAffinityTerm array
Если требования anti-affinity, указанные в этом поле, не выполняются во время планирования, под не будет размещён на узле. Если требования anti-affinity, указанные в этом поле, перестанут выполняться в какой-либо момент во время выполнения пода (например, из-за обновления метки пода), система может попытаться выселить под с узла, а может и не делать этого. Если указано несколько элементов, списки узлов, соответствующие каждому podAffinityTerm, пересекаются, то есть должны выполняться все условия.

PodCertificateProjection

PodCertificateProjection предоставляет закрытый ключ и сертификат X.509 в файловой системе пода.

Поле Описание
certificateChainPath
string
Записать цепочку сертификатов по этому пути в проецируемом томе. Большинству приложений следует использовать credentialBundlePath. При использовании keyPath и certificateChainPath приложение должно проверять соответствие ключа и конечного сертификата, поскольку файлы могут быть прочитаны во время ротации.
credentialBundlePath
string
Записать пакет учётных данных по этому пути в проецируемом томе. Пакет учётных данных — это один файл, содержащий несколько блоков PEM. Первый блок PEM — это блок PRIVATE KEY, содержащий закрытый ключ PKCS#8. Остальные блоки — это блоки CERTIFICATE, содержащие цепочку выданных подписывающей стороной сертификатов (конечный сертификат и все промежуточные). Использование credentialBundlePath позволяет коду приложения пода выполнить одно атомарное чтение и получить согласованные ключ и цепочку сертификатов. Если они проецируются в отдельные файлы, код приложения должен дополнительно проверять, что конечный сертификат выдан для данного ключа.
keyPath
string
Записать ключ по этому пути в проецируемом томе. Большинству приложений следует использовать credentialBundlePath. При использовании keyPath и certificateChainPath приложение должно проверять соответствие ключа и конечного сертификата, поскольку файлы могут быть прочитаны во время ротации.
keyType *
string
Тип пары ключей, которую Kubelet сгенерирует для пода. Допустимые значения: "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", "ECDSAP521" и "ED25519".
maxExpirationSeconds
integer
maxExpirationSeconds — максимальный допустимый срок действия сертификата. Kubelet без изменений копирует это значение в создаваемые им PodCertificateRequests для данной проекции. Если значение не указано, kube-apiserver установит его равным 86400 (24 часа). kube-apiserver отклонит значения меньше 3600 (1 часа). Максимально допустимое значение — 7862400 (91 день). После этого реализация подписывающей стороны может выдать сертификат с любым сроком действия, меньшим MaxExpirationSeconds, но не меньше 3600 секунд (1 часа). Это ограничение обеспечивается kube-apiserver. Подписывающие стороны `kubernetes.io` никогда не выдают сертификаты со сроком действия более 24 часов.
signerName *
string
Создаваемые Kubelet CSR будут адресованы этой подписывающей стороне.
userAnnotations
object
userAnnotations позволяют авторам подов передавать дополнительную информацию реализации подписывающей стороны. Kubernetes никак не ограничивает и не проверяет эти метаданные. Эти значения без изменений копируются в поле `spec.unverifiedUserAnnotations` объектов PodCertificateRequest, создаваемых Kubelet. Записи проходят ту же проверку, что и аннотации метаданных объектов, а также должны иметь ключи с префиксом домена. На значения не накладываются ограничения, кроме общего ограничения на размер всего поля. Подписывающим сторонам следует документировать поддерживаемые ими ключи и значения. Подписывающим сторонам следует отклонять запросы с неизвестными им ключами.

PodCondition

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

Поле Описание
lastProbeTime
Time
Время последней проверки состояния.
lastTransitionTime
Time
Время последнего перехода состояния из одного значения в другое.
message
string
Понятное человеку сообщение с подробностями последнего перехода.
observedGeneration
integer
Если задано, это значение .metadata.generation, на основании которого было установлено состояние пода.
reason
string
Уникальная причина последнего перехода состояния, состоящая из одного слова в стиле CamelCase.
status *
string
Status — состояние условия. Возможные значения: True, False, Unknown. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
type *
string
Type — тип условия. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions

PodDNSConfig

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

Поле Описание
nameservers
string array
Список IP-адресов DNS-серверов имён. Он будет добавлен к базовому списку серверов имён, сформированному на основе DNSPolicy. Повторяющиеся серверы имён будут удалены.
options
PodDNSConfigOption array
Список параметров DNS-резолвера. Он будет объединён с базовыми параметрами, сформированными на основе DNSPolicy. Повторяющиеся записи будут удалены. Параметры разрешения имён, указанные в Options, переопределяют параметры из базовой DNSPolicy.
searches
string array
Список поисковых доменов DNS для поиска имён узлов. Он будет добавлен к базовым путям поиска, сформированным на основе DNSPolicy. Повторяющиеся пути поиска будут удалены.

PodDNSConfigOption

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

Поле Описание
name
string
Name — имя этого параметра DNS-резолвера. Обязательное поле.
value
string
Value — значение этого параметра DNS-резолвера.

PodExtendedResourceClaimStatus

PodExtendedResourceClaimStatus хранится в PodStatus для запросов расширенных ресурсов, обеспечиваемых DRA. В нём хранится сгенерированное имя соответствующего специального ResourceClaim, созданного планировщиком.

Поле Описание
requestMappings *
ContainerExtendedResourceRequest array
RequestMappings определяет сопоставление \ с запросом устройства в сгенерированном ResourceClaim.
resourceClaimName *
string
ResourceClaimName — имя ResourceClaim, созданного для пода в пространстве имён этого пода.

PodIP

PodIP представляет один IP-адрес, выделенный поду.

Поле Описание
ip *
string
IP — IP-адрес, назначенный поду.

PodOS

PodOS задаёт параметры ОС пода.

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

PodReadinessGate

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

Поле Описание
conditionType *
string
ConditionType указывает на условие в списке условий пода с соответствующим типом.

PodResourceClaim

PodResourceClaim ссылается ровно на один ResourceClaim — напрямую или указывая имя ResourceClaimTemplate, на основе которого затем создаётся ResourceClaim для пода.

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

Если включён функциональный переключатель DRAWorkloadResourceClaims и этот под принадлежит PodGroup, PodResourceClaim сопоставляется с PodGroupResourceClaim, если все их поля равны (Name, ResourceClaimName и ResourceClaimTemplateName). Сопоставленный запрос ссылается на один ResourceClaim, общий для всех подов в PodGroup и зарезервированный для PodGroup в ResourceClaimStatus.ReservedFor, а не для отдельных подов.

Поле Описание
name *
string
Name уникально идентифицирует этот запрос ресурса внутри пода. Значение должно соответствовать DNS_LABEL.
resourceClaimName
string
ResourceClaimName — имя объекта ResourceClaim в том же пространстве имён, что и этот под. Должно быть задано ровно одно из полей ResourceClaimName и ResourceClaimTemplateName.
resourceClaimTemplateName
string
ResourceClaimTemplateName — имя объекта ResourceClaimTemplate в том же пространстве имён, что и этот под. Шаблон будет использован для создания нового ResourceClaim, который будет связан с этим подом. При удалении этого пода ResourceClaim также будет удалён. Для формирования уникального имени ResourceClaim будут использованы имя пода, имя ресурса и сгенерированный компонент; это имя будет записано в pod.status.resourceClaimStatuses. Если включён функциональный переключатель DRAWorkloadResourceClaims и под принадлежит PodGroup, определяющей PodGroupResourceClaim с такими же Name и ResourceClaimTemplateName, этот PodResourceClaim разрешается в ResourceClaim, созданный для PodGroup. Все поды группы, определяющие эквивалентный PodResourceClaim с Name и ResourceClaimTemplateName, соответствующими PodGroupResourceClaim, используют один и тот же сгенерированный ResourceClaim. ResourceClaim, созданные для PodGroup, принадлежат PodGroup, а их жизненный цикл связан с PodGroup, а не с отдельными подами. Это поле неизменяемо; после создания ResourceClaim плоскость управления не будет вносить изменения в соответствующий ResourceClaim. Должно быть задано ровно одно из полей ResourceClaimName и ResourceClaimTemplateName.

PodSchedulingGate

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

Поле Описание
name *
string
Имя барьера планирования. Значение поля name должно быть уникальным для каждого барьера планирования.

PodSchedulingGroup

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

Поле Описание
podGroupName
string
PodGroupName задаёт имя автономного объекта PodGroup, представляющего экземпляр этой группы во время выполнения. Имя должно быть DNS-поддоменом.

PodSecurityContext

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

Поле Описание
appArmorProfile
AppArmorProfile
appArmorProfile — параметры AppArmor, используемые контейнерами в этом поде. Обратите внимание, что это поле нельзя задать, если spec.os.name имеет значение windows.
fsGroup
integer
Специальная дополнительная группа, применяемая ко всем контейнерам в поде. Некоторые типы томов позволяют Kubelet изменить владельца тома, сделав владельцем под: 1. В качестве GID владельца будет указан FSGroup 2. Устанавливается бит setgid (новые файлы, созданные в томе, будут принадлежать FSGroup) 3. Биты разрешений объединяются с rw-rw---- Если значение не задано, Kubelet не будет изменять владельца и разрешения для каких-либо томов. Обратите внимание, что это поле нельзя задать, если spec.os.name имеет значение windows.
fsGroupChangePolicy
string
fsGroupChangePolicy определяет порядок изменения владельца и разрешений тома перед его подключением к поду. Это поле применяется только к типам томов, поддерживающим управление владельцем (и разрешениями) на основе fsGroup. Оно не влияет на эфемерные типы томов, такие как secret, configmaps и emptydir. Допустимые значения: "OnRootMismatch" и "Always". Если значение не указано, используется "Always". Обратите внимание, что это поле нельзя задать, если spec.os.name имеет значение windows.

Возможные значения перечисления:
- `"Always"` означает, что владелец и разрешения тома всегда изменяются при каждом подключении тома к поду. Это поведение используется по умолчанию.
- `"OnRootMismatch"` означает, что владелец и разрешения тома изменяются только в том случае, если разрешения и владелец корневого каталога не соответствуют ожидаемым значениям для тома. Это может сократить время, необходимое для изменения владельца и разрешений тома.
runAsGroup
integer
GID, от имени которого запускается точка входа процесса контейнера. Если значение не задано, используется значение по умолчанию среды выполнения. Также может быть задано в SecurityContext. Если значение задано и в SecurityContext, и в PodSecurityContext, для этого контейнера приоритет имеет значение, указанное в SecurityContext. Обратите внимание, что это поле нельзя задать, если spec.os.name имеет значение windows.
runAsNonRoot
boolean
Указывает, что контейнер должен запускаться от имени пользователя, отличного от root. Если значение равно true, Kubelet проверит образ во время выполнения, чтобы убедиться, что он не запускается с UID 0 (root), и не запустит контейнер, если это условие не выполнено. Если значение не задано или равно false, такая проверка не выполняется. Также может быть задано в SecurityContext. Если значение задано и в SecurityContext, и в PodSecurityContext, приоритет имеет значение, указанное в SecurityContext.
runAsUser
integer
UID, от имени которого запускается точка входа процесса контейнера. Если значение не задано, используется пользователь, указанный в метаданных образа. Также может быть задано в SecurityContext. Если значение задано и в SecurityContext, и в PodSecurityContext, для этого контейнера приоритет имеет значение, указанное в SecurityContext. Обратите внимание, что это поле нельзя задать, если spec.os.name имеет значение windows.
seLinuxChangePolicy
string
seLinuxChangePolicy определяет способ применения метки SELinux контейнера ко всем томам, используемым подом. Это поле не влияет на узлы, не поддерживающие SELinux, и тома, не поддерживающие SELinux. Допустимые значения: "MountOption" и "Recursive". "Recursive" означает рекурсивную перемаркировку всех файлов на всех томах пода средой выполнения контейнеров. Для больших томов это может выполняться медленно, но позволяет совместно использовать один том привилегированным и непривилегированным подам на одном узле. "MountOption" подключает все подходящие тома пода с параметром монтирования `-o context`. Для этого все поды, совместно использующие один том, должны использовать одну и ту же метку SELinux. Совместное использование одного тома привилегированными и непривилегированными подами невозможно. К подходящим томам относятся встроенные тома FibreChannel и iSCSI, а также все тома CSI, драйвер CSI которых объявляет поддержку SELinux, задавая spec.seLinuxMount: true в своем экземпляре CSIDriver. Для остальных томов всегда выполняется рекурсивная перемаркировка. Значение "MountOption" допускается только при включенном шлюзе функций SELinuxMount. Если значение не задано и шлюз функций SELinuxMount включен, используется "MountOption". Если значение не задано и шлюз функций SELinuxMount выключен, для томов ReadWriteOncePod используется "MountOption", а для всех остальных томов — "Recursive". Это поле влияет только на поды, для которых задана метка SELinux — в PodSecurityContext или в SecurityContext каждого контейнера. Для всех подов, использующих один и тот же том, следует задать одинаковое значение seLinuxChangePolicy, иначе некоторые поды могут зависнуть в состоянии ContainerCreating. Обратите внимание, что это поле нельзя задать, если spec.os.name имеет значение windows.
seLinuxOptions
SELinuxOptions
Контекст SELinux, применяемый ко всем контейнерам. Если значение не указано, среда выполнения контейнеров назначит каждому контейнеру случайный контекст SELinux. Также может быть задано в SecurityContext. Если значение задано и в SecurityContext, и в PodSecurityContext, для этого контейнера приоритет имеет значение, указанное в SecurityContext. Обратите внимание, что это поле нельзя задать, если spec.os.name имеет значение windows.
seccompProfile
SeccompProfile
Параметры seccomp, используемые контейнерами в этом поде. Обратите внимание, что это поле нельзя задать, если spec.os.name имеет значение windows.
supplementalGroups
integer array
Список групп, применяемых к первому процессу, запускаемому в каждом контейнере, в дополнение к основному GID контейнера и fsGroup (если задано). Если включен шлюз функций SupplementalGroupsPolicy, поле supplementalGroupsPolicy определяет, добавляются ли эти группы к членству в группах, заданному в образе контейнера, или используются вместо него. Если значение не указано, дополнительные группы не добавляются, однако членство в группах, заданное в образе контейнера, может по-прежнему использоваться в зависимости от значения supplementalGroupsPolicy. Обратите внимание, что это поле нельзя задать, если spec.os.name имеет значение windows.
supplementalGroupsPolicy
string
Определяет, как рассчитываются дополнительные группы первых процессов контейнеров. Допустимые значения: "Merge" и "Strict". Если значение не указано, используется "Merge". (Alpha) Для использования этого поля необходимо включить шлюз функций SupplementalGroupsPolicy, а среда выполнения контейнеров должна поддерживать эту функцию. Обратите внимание, что это поле нельзя задать, если spec.os.name имеет значение windows.

Возможные значения перечисления:
- `"Merge"` означает, что заданные для контейнера SupplementalGroups и FsGroup (в SecurityContext) объединяются с группами основного пользователя, определенными в образе контейнера (в /etc/group).
- `"Strict"` означает, что заданные для контейнера SupplementalGroups и FsGroup (в SecurityContext) используются вместо любых групп, определенных в образе контейнера.
sysctls
Sysctl array
Sysctls содержит список пространств имен sysctl, используемых для пода. Поды с неподдерживаемыми (средой выполнения контейнеров) параметрами sysctl могут не запуститься. Обратите внимание, что это поле нельзя задать, если spec.os.name имеет значение windows.
windowsOptions
WindowsSecurityContextOptions
Параметры Windows, применяемые ко всем контейнерам. Если значение не указано, используются параметры из SecurityContext контейнера. Если значение задано и в SecurityContext, и в PodSecurityContext, приоритет имеет значение, указанное в SecurityContext. Обратите внимание, что это поле нельзя задать, если spec.os.name имеет значение linux.

PreferredSchedulingTerm

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

Поле Описание
preference *
NodeSelectorTerm
Термин выбора узла, связанный с соответствующим весом.
weight *
integer
Вес, связанный с соответствием соответствующему nodeSelectorTerm; допустимый диапазон — 1–100.

Probe

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

Поле Описание
exec
ExecAction
Exec задает команду, выполняемую в контейнере.
failureThreshold
integer
Минимальное число последовательных сбоев проверки, после которого она считается неудачной, если до этого завершалась успешно. По умолчанию — 3. Минимальное значение — 1.
grpc
GRPCAction
GRPC задает запрос GRPC HealthCheckRequest.
httpGet
HTTPGetAction
HTTPGet задает HTTP GET-запрос для выполнения.
initialDelaySeconds
integer
Количество секунд после запуска контейнера, по истечении которых начинаются проверки liveness. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
periodSeconds
integer
Частота выполнения проверки (в секундах). По умолчанию — 10 секунд. Минимальное значение — 1.
successThreshold
integer
Минимальное число последовательных успешных проверок, после которого проверка считается успешной, если до этого завершалась неудачно. По умолчанию — 1. Для проверок liveness и startup значение должно быть равно 1. Минимальное значение — 1.
tcpSocket
TCPSocketAction
TCPSocket задает подключение к порту TCP.
terminationGracePeriodSeconds
integer
Необязательное время в секундах, необходимое поду для корректного завершения после сбоя проверки. Период ожидания завершения — это время между отправкой процессам, работающим в поде, сигнала завершения и принудительной остановкой процессов сигналом kill. Задайте значение, превышающее ожидаемое время очистки для вашего процесса. Если значение равно nil, будет использоваться terminationGracePeriodSeconds пода. В противном случае это значение переопределяет значение, заданное в спецификации пода. Значение должно быть неотрицательным целым числом. Нулевое значение означает немедленную остановку сигналом kill (без возможности завершить работу). Это поле бета-версии; для его использования необходимо включить шлюз функций ProbeTerminationGracePeriod. Минимальное значение — 1. Если значение не задано, используется spec.terminationGracePeriodSeconds.
timeoutSeconds
integer
Количество секунд до истечения времени ожидания проверки. По умолчанию — 1 секунда. Минимальное значение — 1. Дополнительная информация: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

ProjectedVolumeSource

Представляет источник проецируемого тома

Поле Описание
defaultMode
integer
defaultMode — биты режима, используемые по умолчанию для задания разрешений создаваемых файлов. Должно быть восьмеричное значение от 0000 до 0777 или десятичное значение от 0 до 511. YAML допускает как восьмеричные, так и десятичные значения, а JSON требует десятичные значения для битов режима. Эта настройка не влияет на каталоги внутри пути. Она может конфликтовать с другими параметрами, влияющими на режим файла, например fsGroup, и в результате могут быть заданы другие биты режима.
sources
VolumeProjection array
sources — список проекций тома. Каждый элемент этого списка обрабатывает один источник.

RBDVolumeSource

Представляет подключение Rados Block Device, существующее на протяжении всего срока жизни пода. Томы RBD поддерживают управление владельцем и перемаркировку SELinux.

Поле Описание
fsType
string
fsType — тип файловой системы тома, который требуется подключить. Совет: убедитесь, что операционная система узла поддерживает этот тип файловой системы. Примеры: "ext4", "xfs", "ntfs". Если значение не указано, предполагается "ext4". Дополнительная информация: https://kubernetes.io/docs/concepts/storage/volumes#rbd
image *
string
image — имя образа rados. Дополнительная информация: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
keyring
string
keyring — путь к связке ключей для RBDUser. По умолчанию — /etc/ceph/keyring. Дополнительная информация: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
monitors *
string array
monitors — набор мониторов Ceph. Дополнительная информация: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
pool
string
pool — имя пула rados. По умолчанию — rbd. Дополнительная информация: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
readOnly
boolean
readOnly принудительно устанавливает параметр ReadOnly в VolumeMounts. По умолчанию — false. Дополнительная информация: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
secretRef
LocalObjectReference
secretRef — имя секрета аутентификации для RBDUser. Если указано, переопределяет keyring. По умолчанию — nil. Дополнительная информация: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
user
string
user — имя пользователя rados. По умолчанию — admin. Дополнительная информация: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

ResourceClaim

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

Поле Описание
name *
string
Имя должно совпадать с именем одной из записей в pod.spec.resourceClaims пода, в котором используется это поле. Это делает ресурс доступным внутри контейнера.
request
string
Request — имя, выбранное для запроса в указанном требовании. Если значение пустое, становятся доступны все данные из требования; в противном случае — только результат этого запроса.

ResourceFieldSelector

ResourceFieldSelector представляет ресурсы контейнера (cpu, memory) и формат их вывода

Поле Описание
containerName
string
Имя контейнера: обязательно для томов, необязательно для переменных среды
divisor
Quantity
Задает формат вывода предоставляемых ресурсов; по умолчанию — "1"
resource *
string
Обязательное поле: ресурс для выбора

ResourceHealth

ResourceHealth описывает состояние ресурса. Здесь содержится последняя информация о состоянии устройства. Это часть KEP https://kep.k8s.io/4680.

Поле Описание
health
string
Состояние ресурса. Может принимать одно из значений: - Healthy: работает нормально - Unhealthy: сообщено о неисправности. Мы считаем это временной проблемой, поскольку на данный момент у нас нет механизма для различения временных и постоянных проблем. - Unknown: состояние невозможно определить. Например, Device Plugin был отменен, и с тех пор его регистрация не была восстановлена. В будущем мы можем добавить состояние PermanentlyUnhealthy.
message
string
Message содержит понятное человеку описание состояния Health (например, "превышен порог количества ошибок ECC"). Это поле заполняется kubelet, если включен ResourceHealthStatusMessage и плагин DRA возвращает сообщение; в противном случае оно равно null.
resourceID *
string
ResourceID — уникальный идентификатор ресурса. Дополнительные сведения см. в описании типа ResourceID.

ResourceRequirements

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

Поле Описание
claims
ResourceClaim array
Claims содержит имена ресурсов, определенных в spec.resourceClaims и используемых этим контейнером. Это поле зависит от шлюза функций DynamicResourceAllocation. Это поле неизменяемо. Его можно задавать только для контейнеров.
limits
object
Limits описывает максимально допустимый объем вычислительных ресурсов. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
requests
object
Requests описывает минимальный объем необходимых вычислительных ресурсов. Если Requests не задано для контейнера, по умолчанию используется Limits, если оно явно указано, иначе — значение, определяемое реализацией. Requests не может превышать Limits. Дополнительная информация: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/

ResourceStatus

ResourceStatus описывает состояние отдельного ресурса, выделенного поду.

Поле Описание
name *
string
Имя ресурса. Должно быть уникальным в пределах пода; если ресурс не относится к DRA, оно должно совпадать с одним из ресурсов в спецификации пода. Для ресурсов DRA значение должно иметь вид "claim:\/\". Если это состояние сообщается для контейнера, "claim_name" и "request" должны совпадать с одним из требований этого контейнера.
resources
ResourceHealth array
Список сведений о состоянии уникальных ресурсов. Каждый элемент списка содержит уникальный идентификатор ресурса и его состояние. Как минимум, на протяжении всего срока жизни пода идентификатор ресурса должен однозначно определять ресурс, выделенный поду на узле. Если другой под на том же узле сообщает состояние с тем же идентификатором ресурса, это должен быть тот же ресурс, который они используют совместно. Информацию о формате идентификатора в различных случаях использования см. в определении типа ResourceID.

SELinuxOptions

SELinuxOptions — метки, применяемые к контейнеру

Поле Описание
level
string
Level — метка уровня SELinux, применяемая к контейнеру.
role
string
Role — метка роли SELinux, применяемая к контейнеру.
type
string
Type — метка типа SELinux, применяемая к контейнеру.
user
string
User — метка пользователя SELinux, применяемая к контейнеру.

ScaleIOVolumeSource

ScaleIOVolumeSource представляет постоянный том ScaleIO

Поле Описание
fsType
string
fsType — тип файловой системы для подключения. Должен поддерживаться операционной системой узла. Например: "ext4", "xfs", "ntfs". По умолчанию — "xfs".
gateway *
string
gateway — адрес узла шлюза API ScaleIO.
protectionDomain
string
protectionDomain — имя домена защиты ScaleIO для настроенного хранилища.
readOnly
boolean
readOnly По умолчанию — false (чтение/запись). Здесь ReadOnly принудительно устанавливает параметр ReadOnly в VolumeMounts.
secretRef *
LocalObjectReference
secretRef ссылается на секрет с учетными данными пользователя ScaleIO и другими конфиденциальными данными. Если значение не указано, операция входа завершится ошибкой.
sslEnabled
boolean
sslEnabled Включает или отключает SSL-соединение со шлюзом; по умолчанию — false
storageMode
string
storageMode указывает, должно ли хранилище тома быть ThickProvisioned или ThinProvisioned. По умолчанию — ThinProvisioned.
storagePool
string
storagePool — пул хранения ScaleIO, связанный с доменом защиты.
system *
string
system — имя системы хранения, настроенной в ScaleIO.
volumeName
string
volumeName — имя тома, уже созданного в системе ScaleIO и связанного с этим источником тома.

SeccompProfile

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

Поле Описание
localhostProfile
string
localhostProfile указывает, что следует использовать профиль, определенный в файле на узле. Для работы профиль должен быть предварительно настроен на узле. Должен быть задан относительный путь без перехода к родительским каталогам относительно настроенного расположения профилей seccomp в kubelet. Должно быть задано, если type имеет значение "Localhost". Не должно задаваться для любого другого типа.
type *
string
type указывает тип применяемого профиля seccomp. Допустимые варианты: Localhost — использовать профиль, определенный в файле на узле. RuntimeDefault — использовать профиль seccomp по умолчанию среды выполнения контейнеров. Unconfined — не применять профиль.

Возможные значения перечисления:
- `"Localhost"` указывает, что следует использовать профиль, определенный в файле на узле. Расположение файла относительно \/seccomp.
- `"RuntimeDefault"` обозначает профиль seccomp среды выполнения контейнеров по умолчанию.
- `"Unconfined"` указывает, что профиль seccomp не применяется (то есть режим без ограничений).

SecretEnvSource

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

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

Поле Описание
name
string
Имя целевого объекта. Это поле фактически является обязательным, но для обратной совместимости может быть пустым. Экземпляры этого типа с пустым значением в данном поле почти наверняка ошибочны. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
optional
boolean
Указывает, должен ли Secret быть определен

SecretKeySelector

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

Поле Описание
key *
string
Ключ секрета для выбора. Должен быть допустимым ключом секрета.
name
string
Имя целевого объекта. Это поле фактически является обязательным, но для обратной совместимости может быть пустым. Экземпляры этого типа с пустым значением в данном поле почти наверняка ошибочны. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
optional
boolean
Указывает, должны ли быть определены Secret или его ключ

SecretProjection

Представляет секрет в виде проецируемого тома.

Содержимое поля Data целевого Secret будет представлено в проецируемом томе в виде файлов, имена которых соответствуют ключам поля Data. Обратите внимание, что это идентично источнику тома secret без режима по умолчанию.

Поле Описание
items
KeyToPath array
Если items не указано, каждая пара «ключ-значение» из поля Data указанного Secret будет спроецирована в том как файл, имя которого совпадает с ключом, а содержимое — со значением. Если поле указано, перечисленные ключи будут спроецированы в заданные пути, а остальные ключи присутствовать не будут. Если указанного ключа нет в Secret, настройка тома завершится ошибкой, если только ключ не помечен как необязательный. Пути должны быть относительными и не должны содержать путь '..' или начинаться с '..'.
name
string
Имя целевого объекта. Это поле фактически является обязательным, но для обратной совместимости может быть пустым. Экземпляры этого типа с пустым значением в данном поле почти наверняка ошибочны. Дополнительная информация: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
optional
boolean
Поле optional указывает, должен ли быть определен Secret или его ключ

SecretVolumeSource

Представляет Secret в виде тома.

Содержимое поля Data целевого Secret будет представлено в томе в виде файлов, имена которых соответствуют ключам поля Data. Тома Secret поддерживают управление владельцем и перемаркировку SELinux.

Поле Описание
defaultMode
integer
defaultMode — необязательное поле: биты режима, используемые по умолчанию для задания разрешений создаваемых файлов. Должно быть восьмеричное значение от 0000 до 0777 или десятичное значение от 0 до 511. YAML допускает как восьмеричные, так и десятичные значения, а JSON требует десятичные значения для битов режима. По умолчанию — 0644. Эта настройка не влияет на каталоги внутри пути. Она может конфликтовать с другими параметрами, влияющими на режим файла, например fsGroup, и в результате могут быть заданы другие биты режима.
items
KeyToPath array
items Если значение не указано, каждая пара «ключ-значение» из поля Data указанного Secret будет спроецирована в том как файл, имя которого совпадает с ключом, а содержимое — со значением. Если поле указано, перечисленные ключи будут спроецированы в заданные пути, а остальные ключи присутствовать не будут. Если указанного ключа нет в Secret, настройка тома завершится ошибкой, если только ключ не помечен как необязательный. Пути должны быть относительными и не должны содержать путь '..' или начинаться с '..'.
optional
boolean
Поле optional указывает, должны ли быть определены Secret или его ключи
secretName
string
secretName — имя секрета в пространстве имен пода, который следует использовать. Дополнительная информация: https://kubernetes.io/docs/concepts/storage/volumes#secret

SecurityContext

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

Поле Описание
allowPrivilegeEscalation
boolean
AllowPrivilegeEscalation определяет, может ли процесс получить больше привилегий, чем его родительский процесс. Это значение bool напрямую управляет установкой флага no_new_privs для процесса контейнера. AllowPrivilegeEscalation всегда имеет значение true, если контейнер: 1) запущен в привилегированном режиме; 2) имеет CAP_SYS_ADMIN. Обратите внимание, что это поле нельзя задать, если spec.os.name равен windows.
appArmorProfile
AppArmorProfile
appArmorProfile — параметры AppArmor, используемые этим контейнером. Если задан, этот профиль заменяет appArmorProfile пода. Обратите внимание, что это поле нельзя задать, если spec.os.name равен windows.
capabilities
Capabilities
Возможности, которые нужно добавить или удалить при запуске контейнеров. По умолчанию используется набор возможностей, предоставляемых средой выполнения контейнеров. Обратите внимание, что это поле нельзя задать, если spec.os.name равен windows.
privileged
boolean
Запускать контейнер в привилегированном режиме. Процессы в привилегированных контейнерах по существу эквивалентны процессам root на хосте. По умолчанию — false. Обратите внимание, что это поле нельзя задать, если spec.os.name равен windows.
procMount
string
procMount указывает тип монтирования proc, используемый для контейнеров. Значение по умолчанию — Default, при котором используются настройки среды выполнения контейнеров для путей только для чтения и маскируемых путей. Обратите внимание, что это поле нельзя задать, если spec.os.name равен windows.

Возможные значения перечисления:
- `"Default"` использует настройки среды выполнения контейнеров для путей только для чтения и маскируемых путей в /proc. Большинство сред выполнения контейнеров маскируют определённые пути в /proc, чтобы предотвратить случайное раскрытие специальных устройств или информации.
- `"Unmasked"` отключает поведение маскирования по умолчанию в среде выполнения контейнеров и гарантирует, что вновь созданный /proc контейнера останется неизменным.
readOnlyRootFilesystem
boolean
Указывает, имеет ли контейнер корневую файловую систему только для чтения. Значение по умолчанию — false. Обратите внимание, что это поле нельзя задать, если spec.os.name равен windows.
runAsGroup
integer
GID, от имени которого запускается точка входа процесса контейнера. Если значение не задано, используется значение по умолчанию среды выполнения. Его также можно задать в PodSecurityContext. Если значение задано и в SecurityContext, и в PodSecurityContext, приоритет имеет значение, указанное в SecurityContext. Обратите внимание, что это поле нельзя задать, если spec.os.name равен windows.
runAsNonRoot
boolean
Указывает, должен ли этот контейнер запускаться от имени пользователя, не являющегося root. Если значение равно true, Kubelet проверит образ во время выполнения, чтобы убедиться, что он не запускается с UID 0 (root), и не запустит контейнер, если это условие не выполнено. Если значение не задано или равно false, такая проверка выполняться не будет. Значение также можно задать в PodSecurityContext. Если оно задано и в SecurityContext, и в PodSecurityContext, приоритет имеет значение, указанное в SecurityContext.
runAsUser
integer
UID, от имени которого запускается точка входа процесса контейнера. Если значение не задано, используется пользователь, указанный в метаданных образа. Его также можно задать в PodSecurityContext. Если значение задано и в SecurityContext, и в PodSecurityContext, приоритет имеет значение, указанное в SecurityContext. Обратите внимание, что это поле нельзя задать, если spec.os.name равен windows.
seLinuxOptions
SELinuxOptions
Контекст SELinux, применяемый к контейнеру. Если значение не задано, среда выполнения контейнеров назначит каждому контейнеру случайный контекст SELinux. Значение также можно задать в PodSecurityContext. Если оно задано и в SecurityContext, и в PodSecurityContext, приоритет имеет значение, указанное в SecurityContext. Обратите внимание, что это поле нельзя задать, если spec.os.name равен windows.
seccompProfile
SeccompProfile
Параметры seccomp, используемые этим контейнером. Если параметры seccomp заданы и на уровне пода, и на уровне контейнера, параметры контейнера переопределяют параметры пода. Обратите внимание, что это поле нельзя задать, если spec.os.name равен windows.
windowsOptions
WindowsSecurityContextOptions
Параметры, относящиеся к Windows и применяемые ко всем контейнерам. Если значение не задано, используются параметры из PodSecurityContext. Если значение задано и в SecurityContext, и в PodSecurityContext, приоритет имеет значение, указанное в SecurityContext. Обратите внимание, что это поле нельзя задать, если spec.os.name равен linux.

Проекция токена ServiceAccount

ServiceAccountTokenProjection представляет том с проецируемым токеном учётной записи службы. Эта проекция позволяет поместить токен учётной записи службы в файловую систему среды выполнения пода для использования при обращении к API (серверу API Kubernetes или другим).

Поле Описание
audience
string
audience — предполагаемая аудитория токена. Получатель токена должен идентифицировать себя с помощью идентификатора, указанного в audience токена, и в противном случае должен отклонить токен. По умолчанию audience равен идентификатору apiserver.
expirationSeconds
integer
expirationSeconds — запрашиваемая продолжительность действия токена учётной записи службы. По мере приближения срока действия токена плагин тома kubelet будет заблаговременно выполнять его ротацию. kubelet начнёт попытки ротации токена, если его возраст превысит 80 процентов срока действия или если токену больше 24 часов. По умолчанию — 1 час; значение должно быть не менее 10 минут.
path *
string
path — путь относительно точки монтирования, по которому будет размещён файл с токеном.

Действие Sleep

SleepAction описывает действие «sleep».

Поле Описание
seconds *
integer
Seconds — количество секунд ожидания.

Источник тома StorageOS

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

Поле Описание
fsType
string
fsType — тип файловой системы для монтирования. Должен быть типом файловой системы, поддерживаемым операционной системой хоста. Например: "ext4", "xfs", "ntfs". Если значение не задано, неявно используется "ext4".
readOnly
boolean
readOnly по умолчанию равно false (чтение и запись). Значение ReadOnly здесь принудительно задаёт параметр ReadOnly в VolumeMounts.
secretRef
LocalObjectReference
secretRef указывает секрет, используемый для получения учётных данных API StorageOS. Если значение не задано, будет предпринята попытка использовать значения по умолчанию.
volumeName
string
volumeName — понятное человеку имя тома StorageOS. Имена томов уникальны только в пределах пространства имён.
volumeNamespace
string
volumeNamespace задаёт область действия тома в StorageOS. Если пространство имён не указано, будет использоваться пространство имён пода. Это позволяет отразить область имён Kubernetes в StorageOS для более тесной интеграции. Чтобы переопределить поведение по умолчанию, задайте любое значение для VolumeName. Укажите "default", если пространства имён в StorageOS не используются. Пространства имён, которых ещё нет в StorageOS, будут созданы.

Sysctl

Sysctl задаёт параметр ядра, которому необходимо присвоить значение

Поле Описание
name *
string
Имя свойства, которому нужно присвоить значение
value *
string
Значение свойства

Действие TCPSocket

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

Поле Описание
host
string
Необязательно: имя хоста для подключения; по умолчанию используется IP-адрес пода.
port *
Номер или имя порта контейнера, к которому нужно обратиться. Номер должен находиться в диапазоне от 1 до 65535. Имя должно соответствовать IANA_SVC_NAME.

Ограничение распределения по топологии

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

Поле Описание
labelSelector
LabelSelector
LabelSelector используется для поиска подходящих подов. Поды, соответствующие этому селектору меток, учитываются при определении количества подов в соответствующей области топологии.
matchLabelKeys
string array
MatchLabelKeys — набор ключей меток пода, по которым выбираются поды для вычисления распределения. Эти ключи используются для поиска значений во входящих метках пода; найденные пары «ключ-значение» объединяются с labelSelector оператором AND, чтобы выбрать группу существующих подов, по которой будет вычислено распределение для входящего пода. Один и тот же ключ не может одновременно присутствовать в MatchLabelKeys и LabelSelector. MatchLabelKeys нельзя задать, если LabelSelector не задан. Ключи, отсутствующие во входящих метках пода, игнорируются. Значение null или пустой список означает, что проверяется только соответствие labelSelector. Это поле бета-версии; для его использования необходимо включить функциональный переключатель MatchLabelKeysInPodTopologySpread (по умолчанию включён).
maxSkew *
integer
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 не допускается.
minDomains
integer
MinDomains указывает минимальное количество допустимых областей. Если количество допустимых областей с соответствующими ключами топологии меньше minDomains, механизм распределения подов по топологии рассматривает «глобальный минимум» как 0, после чего вычисляется Skew. Если количество допустимых областей с соответствующими ключами топологии равно minDomains или превышает его, это значение не влияет на планирование. В результате, если количество допустимых областей меньше minDomains, планировщик не будет размещать в этих областях больше подов, чем допускает maxSkew. Если значение равно nil, ограничение ведёт себя так, как если бы MinDomains было равно 1. Допустимы целые значения больше 0. Если значение не равно nil, WhenUnsatisfiable должно быть равно DoNotSchedule. Например, в кластере из 3 зон MaxSkew равен 2, MinDomains равен 5, а поды с одинаковым labelSelector распределены как 2/2/2: | зона1 | зона2 | зона3 | | P P | P P | P P | Число областей меньше 5 (MinDomains), поэтому «глобальный минимум» считается равным 0. В этой ситуации новый под с таким же labelSelector нельзя запланировать: если запланировать его в любую из трёх зон, вычисленное значение skew будет равно 3 (3 - 0), что нарушит MaxSkew.
nodeAffinityPolicy
string
NodeAffinityPolicy указывает, как учитывать nodeAffinity/nodeSelector пода при вычислении неравномерности распределения подов по топологии. Возможные варианты: - Honor: при вычислениях учитываются только узлы, соответствующие nodeAffinity/nodeSelector. - Ignore: nodeAffinity/nodeSelector игнорируются. При вычислениях учитываются все узлы. Если значение равно nil, поведение соответствует политике Honor.

Возможные значения перечисления:
- `"Honor"` означает, что эта директива планирования используется при вычислении неравномерности распределения подов по топологии.
- `"Ignore"` означает, что эта директива планирования игнорируется при вычислении неравномерности распределения подов по топологии.
nodeTaintsPolicy
string
NodeTaintsPolicy указывает, как учитывать taints узлов при вычислении неравномерности распределения подов по топологии. Возможные варианты: - Honor: учитываются узлы без taints, а также узлы с taints, для которых у входящего пода есть toleration. - Ignore: taints узлов игнорируются. Учитываются все узлы. Если значение равно nil, поведение соответствует политике Ignore.

Возможные значения перечисления:
- `"Honor"` означает, что эта директива планирования используется при вычислении неравномерности распределения подов по топологии.
- `"Ignore"` означает, что эта директива планирования игнорируется при вычислении неравномерности распределения подов по топологии.
topologyKey *
string
TopologyKey — ключ меток узлов. Узлы с меткой по этому ключу и одинаковыми значениями считаются принадлежащими к одной топологии. Каждое \ рассматривается как «корзина»; поды распределяются по корзинам равномерно. Областью называется конкретный экземпляр топологии. Допустимой областью называется область, узлы которой соответствуют требованиям nodeAffinityPolicy и nodeTaintsPolicy. Например, если TopologyKey равен "kubernetes.io/hostname", каждый узел является отдельной областью этой топологии. Если TopologyKey равен "topology.kubernetes.io/zone", областью этой топологии является каждая зона. Обязательное поле.
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). Иными словами, кластер может оставаться несбалансированным, но планировщик не будет усиливать дисбаланс. Обязательное поле.

Возможные значения перечисления:
- `"DoNotSchedule"` указывает планировщику не планировать под, если ограничения не соблюдены.
- `"ScheduleAnyway"` указывает планировщику планировать под, даже если ограничения не соблюдены.

Том

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

Поле Описание
awsElasticBlockStore
AWSElasticBlockStoreVolumeSource
awsElasticBlockStore представляет ресурс диска AWS, подключённый к хост-машине kubelet и предоставленный поду. Устарело: AWSElasticBlockStore объявлен устаревшим. Все операции для встроенного типа awsElasticBlockStore перенаправляются драйверу CSI ebs.csi.aws.com. Подробнее: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
azureDisk
AzureDiskVolumeSource
azureDisk представляет подключение диска Azure Data Disk на хосте и его bind-монтирование в под. Устарело: AzureDisk объявлен устаревшим. Все операции для встроенного типа azureDisk перенаправляются драйверу CSI disk.csi.azure.com.
azureFile
AzureFileVolumeSource
azureFile представляет подключение Azure File Service на хосте и его bind-монтирование в под. Устарело: AzureFile объявлен устаревшим. Все операции для встроенного типа azureFile перенаправляются драйверу CSI file.csi.azure.com.
cephfs
CephFSVolumeSource
cephFS представляет подключение Ceph FS на хосте, срок службы которого совпадает со сроком жизни пода. Устарело: CephFS объявлен устаревшим, встроенный тип cephfs больше не поддерживается.
cinder
CinderVolumeSource
cinder представляет том Cinder, подключённый и смонтированный на хост-машине kubelet. Устарело: Cinder объявлен устаревшим. Все операции для встроенного типа cinder перенаправляются драйверу CSI cinder.csi.openstack.org. Подробнее: https://examples.k8s.io/mysql-cinder-pd/README.md
configMap
ConfigMapVolumeSource
configMap представляет ConfigMap, содержимое которого должно заполнить этот том
csi
CSIVolumeSource
csi (Container Storage Interface) представляет эфемерное хранилище, обслуживаемое определёнными внешними драйверами CSI.
downwardAPI
DownwardAPIVolumeSource
downwardAPI представляет данные API Downward о поде, которые должны заполнить этот том
emptyDir
EmptyDirVolumeSource
emptyDir представляет временный каталог, срок службы которого совпадает со сроком жизни пода. Подробнее: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
ephemeral
EphemeralVolumeSource
ephemeral представляет том, обслуживаемый драйвером хранилища кластера. Жизненный цикл тома связан с подом, в котором он определён: том создаётся до запуска пода и удаляется при удалении пода. Используйте этот тип, если: a) том нужен только во время работы пода; b) требуются возможности обычных томов, например восстановление из снимка или отслеживание ёмкости; c) драйвер хранилища задаётся через класс хранилища; d) драйвер хранилища поддерживает динамическое выделение томов через PersistentVolumeClaim (подробнее о связи этого типа тома с PersistentVolumeClaim см. в EphemeralVolumeSource). Для томов, срок службы которых превышает жизненный цикл отдельного пода, используйте PersistentVolumeClaim или один из API конкретного поставщика. Используйте CSI для облегчённых локальных эфемерных томов, если драйвер CSI предназначен для такого применения; дополнительные сведения см. в документации драйвера. Под может одновременно использовать оба типа эфемерных томов и постоянные тома.
fc
FCVolumeSource
fc представляет ресурс Fibre Channel, подключённый к хост-машине kubelet и предоставленный поду.
flexVolume
FlexVolumeSource
flexVolume представляет универсальный ресурс тома, который выделяется или подключается с помощью плагина на основе exec. Устарело: FlexVolume объявлен устаревшим. Рекомендуется использовать CSIDriver.
flocker
FlockerVolumeSource
flocker представляет том Flocker, подключённый к хост-машине kubelet. Для этого требуется запущенная управляющая служба Flocker. Устарело: Flocker объявлен устаревшим, встроенный тип flocker больше не поддерживается.
gcePersistentDisk
GCEPersistentDiskVolumeSource
gcePersistentDisk представляет ресурс диска GCE, подключённый к хост-машине kubelet и предоставленный поду. Устарело: GCEPersistentDisk объявлен устаревшим. Все операции для встроенного типа gcePersistentDisk перенаправляются драйверу CSI pd.csi.storage.gke.io. Подробнее: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
gitRepo
GitRepoVolumeSource
gitRepo представляет репозиторий Git на определённой ревизии. Устарело: GitRepo объявлен устаревшим. Чтобы предоставить контейнеру репозиторий Git, смонтируйте EmptyDir в InitContainer, клонируйте в него репозиторий с помощью git, а затем смонтируйте EmptyDir в контейнер пода.
glusterfs
GlusterfsVolumeSource
glusterfs представляет подключение Glusterfs на хосте, срок службы которого совпадает со сроком жизни пода. Устарело: Glusterfs объявлен устаревшим, встроенный тип glusterfs больше не поддерживается.
hostPath
HostPathVolumeSource
hostPath представляет уже существующий файл или каталог на хост-машине, непосредственно предоставляемый контейнеру. Обычно этот тип используется системными агентами или другими привилегированными компонентами, которым разрешён доступ к хост-машине. Большинству контейнеров он НЕ нужен. Подробнее: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
image
ImageVolumeSource
image представляет объект OCI (образ контейнера или артефакт), загружаемый и монтируемый на хост-машине kubelet. Том разрешается при запуске пода в зависимости от указанного значения PullPolicy: - Always: kubelet всегда пытается загрузить указанный объект. Если загрузка завершается ошибкой, создание контейнера не удаётся. - Never: kubelet не загружает указанный объект и использует только локальный образ или артефакт. Если объект отсутствует, создание контейнера не удаётся. - IfNotPresent: kubelet загружает объект, только если его ещё нет на диске. Если объект отсутствует и загрузка завершается ошибкой, создание контейнера не удаётся. Том разрешается заново, если под удалён и создан повторно, поэтому при повторном создании пода становится доступно новое удалённое содержимое. Ошибка разрешения или загрузки образа при запуске пода заблокирует запуск контейнеров и может значительно увеличить задержку. Повторные попытки выполняются с обычной задержкой повторного подключения тома, а сведения об ошибках указываются в причине и сообщении пода. Типы объектов, которые можно смонтировать с помощью этого тома, определяются реализацией среды выполнения контейнеров на хост-машине и как минимум должны включать все допустимые типы, поддерживаемые полем образа контейнера. Объект OCI монтируется в один каталог (spec.containers[*].volumeMounts.mountPath) путём объединения слоёв манифеста так же, как для образов контейнеров. Том монтируется только для чтения (ro). До версии 1.33 не поддерживаются монтирования подкаталогов контейнеров (spec.containers[*].volumeMounts.subpath). Поле spec.securityContext.fsGroupChangePolicy не влияет на этот тип тома.
iscsi
ISCSIVolumeSource
iscsi представляет ресурс диска ISCSI, подключённый к хост-машине kubelet и предоставленный поду. Подробнее: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
name *
string
Имя тома. Должно соответствовать DNS_LABEL и быть уникальным в пределах пода. Подробнее: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
nfs
NFSVolumeSource
nfs представляет подключение NFS на хосте, срок службы которого совпадает со сроком жизни пода. Подробнее: https://kubernetes.io/docs/concepts/storage/volumes#nfs
persistentVolumeClaim
PersistentVolumeClaimVolumeSource
persistentVolumeClaimVolumeSource представляет ссылку на PersistentVolumeClaim в том же пространстве имён. Подробнее: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
photonPersistentDisk
PhotonPersistentDiskVolumeSource
photonPersistentDisk представляет постоянный диск PhotonController, подключённый и смонтированный на хост-машине kubelet. Устарело: PhotonPersistentDisk объявлен устаревшим, встроенный тип photonPersistentDisk больше не поддерживается.
portworxVolume
PortworxVolumeSource
portworxVolume представляет том Portworx, подключённый и смонтированный на хост-машине kubelet. Устарело: PortworxVolume объявлен устаревшим. Все операции для встроенного типа portworxVolume перенаправляются драйверу CSI pxd.portworx.com.
projected
ProjectedVolumeSource
проецируемые элементы всех ресурсов в одном томе: секретов, configmaps и API Downward
quobyte
QuobyteVolumeSource
quobyte представляет подключение Quobyte на хосте, срок службы которого совпадает со сроком жизни пода. Устарело: Quobyte объявлен устаревшим, встроенный тип quobyte больше не поддерживается.
rbd
RBDVolumeSource
rbd представляет подключение устройства Rados Block Device на хосте, срок службы которого совпадает со сроком жизни пода. Устарело: RBD объявлен устаревшим, встроенный тип rbd больше не поддерживается.
scaleIO
ScaleIOVolumeSource
scaleIO представляет постоянный том ScaleIO, подключённый и смонтированный на узлах Kubernetes. Устарело: ScaleIO объявлен устаревшим, встроенный тип scaleIO больше не поддерживается.
secret
SecretVolumeSource
secret представляет секрет, содержимое которого должно заполнить этот том. Подробнее: https://kubernetes.io/docs/concepts/storage/volumes#secret
storageos
StorageOSVolumeSource
storageOS представляет том StorageOS, подключённый и смонтированный на узлах Kubernetes. Устарело: StorageOS объявлен устаревшим, встроенный тип storageos больше не поддерживается.
vsphereVolume
VsphereVirtualDiskVolumeSource
vsphereVolume представляет том vSphere, подключённый и смонтированный на хост-машине kubelet. Устарело: VsphereVolume объявлен устаревшим. Все операции для встроенного типа vsphereVolume перенаправляются драйверу CSI csi.vsphere.vmware.com.

Устройство тома

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

Поле Описание
devicePath *
string
devicePath — путь внутри контейнера, по которому будет сопоставлено устройство.
name *
string
name должно совпадать с именем PersistentVolumeClaim в поде

Монтирование тома

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

Поле Описание
mountPath *
string
Путь внутри контейнера, по которому следует смонтировать том. Не должен содержать «:».
mountPropagation
string
mountPropagation определяет, как монтирования распространяются с хоста в контейнер и обратно. Если значение не задано, используется MountPropagationNone. В версии 1.10 это поле имеет статус бета. Если для RecursiveReadOnly задано значение IfPossible или Enabled, для MountPropagation должно быть задано значение None или значение не должно быть указано (по умолчанию используется None).

Возможные значения перечисления:
- `"Bidirectional"` означает, что том в контейнере будет получать новые монтирования с хоста или из других контейнеров, а собственные монтирования тома будут распространяться из контейнера на хост или в другие контейнеры. Обратите внимание, что этот режим рекурсивно применяется ко всем монтированиям в томе (в терминологии Linux — «rshared»).
- `"HostToContainer"` означает, что том в контейнере будет получать новые монтирования с хоста или из других контейнеров, но файловые системы, смонтированные внутри контейнера, не будут распространяться на хост или в другие контейнеры. Обратите внимание, что этот режим рекурсивно применяется ко всем монтированиям в томе (в терминологии Linux — «rslave»).
- `"None"` означает, что том в контейнере не будет получать новые монтирования с хоста или из других контейнеров, а файловые системы, смонтированные внутри контейнера, не будут распространяться на хост или в другие контейнеры. Обратите внимание, что этот режим соответствует значению «private» в терминологии Linux.
name *
string
Должно совпадать с именем тома.
readOnly
boolean
Том монтируется только для чтения, если значение равно true, в противном случае — для чтения и записи (false или значение не указано). По умолчанию — false.
recursiveReadOnly
string
RecursiveReadOnly указывает, следует ли рекурсивно обрабатывать монтирования только для чтения. Если ReadOnly имеет значение false, это поле не имеет значения и не должно быть указано. Если ReadOnly имеет значение true, а для этого поля задано значение Disabled, монтирование не становится рекурсивно доступным только для чтения. Если для этого поля задано значение IfPossible, монтирование становится рекурсивно доступным только для чтения, если это поддерживается средой выполнения контейнеров. Если для этого поля задано значение Enabled, монтирование становится рекурсивно доступным только для чтения, если это поддерживается средой выполнения контейнеров; в противном случае pod не будет запущен и будет сгенерирована ошибка с указанием причины. Если для этого поля задано значение IfPossible или Enabled, для MountPropagation должно быть задано значение None (или значение не должно быть указано — по умолчанию используется None). Если это поле не указано, оно считается эквивалентным Disabled.
subPath
string
Путь внутри тома, из которого следует смонтировать том контейнера. По умолчанию — "" (корень тома).
subPathExpr
string
Развернутый путь внутри тома, из которого следует смонтировать том контейнера. Работает аналогично SubPath, но ссылки на переменные среды $(VAR_NAME) раскрываются с использованием среды контейнера. По умолчанию — "" (корень тома). SubPathExpr и SubPath являются взаимоисключающими.

VolumeProjection

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

Поле Описание
clusterTrustBundle
ClusterTrustBundleProjection
ClusterTrustBundle позволяет pod получить доступ к полю `.spec.trustBundle` объектов ClusterTrustBundle в автоматически обновляемом файле. Альфа-версия; доступ определяется функциональным переключателем ClusterTrustBundleProjection. Объекты ClusterTrustBundle можно выбирать по имени или по сочетанию имени подписанта и селектора меток. Kubelet выполняет интенсивную нормализацию содержимого PEM, записываемого в файловую систему pod. Специфические возможности PEM, такие как комментарии между блоками и заголовки блоков, удаляются. Сертификаты дедуплицируются. Порядок сертификатов в файле произвольный, и со временем Kubelet может изменить его.
configMap
ConfigMapProjection
Информация configMap о данных configMap, которые нужно проецировать
downwardAPI
DownwardAPIProjection
Информация downwardAPI о данных downwardAPI, которые нужно проецировать
podCertificate
PodCertificateProjection
Проецирует автоматически обновляемый набор учетных данных (закрытый ключ и цепочку сертификатов), который pod может использовать в качестве клиента или сервера TLS. Kubelet создает закрытый ключ и использует его для отправки PodCertificateRequest указанному подписанту. После того как подписант одобрит запрос и выдаст цепочку сертификатов, Kubelet записывает ключ и цепочку сертификатов в файловую систему pod. Pod не запускается, пока не будут выданы сертификаты для каждого источника тома podCertificate в его спецификации. Kubelet начнет попытки обновить сертификат в указанное подписантом время, используя метку времени PodCertificateRequest.Status.BeginRefreshAt. Kubelet может записать один файл, указанный в поле credentialBundlePath, или отдельные файлы, указанные в полях keyPath и certificateChainPath. Набор учетных данных представляет собой один файл в формате PEM. Первая запись PEM — это закрытый ключ (в формате PKCS#8), а остальные записи PEM — цепочка сертификатов, выданная подписантом (обычно подписанты возвращают цепочку сертификатов в порядке от конечного сертификата к корневому). Рекомендуется использовать формат набора учетных данных, так как код приложения может считывать его атомарно. Если используются keyPath и certificateChainPath, приложению потребуется выполнить два отдельных чтения файлов. Если в этот момент произойдет обновление сертификата, прочитанные закрытый ключ и конечный сертификат могут не соответствовать друг другу. Приложению необходимо проверять это условие и повторять чтение, пока данные не будут согласованы. Указанный подписант определяет формат выдаваемого сертификата; сведения об использовании выданных им сертификатов см. в документации по реализации подписанта.
secret
SecretProjection
Информация secret о данных secret, которые нужно проецировать
serviceAccountToken
ServiceAccountTokenProjection
serviceAccountToken — это информация о данных serviceAccountToken, которые нужно проецировать

WeightedPodAffinityTerm

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

Поле Описание
podAffinityTerm *
PodAffinityTerm
Обязательное поле. Условие сродства pod, связанное с соответствующим весом.
weight *
integer
Вес, связанный с соответствием указанному podAffinityTerm; допустимый диапазон — 1–100.

WindowsSecurityContextOptions

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

Поле Описание
gmsaCredentialSpec
string
GMSACredentialSpec — это поле, в которое веб-перехватчик допуска GMSA (https://github.com/kubernetes-sigs/windows-gmsa) встраивает содержимое спецификации учетных данных GMSA, указанной в поле GMSACredentialSpecName.
gmsaCredentialSpecName
string
GMSACredentialSpecName — это имя используемой спецификации учетных данных GMSA.
hostProcess
boolean
HostProcess определяет, должен ли контейнер запускаться как контейнер «Host Process». Все контейнеры pod должны иметь одинаковое эффективное значение HostProcess (нельзя сочетать контейнеры HostProcess с контейнерами, не относящимися к HostProcess). Кроме того, если HostProcess имеет значение true, HostNetwork также должен иметь значение true.
runAsUserName
string
Имя пользователя Windows, от имени которого запускается точка входа процесса контейнера. Если значение не указано, по умолчанию используется пользователь, указанный в метаданных образа. Также может быть задано в PodSecurityContext. Если значение задано и в SecurityContext, и в PodSecurityContext, приоритет имеет значение, указанное в SecurityContext.

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

Spec-Zone.ru

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