×
描述

ReplicationController 代表副本控制器的配置。

类型

对象

规格

属性 类型 描述

apiVersion

字符串

APIVersion 定义了此对象表示的版本化模式。服务器应将识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

字符串

Kind 是一个字符串值,表示此对象表示的 REST 资源。服务器可以从客户端提交请求的端点推断出这一点。不可更新。使用驼峰命名法。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

如果 ReplicationController 的 Labels 为空,则将其默认为与复制控制器管理的 Pod(s) 相同。标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

对象

ReplicationControllerSpec 是副本控制器的规格。

status

对象

ReplicationControllerStatus 代表副本控制器的当前状态。

.spec

描述

ReplicationControllerSpec 是副本控制器的规格。

类型

对象

属性 类型 描述

minReadySeconds

整数

新创建的 Pod 必须准备就绪的最小秒数,在其任何容器崩溃之前,才能将其视为可用。默认为 0(pod 准备就绪后即可视为可用)

replicas

整数

Replicas 是所需副本的数量。这是一个指针,用于区分显式零和未指定。默认为 1。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller

selector

对象(字符串)

Selector 是对应该匹配 Replicas 计数的 Pod 的标签查询。如果 Selector 为空,则默认为 Pod 模板上存在的标签。为了受此复制控制器控制,必须匹配的标签键和值,如果为空,则默认为 Pod 模板上的标签。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/labels/#label-selectors

template

对象

PodTemplateSpec 描述了从模板创建 Pod 时 Pod 应具有的数据。

.spec.template

描述

PodTemplateSpec 描述了从模板创建 Pod 时 Pod 应具有的数据。

类型

对象

属性 类型 描述

metadata

ObjectMeta

标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

对象

PodSpec 是 Pod 的描述。

.spec.template.spec

描述

PodSpec 是 Pod 的描述。

类型

对象

必需
  • containers

属性 类型 描述

activeDeadlineSeconds

整数

Pod 相对于 StartTime 在节点上可能处于活动状态的可选持续时间(以秒为单位),在此之后,系统将主动尝试将其标记为失败并终止关联的容器。值必须是正整数。

affinity

对象

Affinity 是一组亲和调度规则。

automountServiceAccountToken

布尔值

AutomountServiceAccountToken 指示是否应自动挂载服务帐户令牌。

containers

数组

属于 Pod 的容器列表。目前无法添加或删除容器。Pod 中必须至少有一个容器。不可更新。

containers[]

对象

要在 Pod 中运行的单个应用程序容器。

dnsConfig

对象

PodDNSConfig 定义了 Pod 的 DNS 参数,此外还有从 DNSPolicy 生成的参数。

dnsPolicy

字符串

设置 Pod 的 DNS 策略。默认为“ClusterFirst”。有效值为“ClusterFirstWithHostNet”、“ClusterFirst”、“Default”或“None”。在 DNSConfig 中给出的 DNS 参数将与使用 DNSPolicy 选择的策略合并。要与 hostNetwork 一起设置 DNS 选项,您必须将 DNS 策略显式指定为“ClusterFirstWithHostNet”。

可能的枚举值:- "ClusterFirst" 指示 Pod 应首先使用集群 DNS,除非 hostNetwork 为 true,如果可用,则回退到默认(由 kubelet 确定)DNS 设置。- "ClusterFirstWithHostNet" 指示 Pod 应首先使用集群 DNS,如果可用,则回退到默认(由 kubelet 确定)DNS 设置。- "Default" 指示 Pod 应使用默认(由 kubelet 确定)DNS 设置。- "None" 指示 Pod 应使用空的 DNS 设置。DNS 参数(例如名称服务器和搜索路径)应通过 DNSConfig 定义。

enableServiceLinks

布尔值

EnableServiceLinks 指示是否应将有关服务的信息注入 Pod 的环境变量中,匹配 Docker 链接的语法。可选:默认为 true。

ephemeralContainers

数组

在此 Pod 中运行的临时容器列表。可以在现有 Pod 中运行临时容器以执行用户启动的操作,例如调试。创建 Pod 时无法指定此列表,并且无法通过更新 Pod 规范来修改此列表。为了向现有 Pod 添加临时容器,请使用 Pod 的 ephemeralcontainers 子资源。

ephemeralContainers[]

对象

临时容器是您可以添加到现有 Pod 中以执行用户启动的活动(例如调试)的临时容器。临时容器没有资源或调度保证,并且当它们退出或 Pod 被删除或重新启动时,它们不会被重新启动。如果临时容器导致 Pod 超出其资源分配,则 kubelet 可能会逐出 Pod。

要添加临时容器,请使用现有 Pod 的 ephemeralcontainers 子资源。临时容器不能被删除或重新启动。

hostAliases

数组

HostAliases 是一个可选的主机和 IP 列表,如果指定,则将注入到 Pod 的 hosts 文件中。

hostAliases[]

对象

HostAlias 保存 IP 和主机名之间的映射,这些映射将作为 Pod 的 hosts 文件中的条目注入。

hostIPC

布尔值

使用主机的 ipc 命名空间。可选:默认为 false。

hostNetwork

布尔值

为此 Pod 请求主机网络。使用主机的网络命名空间。如果设置此选项,则必须指定将使用的端口。默认为 false。

hostPID

布尔值

使用主机的 pid 命名空间。可选:默认为 false。

hostUsers

布尔值

使用主机的用户命名空间。可选:默认为 true。如果设置为 true 或不存在,则 Pod 将在主机用户命名空间中运行,这对于 Pod 需要主机用户命名空间中才有的功能(例如使用 CAP_SYS_MODULE 加载内核模块)很有用。设置为 false 时,将为 Pod 创建一个新的 userns。设置 false 有助于减轻容器突破漏洞,即使允许用户以 root 身份运行其容器,也不实际拥有主机上的 root 权限。此字段处于 alpha 级别,只有启用 UserNamespacesSupport 功能的服务器才会认可它。

hostname

字符串

指定 Pod 的主机名。如果未指定,则 Pod 的主机名将设置为系统定义的值。

imagePullSecrets

数组

ImagePullSecrets 是对同一命名空间中秘密的可选引用列表,用于拉取此 PodSpec 使用的任何图像。如果指定,这些秘密将传递给各个提取器实现以供其使用。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod

imagePullSecrets[]

对象

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

initContainers

数组

Pod所属的初始化容器列表。初始化容器在启动容器之前按顺序执行。如果任何初始化容器失败,则Pod被认为失败,并根据其restartPolicy进行处理。初始化容器或普通容器的名称在所有容器中必须唯一。初始化容器可能不具有生命周期操作、就绪探针、存活探针或启动探针。初始化容器的resourceRequirements在调度过程中被考虑在内,方法是找到每种资源类型的最高请求/限制,然后使用该值的最大值或普通容器的总和。限制以类似的方式应用于初始化容器。目前无法添加或删除初始化容器。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/init-containers/

initContainers[]

对象

要在 Pod 中运行的单个应用程序容器。

nodeName

字符串

NodeName 是一个请求,用于将此 Pod 调度到特定节点上。如果它非空,调度器只需将此 Pod 调度到该节点上,假设它符合资源要求。

nodeSelector

对象(字符串)

NodeSelector 是一个选择器,Pod 必须满足此选择器才能适应某个节点。选择器必须匹配节点的标签,Pod才能调度到该节点上。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/assign-pod-node/

os

对象

PodOS 定义 Pod 的操作系统参数。

overhead

对象 (Quantity)

Overhead 表示为给定 RuntimeClass 运行 Pod 相关的资源开销。此字段将在准入时由 RuntimeClass 准入控制器自动填充。如果启用 RuntimeClass 准入控制器,则不得在 Pod 创建请求中设置 overhead。RuntimeClass 准入控制器将拒绝已经设置 overhead 的 Pod 创建请求。如果在 PodSpec 中配置并选择了 RuntimeClass,则 Overhead 将设置为在相应的 RuntimeClass 中定义的值,否则它将保持未设置状态并被视为零。更多信息:https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md

preemptionPolicy

字符串

PreemptionPolicy 是抢占具有较低优先级的 Pod 的策略。Never、PreemptLowerPriority 之一。如果未设置,则默认为 PreemptLowerPriority。

可能的枚举值:- "Never" 表示 Pod 永远不会抢占具有较低优先级的其他 Pod。- "PreemptLowerPriority" 表示 Pod 可以抢占具有较低优先级的其他 Pod。

priority

整数

优先级值。各种系统组件使用此字段来查找 Pod 的优先级。启用优先级准入控制器后,它会阻止用户设置此字段。准入控制器从 PriorityClassName 填充此字段。值越高,优先级越高。

priorityClassName

字符串

如果指定,则指示 Pod 的优先级。“system-node-critical”和“system-cluster-critical”是两个特殊的关键字,它们表示最高的优先级,前者是最高的优先级。任何其他名称都必须通过创建具有该名称的 PriorityClass 对象来定义。如果没有指定,则如果不存在默认值,则 Pod 优先级将为默认值或零。

readinessGates

数组

如果指定,所有就绪门将被评估以确定 Pod 就绪情况。当所有容器就绪并且就绪门中指定的所有条件的状态都等于“True”时,Pod 就绪。更多信息:https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates

readinessGates[]

对象

PodReadinessGate 包含对 Pod 条件的引用。

resourceClaims

数组

ResourceClaims 定义在允许 Pod 启动之前必须分配和保留哪些 ResourceClaims。这些资源将通过名称提供给使用它们的容器。

这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能网关。

此字段是不可变的。

resourceClaims[]

对象

PodResourceClaim 通过 ClaimSource 引用 exactly 一个 ResourceClaim。它向其添加一个名称,该名称唯一标识 Pod 内的 ResourceClaim。需要访问 ResourceClaim 的容器使用此名称引用它。

restartPolicy

字符串

Pod 内所有容器的重启策略。Always、OnFailure、Never 之一。在某些情况下,可能只允许使用这些值的一个子集。默认为 Always。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy

可能的枚举值:- "Always" - "Never" - "OnFailure"

runtimeClassName

字符串

RuntimeClassName 指的是 node.k8s.io 组中的 RuntimeClass 对象,应使用它来运行此 Pod。如果没有 RuntimeClass 资源匹配命名的类,则不会运行 Pod。如果未设置或为空,则将使用“legacy”RuntimeClass,这是一个具有空定义并使用默认运行时处理程序的隐式类。更多信息:https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class

schedulerName

字符串

如果指定,则 Pod 将由指定的调度器调度。如果没有指定,则 Pod 将由默认调度器调度。

schedulingGates

数组

SchedulingGates 是一个不透明的值列表,如果指定,将阻止调度 Pod。如果 schedulingGates 不为空,则 Pod 将保持在 SchedulingGated 状态,并且调度器不会尝试调度 Pod。

SchedulingGates 只能在 Pod 创建时设置,之后才能删除。

schedulingGates[]

对象

PodSchedulingGate 与 Pod 相关联,以保护其调度。

securityContext

对象

PodSecurityContext 包含 Pod 级安全属性和公共容器设置。某些字段也存在于 container.securityContext 中。container.securityContext 的字段值优先于 PodSecurityContext 的字段值。

serviceAccount

字符串

DeprecatedServiceAccount 是 ServiceAccountName 的已弃用别名。已弃用:请改用 serviceAccountName。

serviceAccountName

字符串

ServiceAccountName 是用于运行此 Pod 的 ServiceAccount 的名称。更多信息:https://kubernetes.ac.cn/docs/tasks/configure-pod-container/configure-service-account/

setHostnameAsFQDN

布尔值

如果为 true,则 Pod 的主机名将配置为 Pod 的 FQDN,而不是叶名称(默认值)。在 Linux 容器中,这意味着在内核的主机名字段(struct utsname 的 nodename 字段)中设置 FQDN。在 Windows 容器中,这意味着将注册表键 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 的主机名注册表值设置为 FQDN。如果 Pod 没有 FQDN,则此设置无效。默认为 false。

shareProcessNamespace

布尔值

在 Pod 中的所有容器之间共享单个进程命名空间。设置此选项后,容器将能够查看和发送其他容器中的进程信号,并且每个容器中的第一个进程不会被分配 PID 1。HostPID 和 ShareProcessNamespace 不能同时设置。可选:默认为 false。

subdomain

字符串

如果指定,则完全限定的 Pod 主机名将为“<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>” 。如果没有指定,则 Pod 将根本没有域名。

terminationGracePeriodSeconds

整数

Pod 需要优雅终止的可选持续时间(秒)。可以在删除请求中减少。值必须是非负整数。值为零表示通过 kill 信号立即停止(没有关闭的机会)。如果此值为 nil,则将使用默认的宽限期。宽限期是在向 Pod 中运行的进程发送终止信号与使用 kill 信号强制停止进程之间的时间(以秒为单位)。将此值设置为超过进程的预期清理时间的长度。默认为 30 秒。

tolerations

数组

如果指定,则为 Pod 的容忍度。

tolerations[]

对象

此容忍度附加到的 Pod 容忍任何与三元组 <key,value,effect> 匹配的污点,使用匹配运算符 <operator>。

topologySpreadConstraints

数组

TopologySpreadConstraints 描述了一组 Pod 如何跨拓扑域进行分布。调度器将以遵守这些约束的方式调度 Pod。所有 topologySpreadConstraints 都是 AND 关系。

topologySpreadConstraints[]

对象

TopologySpreadConstraint 指定如何在给定的拓扑结构中分布匹配的 Pod。

volumes

数组

属于 Pod 的容器可以挂载的卷列表。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes

volumes[]

对象

Volume 表示 Pod 中一个命名的卷,Pod 中的任何容器都可以访问它。

.spec.template.spec.affinity

描述

Affinity 是一组亲和调度规则。

类型

对象

属性 类型 描述

nodeAffinity

对象

节点亲和性是一组节点亲和性调度规则。

podAffinity

对象

Pod 亲和性是一组 Pod 间亲和性调度规则。

podAntiAffinity

对象

Pod 反亲和性是一组 Pod 间反亲和性调度规则。

.spec.template.spec.affinity.nodeAffinity

描述

节点亲和性是一组节点亲和性调度规则。

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

调度器优先将 Pod 调度到满足此字段指定的亲和性表达式的节点,但它可以选择违反一个或多个表达式的节点。最优选的节点是权重总和最大的节点,即对于满足所有调度要求(资源请求、requiredDuringScheduling 亲和性表达式等)的每个节点,通过迭代此字段的元素并根据节点是否匹配相应的 matchExpressions 将“weight”添加到总和中来计算总和;总和最高的节点是最优选的节点。

preferredDuringSchedulingIgnoredDuringExecution[]

对象

空的优先调度项匹配所有具有隐式权重 0 的对象(即它是一个空操作)。空优先调度项不匹配任何对象(即也是一个空操作)。

requiredDuringSchedulingIgnoredDuringExecution

对象

节点选择器表示对一组节点进行的一个或多个标签查询结果的并集;也就是说,它表示节点选择器术语所表示的选择器的 OR。

.spec.template.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

调度器优先将 Pod 调度到满足此字段指定的亲和性表达式的节点,但它可以选择违反一个或多个表达式的节点。最优选的节点是权重总和最大的节点,即对于满足所有调度要求(资源请求、requiredDuringScheduling 亲和性表达式等)的每个节点,通过迭代此字段的元素并根据节点是否匹配相应的 matchExpressions 将“weight”添加到总和中来计算总和;总和最高的节点是最优选的节点。

类型

数组

.spec.template.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

空的优先调度项匹配所有具有隐式权重 0 的对象(即它是一个空操作)。空优先调度项不匹配任何对象(即也是一个空操作)。

类型

对象

必需
  • weight

  • preference

属性 类型 描述

preference

对象

空或空的节点选择器项不匹配任何对象。它们的要求是 AND 关系。TopologySelectorTerm 类型实现了 NodeSelectorTerm 的一个子集。

weight

整数

与匹配相应的 nodeSelectorTerm 相关的权重,范围为 1-100。

.spec.template.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference

描述

空或空的节点选择器项不匹配任何对象。它们的要求是 AND 关系。TopologySelectorTerm 类型实现了 NodeSelectorTerm 的一个子集。

类型

对象

属性 类型 描述

matchExpressions

数组

根据节点的标签列出节点选择器要求。

matchExpressions[]

对象

节点选择器要求是一个选择器,它包含值、键和一个关联键和值的运算符。

matchFields

数组

根据节点的字段列出节点选择器要求。

matchFields[]

对象

节点选择器要求是一个选择器,它包含值、键和一个关联键和值的运算符。

.spec.template.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions

描述

根据节点的标签列出节点选择器要求。

类型

数组

.spec.template.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchExpressions[]

描述

节点选择器要求是一个选择器,它包含值、键和一个关联键和值的运算符。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

表示键与一组值的关系。有效的运算符是 In、NotIn、Exists、DoesNotExist、Gt 和 Lt。

可能的枚举值:- "DoesNotExist" - "Exists" - "Gt" - "In" - "Lt" - "NotIn"

values

数组 (字符串)

一个字符串值数组。如果运算符是 In 或 NotIn,则 values 数组必须非空。如果运算符是 Exists 或 DoesNotExist,则 values 数组必须为空。如果运算符是 Gt 或 Lt,则 values 数组必须只有一个元素,它将被解释为整数。此数组在策略性合并修补程序期间被替换。

.spec.template.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields

描述

根据节点的字段列出节点选择器要求。

类型

数组

.spec.template.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields[]

描述

节点选择器要求是一个选择器,它包含值、键和一个关联键和值的运算符。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

表示键与一组值的关系。有效的运算符是 In、NotIn、Exists、DoesNotExist、Gt 和 Lt。

可能的枚举值:- "DoesNotExist" - "Exists" - "Gt" - "In" - "Lt" - "NotIn"

values

数组 (字符串)

一个字符串值数组。如果运算符是 In 或 NotIn,则 values 数组必须非空。如果运算符是 Exists 或 DoesNotExist,则 values 数组必须为空。如果运算符是 Gt 或 Lt,则 values 数组必须只有一个元素,它将被解释为整数。此数组在策略性合并修补程序期间被替换。

.spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

节点选择器表示对一组节点进行的一个或多个标签查询结果的并集;也就是说,它表示节点选择器术语所表示的选择器的 OR。

类型

对象

必需
  • nodeSelectorTerms

属性 类型 描述

nodeSelectorTerms

数组

必需。节点选择器术语列表。这些术语是 OR 关系。

nodeSelectorTerms[]

对象

空或空的节点选择器项不匹配任何对象。它们的要求是 AND 关系。TopologySelectorTerm 类型实现了 NodeSelectorTerm 的一个子集。

.spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms

描述

必需。节点选择器术语列表。这些术语是 OR 关系。

类型

数组

.spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[]

描述

空或空的节点选择器项不匹配任何对象。它们的要求是 AND 关系。TopologySelectorTerm 类型实现了 NodeSelectorTerm 的一个子集。

类型

对象

属性 类型 描述

matchExpressions

数组

根据节点的标签列出节点选择器要求。

matchExpressions[]

对象

节点选择器要求是一个选择器,它包含值、键和一个关联键和值的运算符。

matchFields

数组

根据节点的字段列出节点选择器要求。

matchFields[]

对象

节点选择器要求是一个选择器,它包含值、键和一个关联键和值的运算符。

.spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions

描述

根据节点的标签列出节点选择器要求。

类型

数组

.spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchExpressions[]

描述

节点选择器要求是一个选择器,它包含值、键和一个关联键和值的运算符。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

表示键与一组值的关系。有效的运算符是 In、NotIn、Exists、DoesNotExist、Gt 和 Lt。

可能的枚举值:- "DoesNotExist" - "Exists" - "Gt" - "In" - "Lt" - "NotIn"

values

数组 (字符串)

一个字符串值数组。如果运算符是 In 或 NotIn,则 values 数组必须非空。如果运算符是 Exists 或 DoesNotExist,则 values 数组必须为空。如果运算符是 Gt 或 Lt,则 values 数组必须只有一个元素,它将被解释为整数。此数组在策略性合并修补程序期间被替换。

.spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields

描述

根据节点的字段列出节点选择器要求。

类型

数组

.spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields[]

描述

节点选择器要求是一个选择器,它包含值、键和一个关联键和值的运算符。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

表示键与一组值的关系。有效的运算符是 In、NotIn、Exists、DoesNotExist、Gt 和 Lt。

可能的枚举值:- "DoesNotExist" - "Exists" - "Gt" - "In" - "Lt" - "NotIn"

values

数组 (字符串)

一个字符串值数组。如果运算符是 In 或 NotIn,则 values 数组必须非空。如果运算符是 Exists 或 DoesNotExist,则 values 数组必须为空。如果运算符是 Gt 或 Lt,则 values 数组必须只有一个元素,它将被解释为整数。此数组在策略性合并修补程序期间被替换。

.spec.template.spec.affinity.podAffinity

描述

Pod 亲和性是一组 Pod 间亲和性调度规则。

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

调度器优先将 Pod 调度到满足此字段指定的亲和性表达式的节点,但它可以选择违反一个或多个表达式的节点。最优选的节点是权重总和最大的节点,即对于满足所有调度要求(资源请求、requiredDuringScheduling 亲和性表达式等)的每个节点,通过迭代此字段的元素并根据节点上是否有匹配相应 podAffinityTerm 的 Pod 将“weight”添加到总和中来计算总和;总和最高的节点是最优选的节点。

preferredDuringSchedulingIgnoredDuringExecution[]

对象

所有匹配的 WeightedPodAffinityTerm 字段的权重都会按节点相加,以找到最优选的节点。

requiredDuringSchedulingIgnoredDuringExecution

数组

如果此字段指定的亲和性要求在调度时未满足,则 Pod 将不会被调度到该节点上。如果此字段指定的亲和性要求在 Pod 执行期间的某个时刻不再满足(例如,由于 Pod 标签更新),系统可能会也可能不会尝试最终将其从节点中逐出。当有多个元素时,对应于每个 podAffinityTerm 的节点列表将相交,即所有术语都必须满足。

requiredDuringSchedulingIgnoredDuringExecution[]

对象

定义一组 Pod(即相对于给定命名空间匹配 labelSelector 的那些 Pod),此 Pod 应该与之共置(亲和性)或不共置(反亲和性),其中共置定义为运行在节点上的 Pod,其标签键 `` 的值与任何节点上运行的 Pod 集中的任何节点的值匹配。

.spec.template.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

调度器优先将 Pod 调度到满足此字段指定的亲和性表达式的节点,但它可以选择违反一个或多个表达式的节点。最优选的节点是权重总和最大的节点,即对于满足所有调度要求(资源请求、requiredDuringScheduling 亲和性表达式等)的每个节点,通过迭代此字段的元素并根据节点上是否有匹配相应 podAffinityTerm 的 Pod 将“weight”添加到总和中来计算总和;总和最高的节点是最优选的节点。

类型

数组

.spec.template.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

所有匹配的 WeightedPodAffinityTerm 字段的权重都会按节点相加,以找到最优选的节点。

类型

对象

必需
  • weight

  • podAffinityTerm

属性 类型 描述

podAffinityTerm

对象

定义一组 Pod(即相对于给定命名空间匹配 labelSelector 的那些 Pod),此 Pod 应该与之共置(亲和性)或不共置(反亲和性),其中共置定义为运行在节点上的 Pod,其标签键 `` 的值与任何节点上运行的 Pod 集中的任何节点的值匹配。

weight

整数

与匹配相应的 podAffinityTerm 相关的权重,范围为 1-100。

.spec.template.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm

描述

定义一组 Pod(即相对于给定命名空间匹配 labelSelector 的那些 Pod),此 Pod 应该与之共置(亲和性)或不共置(反亲和性),其中共置定义为运行在节点上的 Pod,其标签键 `` 的值与任何节点上运行的 Pod 集中的任何节点的值匹配。

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

LabelSelector

一组资源上的标签查询,在本例中为 Pod。如果为空,则此 PodAffinityTerm 不匹配任何 Pod。

matchLabelKeys

数组 (字符串)

MatchLabelKeys 是一组 Pod 标签键,用于选择哪些 Pod 将被考虑在内。这些键用于从传入的 Pod 标签中查找值,这些键值对标签与labelSelector合并为key in (value),以选择将被考虑用于传入 Pod 的 Pod(反)亲和性的现有 Pod 组。传入 Pod 标签中不存在的键将被忽略。默认值为 empty。禁止在 matchLabelKeys 和 labelSelector 中同时存在相同的键。此外,如果未设置 labelSelector,则不能设置 matchLabelKeys。这是一个 alpha 字段,需要启用 MatchLabelKeysInPodAffinity 功能网关。

mismatchLabelKeys

数组 (字符串)

MismatchLabelKeys 是一组 Pod 标签键,用于选择哪些 Pod 将被考虑在内。这些键用于从传入的 Pod 标签中查找值,这些键值对标签与labelSelector合并为key notin (value),以选择将被考虑用于传入 Pod 的 Pod(反)亲和性的现有 Pod 组。传入 Pod 标签中不存在的键将被忽略。默认值为 empty。禁止在 mismatchLabelKeys 和 labelSelector 中同时存在相同的键。此外,如果未设置 labelSelector,则不能设置 mismatchLabelKeys。这是一个 alpha 字段,需要启用 MatchLabelKeysInPodAffinity 功能网关。

namespaceSelector

LabelSelector

对术语适用的命名空间集合的标签查询。该术语应用于此字段选择的命名空间和 namespaces 字段中列出的命名空间的并集。空选择器和空或空的命名空间列表表示“此 Pod 的命名空间”。空选择器({})匹配所有命名空间。

namespaces

数组 (字符串)

namespaces 指定术语适用的命名空间名称的静态列表。该术语应用于此字段中列出的命名空间和 namespaceSelector 选择的命名空间的并集。空或空的命名空间列表和空 namespaceSelector 表示“此 Pod 的命名空间”。

topologyKey

字符串

此 Pod 应该与在指定命名空间中与 labelSelector 匹配的 Pod 位于同一位置(亲和力)或不位于同一位置(反亲和力),其中同一位置定义为运行在节点上,该节点的标签值(键为 topologyKey)与任何选定 Pod 所在的任何节点的标签值匹配。不允许使用空的 topologyKey。

.spec.template.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

如果此字段指定的亲和性要求在调度时未满足,则 Pod 将不会被调度到该节点上。如果此字段指定的亲和性要求在 Pod 执行期间的某个时刻不再满足(例如,由于 Pod 标签更新),系统可能会也可能不会尝试最终将其从节点中逐出。当有多个元素时,对应于每个 podAffinityTerm 的节点列表将相交,即所有术语都必须满足。

类型

数组

.spec.template.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

描述

定义一组 Pod(即相对于给定命名空间匹配 labelSelector 的那些 Pod),此 Pod 应该与之共置(亲和性)或不共置(反亲和性),其中共置定义为运行在节点上的 Pod,其标签键 `` 的值与任何节点上运行的 Pod 集中的任何节点的值匹配。

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

LabelSelector

一组资源上的标签查询,在本例中为 Pod。如果为空,则此 PodAffinityTerm 不匹配任何 Pod。

matchLabelKeys

数组 (字符串)

MatchLabelKeys 是一组 Pod 标签键,用于选择哪些 Pod 将被考虑在内。这些键用于从传入的 Pod 标签中查找值,这些键值对标签与labelSelector合并为key in (value),以选择将被考虑用于传入 Pod 的 Pod(反)亲和性的现有 Pod 组。传入 Pod 标签中不存在的键将被忽略。默认值为 empty。禁止在 matchLabelKeys 和 labelSelector 中同时存在相同的键。此外,如果未设置 labelSelector,则不能设置 matchLabelKeys。这是一个 alpha 字段,需要启用 MatchLabelKeysInPodAffinity 功能网关。

mismatchLabelKeys

数组 (字符串)

MismatchLabelKeys 是一组 Pod 标签键,用于选择哪些 Pod 将被考虑在内。这些键用于从传入的 Pod 标签中查找值,这些键值对标签与labelSelector合并为key notin (value),以选择将被考虑用于传入 Pod 的 Pod(反)亲和性的现有 Pod 组。传入 Pod 标签中不存在的键将被忽略。默认值为 empty。禁止在 mismatchLabelKeys 和 labelSelector 中同时存在相同的键。此外,如果未设置 labelSelector,则不能设置 mismatchLabelKeys。这是一个 alpha 字段,需要启用 MatchLabelKeysInPodAffinity 功能网关。

namespaceSelector

LabelSelector

对术语适用的命名空间集合的标签查询。该术语应用于此字段选择的命名空间和 namespaces 字段中列出的命名空间的并集。空选择器和空或空的命名空间列表表示“此 Pod 的命名空间”。空选择器({})匹配所有命名空间。

namespaces

数组 (字符串)

namespaces 指定术语适用的命名空间名称的静态列表。该术语应用于此字段中列出的命名空间和 namespaceSelector 选择的命名空间的并集。空或空的命名空间列表和空 namespaceSelector 表示“此 Pod 的命名空间”。

topologyKey

字符串

此 Pod 应该与在指定命名空间中与 labelSelector 匹配的 Pod 位于同一位置(亲和力)或不位于同一位置(反亲和力),其中同一位置定义为运行在节点上,该节点的标签值(键为 topologyKey)与任何选定 Pod 所在的任何节点的标签值匹配。不允许使用空的 topologyKey。

.spec.template.spec.affinity.podAntiAffinity

描述

Pod 反亲和性是一组 Pod 间反亲和性调度规则。

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

调度器将优先将 Pod 调度到满足此字段指定的反亲和力表达式的节点,但可以选择违反一个或多个表达式的节点。最优选的节点是权重总和最大的节点,即对于满足所有调度要求(资源请求、requiredDuringScheduling 反亲和力表达式等)的每个节点,通过迭代此字段的元素并根据节点是否具有匹配相应 podAffinityTerm 的 Pod 来将“权重”添加到总和中来计算总和;总和最高的节点是最优选的节点。

preferredDuringSchedulingIgnoredDuringExecution[]

对象

所有匹配的 WeightedPodAffinityTerm 字段的权重都会按节点相加,以找到最优选的节点。

requiredDuringSchedulingIgnoredDuringExecution

数组

如果在调度时未满足此字段指定的反亲和力要求,则 Pod 将不会调度到该节点。如果此字段指定的反亲和力要求在 Pod 执行期间的某个时间点不再满足(例如,由于 Pod 标签更新),系统可能会也可能不会尝试最终从其节点中逐出 Pod。当有多个元素时,对应于每个 podAffinityTerm 的节点列表将相交,即所有术语都必须满足。

requiredDuringSchedulingIgnoredDuringExecution[]

对象

定义一组 Pod(即相对于给定命名空间匹配 labelSelector 的那些 Pod),此 Pod 应该与之共置(亲和性)或不共置(反亲和性),其中共置定义为运行在节点上的 Pod,其标签键 `` 的值与任何节点上运行的 Pod 集中的任何节点的值匹配。

.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

调度器将优先将 Pod 调度到满足此字段指定的反亲和力表达式的节点,但可以选择违反一个或多个表达式的节点。最优选的节点是权重总和最大的节点,即对于满足所有调度要求(资源请求、requiredDuringScheduling 反亲和力表达式等)的每个节点,通过迭代此字段的元素并根据节点是否具有匹配相应 podAffinityTerm 的 Pod 来将“权重”添加到总和中来计算总和;总和最高的节点是最优选的节点。

类型

数组

.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

所有匹配的 WeightedPodAffinityTerm 字段的权重都会按节点相加,以找到最优选的节点。

类型

对象

必需
  • weight

  • podAffinityTerm

属性 类型 描述

podAffinityTerm

对象

定义一组 Pod(即相对于给定命名空间匹配 labelSelector 的那些 Pod),此 Pod 应该与之共置(亲和性)或不共置(反亲和性),其中共置定义为运行在节点上的 Pod,其标签键 `` 的值与任何节点上运行的 Pod 集中的任何节点的值匹配。

weight

整数

与匹配相应的 podAffinityTerm 相关的权重,范围为 1-100。

.spec.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[].podAffinityTerm

描述

定义一组 Pod(即相对于给定命名空间匹配 labelSelector 的那些 Pod),此 Pod 应该与之共置(亲和性)或不共置(反亲和性),其中共置定义为运行在节点上的 Pod,其标签键 `` 的值与任何节点上运行的 Pod 集中的任何节点的值匹配。

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

LabelSelector

一组资源上的标签查询,在本例中为 Pod。如果为空,则此 PodAffinityTerm 不匹配任何 Pod。

matchLabelKeys

数组 (字符串)

MatchLabelKeys 是一组 Pod 标签键,用于选择哪些 Pod 将被考虑在内。这些键用于从传入的 Pod 标签中查找值,这些键值对标签与labelSelector合并为key in (value),以选择将被考虑用于传入 Pod 的 Pod(反)亲和性的现有 Pod 组。传入 Pod 标签中不存在的键将被忽略。默认值为 empty。禁止在 matchLabelKeys 和 labelSelector 中同时存在相同的键。此外,如果未设置 labelSelector,则不能设置 matchLabelKeys。这是一个 alpha 字段,需要启用 MatchLabelKeysInPodAffinity 功能网关。

mismatchLabelKeys

数组 (字符串)

MismatchLabelKeys 是一组 Pod 标签键,用于选择哪些 Pod 将被考虑在内。这些键用于从传入的 Pod 标签中查找值,这些键值对标签与labelSelector合并为key notin (value),以选择将被考虑用于传入 Pod 的 Pod(反)亲和性的现有 Pod 组。传入 Pod 标签中不存在的键将被忽略。默认值为 empty。禁止在 mismatchLabelKeys 和 labelSelector 中同时存在相同的键。此外,如果未设置 labelSelector,则不能设置 mismatchLabelKeys。这是一个 alpha 字段,需要启用 MatchLabelKeysInPodAffinity 功能网关。

namespaceSelector

LabelSelector

对术语适用的命名空间集合的标签查询。该术语应用于此字段选择的命名空间和 namespaces 字段中列出的命名空间的并集。空选择器和空或空的命名空间列表表示“此 Pod 的命名空间”。空选择器({})匹配所有命名空间。

namespaces

数组 (字符串)

namespaces 指定术语适用的命名空间名称的静态列表。该术语应用于此字段中列出的命名空间和 namespaceSelector 选择的命名空间的并集。空或空的命名空间列表和空 namespaceSelector 表示“此 Pod 的命名空间”。

topologyKey

字符串

此 Pod 应该与在指定命名空间中与 labelSelector 匹配的 Pod 位于同一位置(亲和力)或不位于同一位置(反亲和力),其中同一位置定义为运行在节点上,该节点的标签值(键为 topologyKey)与任何选定 Pod 所在的任何节点的标签值匹配。不允许使用空的 topologyKey。

.spec.template.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

如果在调度时未满足此字段指定的反亲和力要求,则 Pod 将不会调度到该节点。如果此字段指定的反亲和力要求在 Pod 执行期间的某个时间点不再满足(例如,由于 Pod 标签更新),系统可能会也可能不会尝试最终从其节点中逐出 Pod。当有多个元素时,对应于每个 podAffinityTerm 的节点列表将相交,即所有术语都必须满足。

类型

数组

.spec.template.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

描述

定义一组 Pod(即相对于给定命名空间匹配 labelSelector 的那些 Pod),此 Pod 应该与之共置(亲和性)或不共置(反亲和性),其中共置定义为运行在节点上的 Pod,其标签键 `` 的值与任何节点上运行的 Pod 集中的任何节点的值匹配。

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

LabelSelector

一组资源上的标签查询,在本例中为 Pod。如果为空,则此 PodAffinityTerm 不匹配任何 Pod。

matchLabelKeys

数组 (字符串)

MatchLabelKeys 是一组 Pod 标签键,用于选择哪些 Pod 将被考虑在内。这些键用于从传入的 Pod 标签中查找值,这些键值对标签与labelSelector合并为key in (value),以选择将被考虑用于传入 Pod 的 Pod(反)亲和性的现有 Pod 组。传入 Pod 标签中不存在的键将被忽略。默认值为 empty。禁止在 matchLabelKeys 和 labelSelector 中同时存在相同的键。此外,如果未设置 labelSelector,则不能设置 matchLabelKeys。这是一个 alpha 字段,需要启用 MatchLabelKeysInPodAffinity 功能网关。

mismatchLabelKeys

数组 (字符串)

MismatchLabelKeys 是一组 Pod 标签键,用于选择哪些 Pod 将被考虑在内。这些键用于从传入的 Pod 标签中查找值,这些键值对标签与labelSelector合并为key notin (value),以选择将被考虑用于传入 Pod 的 Pod(反)亲和性的现有 Pod 组。传入 Pod 标签中不存在的键将被忽略。默认值为 empty。禁止在 mismatchLabelKeys 和 labelSelector 中同时存在相同的键。此外,如果未设置 labelSelector,则不能设置 mismatchLabelKeys。这是一个 alpha 字段,需要启用 MatchLabelKeysInPodAffinity 功能网关。

namespaceSelector

LabelSelector

对术语适用的命名空间集合的标签查询。该术语应用于此字段选择的命名空间和 namespaces 字段中列出的命名空间的并集。空选择器和空或空的命名空间列表表示“此 Pod 的命名空间”。空选择器({})匹配所有命名空间。

namespaces

数组 (字符串)

namespaces 指定术语适用的命名空间名称的静态列表。该术语应用于此字段中列出的命名空间和 namespaceSelector 选择的命名空间的并集。空或空的命名空间列表和空 namespaceSelector 表示“此 Pod 的命名空间”。

topologyKey

字符串

此 Pod 应该与在指定命名空间中与 labelSelector 匹配的 Pod 位于同一位置(亲和力)或不位于同一位置(反亲和力),其中同一位置定义为运行在节点上,该节点的标签值(键为 topologyKey)与任何选定 Pod 所在的任何节点的标签值匹配。不允许使用空的 topologyKey。

.spec.template.spec.containers

描述

属于 Pod 的容器列表。目前无法添加或删除容器。Pod 中必须至少有一个容器。不可更新。

类型

数组

.spec.template.spec.containers[]

描述

要在 Pod 中运行的单个应用程序容器。

类型

对象

必需
  • name

属性 类型 描述

args

数组 (字符串)

入口点的参数。如果未提供,则使用容器映像的 CMD。变量引用 $(VAR_NAME) 使用容器的环境进行扩展。如果无法解析变量,则输入字符串中的引用将保持不变。双美元符号将简化为单个美元符号,允许转义 $(VAR_NAME) 语法:即“(VAR_NAME)”将生成字符串字面量“$(VAR_NAME)”。转义的引用将永远不会扩展,无论变量是否存在。

command

数组 (字符串)

入口点数组。不在 shell 中执行。如果未提供,则使用容器映像的 ENTRYPOINT。变量引用 $(VAR_NAME) 使用容器的环境进行扩展。如果无法解析变量,则输入字符串中的引用将保持不变。双美元符号将简化为单个美元符号,允许转义 $(VAR_NAME) 语法:即“(VAR_NAME)”将生成字符串字面量“$(VAR_NAME)”。转义的引用将永远不会扩展,无论变量是否存在。

env

数组

要在容器中设置的环境变量列表。不能更新。

env[]

对象

EnvVar 表示容器中存在的环境变量。

envFrom

数组

用于填充容器中环境变量的源列表。源中定义的键必须是 C_IDENTIFIER。当容器启动时,所有无效键都将作为事件报告。当键存在于多个源中时,与最后一个源关联的值将优先。使用重复键的 Env 定义的值将优先。不能更新。

envFrom[]

对象

EnvFromSource 表示一组 ConfigMap 的来源

镜像

字符串

容器镜像名称。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images 此字段是可选的,允许更高级别的配置管理为部署和 StatefulSets 等工作负载控制器中的容器镜像设置默认值或覆盖容器镜像。

镜像拉取策略

字符串

镜像拉取策略。取值范围为 Always、Never、IfNotPresent。如果指定了 :latest 标签,则默认为 Always,否则默认为 IfNotPresent。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images#updating-images

可能的枚举值:- "Always" 表示 kubelet 始终尝试拉取最新的镜像。如果拉取失败,容器将失败。- "IfNotPresent" 表示如果磁盘上不存在镜像,则 kubelet 会拉取镜像。如果镜像不存在并且拉取失败,容器将失败。- "Never" 表示 kubelet 从不拉取镜像,而只使用本地镜像。如果镜像不存在,容器将失败。

生命周期

对象

Lifecycle 描述了管理系统应该如何响应容器生命周期事件。对于 PostStart 和 PreStop 生命周期处理器,除非容器进程失败(在这种情况下处理器将被中止),否则容器的管理将阻塞直到操作完成。

存活性探针

对象

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

name

字符串

指定为 DNS_LABEL 的容器名称。pod 中的每个容器都必须具有唯一的名称 (DNS_LABEL)。无法更新。

端口

数组

要从容器中暴露的端口列表。此处未指定端口并不阻止该端口被暴露。容器内侦听默认“0.0.0.0”地址的任何端口都可从网络访问。使用策略性合并补丁修改此数组可能会损坏数据。更多信息参见 https://github.com/kubernetes/kubernetes/issues/108255。无法更新。

ports[]

对象

ContainerPort 表示单个容器中的网络端口。

就绪探针

对象

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

调整策略

数组

容器的资源调整策略。

resizePolicy[]

对象

ContainerResizePolicy 表示容器的资源调整策略。

资源

对象

ResourceRequirements 描述计算资源需求。

restartPolicy

字符串

RestartPolicy 定义 pod 中各个容器的重启行为。此字段可能仅针对 init 容器设置,并且唯一允许的值为“Always”。对于非 init 容器或未指定此字段的情况,重启行为由 Pod 的重启策略和容器类型定义。将 init 容器的 RestartPolicy 设置为“Always”将产生以下效果:此 init 容器将在退出时持续重启,直到所有常规容器都终止。一旦所有常规容器都已完成,所有具有 restartPolicy“Always”的 init 容器都将关闭。此生命周期与普通 init 容器不同,通常被称为“sidecar”容器。尽管此 init 容器仍在 init 容器序列中启动,但在继续执行下一个 init 容器之前,它不会等待容器完成。相反,下一个 init 容器会在启动此 init 容器之后或任何 startupProbe 成功完成之后立即启动。

securityContext

对象

SecurityContext 包含将应用于容器的安全配置。某些字段同时存在于 SecurityContext 和 PodSecurityContext 中。当两者都设置时,SecurityContext 中的值优先。

启动探针

对象

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

标准输入

布尔值

此容器是否应为容器运行时中的标准输入分配缓冲区。如果未设置此项,则容器中来自标准输入的读取将始终导致 EOF。默认为 false。

一次性标准输入

布尔值

容器运行时是否应在单个连接打开标准输入通道后关闭它。当 stdin 为 true 时,stdin 流将在多个连接会话中保持打开状态。如果 stdinOnce 设置为 true,则在容器启动时打开 stdin,在第一个客户端连接到 stdin 之前为空,然后保持打开状态并接受数据,直到客户端断开连接,此时 stdin 关闭并保持关闭状态,直到容器重启。如果此标志为 false,则从 stdin 读取的容器进程将永远不会收到 EOF。默认为 false

终止消息路径

字符串

可选:将写入容器终止消息的文件挂载到容器文件系统的路径。写入的消息旨在作为简短的最终状态,例如断言失败消息。如果超过 4096 字节,则节点将被截断。所有容器的总消息长度将限制为 12kb。默认为 /dev/termination-log。无法更新。

终止消息策略

字符串

指示应如何填充终止消息。File 将使用 terminationMessagePath 的内容来填充成功和失败时的容器状态消息。FallbackToLogsOnError 如果终止消息文件为空并且容器以错误退出,则将使用容器日志输出的最后一段。日志输出限制为 2048 字节或 80 行,取较小者。默认为 File。无法更新。

可能的枚举值:- "FallbackToLogsOnError" 当容器以错误退出并且 terminationMessagePath 没有内容时,将读取容器日志的最新内容作为容器状态消息。- "File" 是默认行为,当容器退出时,它会将容器状态消息设置为容器 terminationMessagePath 的内容。

终端

布尔值

此容器是否应为自己分配一个 TTY,还需要 'stdin' 为 true。默认为 false。

卷设备

数组

volumeDevices 是容器要使用的块设备列表。

volumeDevices[]

对象

volumeDevice 描述容器内原始块设备的映射。

卷挂载

数组

要挂载到容器文件系统的 Pod 卷。无法更新。

volumeMounts[]

对象

VolumeMount 描述在容器内挂载卷。

工作目录

字符串

容器的工作目录。如果未指定,则将使用容器运行时的默认值,这可能在容器镜像中配置。无法更新。

.spec.template.spec.containers[].env

描述

要在容器中设置的环境变量列表。不能更新。

类型

数组

.spec.template.spec.containers[].env[]

描述

EnvVar 表示容器中存在的环境变量。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

环境变量的名称。必须是 C_IDENTIFIER。

字符串

变量引用 $(VAR_NAME) 使用容器中先前定义的环境变量和任何服务环境变量进行扩展。如果无法解析变量,则输入字符串中的引用将保持不变。双美元符号将减少为单个美元符号,这允许转义 $(VAR_NAME) 语法:即“(VAR_NAME)”将生成字符串字面量“$(VAR_NAME)”。转义的引用将永远不会扩展,无论变量是否存在。

值来源

对象

EnvVarSource 表示 EnvVar 值的来源。

.spec.template.spec.containers[].env[].valueFrom

描述

EnvVarSource 表示 EnvVar 值的来源。

类型

对象

属性 类型 描述

ConfigMap 密钥引用

对象

从 ConfigMap 中选择一个键。

字段引用

对象

ObjectFieldSelector 选择对象的 APIVersioned 字段。

资源字段引用

对象

ResourceFieldSelector 表示容器资源(cpu、内存)及其输出格式

密钥引用

对象

SecretKeySelector 选择 Secret 的一个键。

.spec.template.spec.containers[].env[].valueFrom.configMapKeyRef

描述

从 ConfigMap 中选择一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

指定是否必须定义 ConfigMap 或其键

.spec.template.spec.containers[].env[].valueFrom.fieldRef

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

FieldPath 所基于的模式版本,默认为“v1”。

fieldPath

字符串

在指定的 API 版本中选择的字段路径。

.spec.template.spec.containers[].env[].valueFrom.resourceFieldRef

描述

ResourceFieldSelector 表示容器资源(cpu、内存)及其输出格式

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

容器名称:卷必需,环境变量可选

divisor

数量

指定公开资源的输出格式,默认为“1”

resource

字符串

必需:要选择的资源

.spec.template.spec.containers[].env[].valueFrom.secretKeyRef

描述

SecretKeySelector 选择 Secret 的一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的密钥的密钥。必须是有效的密钥。

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

指定是否必须定义 Secret 或其键

.spec.template.spec.containers[].envFrom

描述

用于填充容器中环境变量的源列表。源中定义的键必须是 C_IDENTIFIER。当容器启动时,所有无效键都将作为事件报告。当键存在于多个源中时,与最后一个源关联的值将优先。使用重复键的 Env 定义的值将优先。不能更新。

类型

数组

.spec.template.spec.containers[].envFrom[]

描述

EnvFromSource 表示一组 ConfigMap 的来源

类型

对象

属性 类型 描述

configMapRef

对象

ConfigMapEnvSource 选择一个 ConfigMap 来填充环境变量。

目标 ConfigMap 的 Data 字段的内容将表示为环境变量的键值对。

prefix

字符串

一个可选标识符,用于在 ConfigMap 中每个键之前添加。必须是 C_IDENTIFIER。

secretRef

对象

SecretEnvSource 选择一个 Secret 来填充环境变量。

目标 Secret 的 Data 字段的内容将表示为环境变量的键值对。

.spec.template.spec.containers[].envFrom[].configMapRef

描述

ConfigMapEnvSource 选择一个 ConfigMap 来填充环境变量。

目标 ConfigMap 的 Data 字段的内容将表示为环境变量的键值对。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

指定是否必须定义 ConfigMap

.spec.template.spec.containers[].envFrom[].secretRef

描述

SecretEnvSource 选择一个 Secret 来填充环境变量。

目标 Secret 的 Data 字段的内容将表示为环境变量的键值对。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

指定是否必须定义 Secret

.spec.template.spec.containers[].lifecycle

描述

Lifecycle 描述了管理系统应该如何响应容器生命周期事件。对于 PostStart 和 PreStop 生命周期处理器,除非容器进程失败(在这种情况下处理器将被中止),否则容器的管理将阻塞直到操作完成。

类型

对象

属性 类型 描述

postStart

对象

LifecycleHandler 定义了生命周期钩子中应采取的特定操作。除 TCPSocket 外,必须且只能指定一个字段。

preStop

对象

LifecycleHandler 定义了生命周期钩子中应采取的特定操作。除 TCPSocket 外,必须且只能指定一个字段。

.spec.template.spec.containers[].lifecycle.postStart

描述

LifecycleHandler 定义了生命周期钩子中应采取的特定操作。除 TCPSocket 外,必须且只能指定一个字段。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

sleep

对象

SleepAction 描述了“sleep”操作。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

.spec.template.spec.containers[].lifecycle.postStart.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.containers[].lifecycle.postStart.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.containers[].lifecycle.postStart.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.containers[].lifecycle.postStart.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.containers[].lifecycle.postStart.sleep

描述

SleepAction 描述了“sleep”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

.spec.template.spec.containers[].lifecycle.postStart.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.containers[].lifecycle.preStop

描述

LifecycleHandler 定义了生命周期钩子中应采取的特定操作。除 TCPSocket 外,必须且只能指定一个字段。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

sleep

对象

SleepAction 描述了“sleep”操作。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

.spec.template.spec.containers[].lifecycle.preStop.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.containers[].lifecycle.preStop.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.containers[].lifecycle.preStop.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.containers[].lifecycle.preStop.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.containers[].lifecycle.preStop.sleep

描述

SleepAction 描述了“sleep”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

.spec.template.spec.containers[].lifecycle.preStop.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.containers[].livenessProbe

描述

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

failureThreshold

整数

探测成功后被认为失败的最小连续失败次数。默认为 3。最小值为 1。

grpc

对象

GRPC 指定涉及 GRPC 端口的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

initialDelaySeconds

整数

容器启动后到启动存活性探测之前的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

执行探测的频率(以秒为单位)。默认为 10 秒。最小值为 1。

successThreshold

整数

探测失败后被认为成功的最小连续成功次数。默认为 1。存活性探测和启动探测必须为 1。最小值为 1。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

terminationGracePeriodSeconds

整数

探针失败后,Pod优雅终止的可选持续时间(秒)。宽限期是在向 Pod 中运行的进程发送终止信号与使用 kill 信号强制停止进程之间的时间间隔(秒)。将此值设置为大于进程预期清理时间的时长。如果此值为 nil,则将使用 Pod 的 terminationGracePeriodSeconds。否则,此值将覆盖 Pod 规范中提供的值。值必须是非负整数。值为零表示立即通过 kill 信号停止(没有关闭的机会)。这是一个 Beta 功能,需要启用 ProbeTerminationGracePeriod 功能网关。最小值为 1。如果未设置,则使用 spec.terminationGracePeriodSeconds。

超时秒数

整数

探针超时之前的秒数。默认为 1 秒。最小值为 1。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

.spec.template.spec.containers[].livenessProbe.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.containers[].livenessProbe.grpc

描述

GRPC 指定涉及 GRPC 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

port

整数

gRPC 服务的端口号。数字必须在 1 到 65535 的范围内。

服务

字符串

服务是在 gRPC HealthCheckRequest 中放置的服务名称(参见 https://github.com/grpc/grpc/blob/master/doc/health-checking.md)。

如果未指定,则默认行为由 gRPC 定义。

.spec.template.spec.containers[].livenessProbe.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.containers[].livenessProbe.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.containers[].livenessProbe.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.containers[].livenessProbe.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.containers[].ports

描述

要从容器中暴露的端口列表。此处未指定端口并不阻止该端口被暴露。容器内侦听默认“0.0.0.0”地址的任何端口都可从网络访问。使用策略性合并补丁修改此数组可能会损坏数据。更多信息参见 https://github.com/kubernetes/kubernetes/issues/108255。无法更新。

类型

数组

.spec.template.spec.containers[].ports[]

描述

ContainerPort 表示单个容器中的网络端口。

类型

对象

必需
  • 容器端口

属性 类型 描述

容器端口

整数

要在 Pod 的 IP 地址上公开的端口号。这必须是一个有效的端口号,0 < x < 65536。

主机IP

字符串

将外部端口绑定到的主机 IP。

主机端口

整数

要在主机上公开的端口号。如果指定,这必须是一个有效的端口号,0 < x < 65536。如果指定了 HostNetwork,则这必须与 ContainerPort 匹配。大多数容器不需要这个。

name

字符串

如果指定,则必须是 IANA_SVC_NAME 并且在 Pod 中必须唯一。Pod 中的每个命名端口都必须具有唯一的名称。可以由服务引用的端口名称。

协议

字符串

端口协议。必须是 UDP、TCP 或 SCTP。默认为“TCP”。

可能的枚举值:- "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

.spec.template.spec.containers[].readinessProbe

描述

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

failureThreshold

整数

探测成功后被认为失败的最小连续失败次数。默认为 3。最小值为 1。

grpc

对象

GRPC 指定涉及 GRPC 端口的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

initialDelaySeconds

整数

容器启动后到启动存活性探测之前的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

执行探测的频率(以秒为单位)。默认为 10 秒。最小值为 1。

successThreshold

整数

探测失败后被认为成功的最小连续成功次数。默认为 1。存活性探测和启动探测必须为 1。最小值为 1。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

terminationGracePeriodSeconds

整数

探针失败后,Pod优雅终止的可选持续时间(秒)。宽限期是在向 Pod 中运行的进程发送终止信号与使用 kill 信号强制停止进程之间的时间间隔(秒)。将此值设置为大于进程预期清理时间的时长。如果此值为 nil,则将使用 Pod 的 terminationGracePeriodSeconds。否则,此值将覆盖 Pod 规范中提供的值。值必须是非负整数。值为零表示立即通过 kill 信号停止(没有关闭的机会)。这是一个 Beta 功能,需要启用 ProbeTerminationGracePeriod 功能网关。最小值为 1。如果未设置,则使用 spec.terminationGracePeriodSeconds。

超时秒数

整数

探针超时之前的秒数。默认为 1 秒。最小值为 1。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

.spec.template.spec.containers[].readinessProbe.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.containers[].readinessProbe.grpc

描述

GRPC 指定涉及 GRPC 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

port

整数

gRPC 服务的端口号。数字必须在 1 到 65535 的范围内。

服务

字符串

服务是在 gRPC HealthCheckRequest 中放置的服务名称(参见 https://github.com/grpc/grpc/blob/master/doc/health-checking.md)。

如果未指定,则默认行为由 gRPC 定义。

.spec.template.spec.containers[].readinessProbe.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.containers[].readinessProbe.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.containers[].readinessProbe.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.containers[].readinessProbe.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.containers[].resizePolicy

描述

容器的资源调整策略。

类型

数组

.spec.template.spec.containers[].resizePolicy[]

描述

ContainerResizePolicy 表示容器的资源调整策略。

类型

对象

必需
  • 资源名称

  • restartPolicy

属性 类型 描述

资源名称

字符串

此资源调整策略适用的资源名称。支持的值:cpu、memory。

restartPolicy

字符串

调整指定资源大小时要应用的重启策略。如果未指定,则默认为 NotRequired。

.spec.template.spec.containers[].resources

描述

ResourceRequirements 描述计算资源需求。

类型

对象

属性 类型 描述

声明

数组

Claims 列出了此容器使用的资源名称,这些资源在 spec.resourceClaims 中定义。

这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能网关。

此字段是不可变的。它只能为容器设置。

claims[]

对象

ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。

限制

对象 (Quantity)

Limits 描述了允许的最大计算资源量。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

请求

对象 (Quantity)

Requests 描述了所需的最小计算资源量。如果省略容器的 Requests,则默认为 Limits(如果明确指定),否则默认为实现定义的值。Requests 不能超过 Limits。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

.spec.template.spec.containers[].resources.claims

描述

Claims 列出了此容器使用的资源名称,这些资源在 spec.resourceClaims 中定义。

这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能网关。

此字段是不可变的。它只能为容器设置。

类型

数组

.spec.template.spec.containers[].resources.claims[]

描述

ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

名称必须与使用此字段的 Pod 的 pod.spec.resourceClaims 中的一个条目的名称匹配。它使该资源在容器内可用。

.spec.template.spec.containers[].securityContext

描述

SecurityContext 包含将应用于容器的安全配置。某些字段同时存在于 SecurityContext 和 PodSecurityContext 中。当两者都设置时,SecurityContext 中的值优先。

类型

对象

属性 类型 描述

允许权限提升

布尔值

AllowPrivilegeEscalation 控制进程是否可以获得比其父进程更多的权限。此布尔值直接控制是否会在容器进程上设置 no_new_privs 标志。当容器满足以下条件时,AllowPrivilegeEscalation 始终为 true:1) 作为 Privileged 运行 2) 具有 CAP_SYS_ADMIN 请注意,当 spec.os.name 为 windows 时,无法设置此字段。

AppArmor 配置文件

对象

AppArmorProfile 定义 Pod 或容器的 AppArmor 设置。

功能

对象

向运行中的容器添加和删除 POSIX 功能。

特权模式

布尔值

以特权模式运行容器。特权容器中的进程本质上等同于主机上的 root 用户。默认为 false。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

proc 挂载

字符串

procMount 表示要为容器使用的 proc 挂载类型。默认为 DefaultProcMount,它使用容器运行时针对只读路径和屏蔽路径的默认值。这需要启用 ProcMountType 功能标志。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

可能的枚举值:- "Default" 使用容器运行时针对 /proc 的只读路径和屏蔽路径的默认值。大多数容器运行时都会屏蔽 /proc 中的某些路径,以避免意外地暴露特殊设备或信息的安全风险。- "Unmasked" 会绕过容器运行时的默认屏蔽行为,并确保新创建的 /proc 容器保持完整,没有任何修改。

只读根文件系统

布尔值

此容器是否具有只读根文件系统。默认为 false。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

运行时组ID

整数

运行容器进程入口点的 GID。如果未设置,则使用运行时默认值。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

非root用户运行

布尔值

指示容器必须作为非 root 用户运行。如果为 true,则 Kubelet 将在运行时验证映像,以确保它不以 UID 0(root)运行,如果确实如此,则启动容器将失败。如果未设置或为 false,则不会执行此类验证。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值优先。

运行时用户ID

整数

运行容器进程入口点的UID。如果未指定,则默认为镜像元数据中指定的用户。也可以在PodSecurityContext中设置。如果在SecurityContext和PodSecurityContext中都设置了,则SecurityContext中指定的值优先。请注意,当spec.os.name为windows时,不能设置此字段。

seLinuxOptions

对象

SELinuxOptions是应用于容器的标签。

seccompProfile

对象

SeccompProfile定义pod/容器的seccomp配置文件设置。只能设置一个配置文件源。

windowsOptions

对象

WindowsSecurityContextOptions包含Windows特定的选项和凭据。

.spec.template.spec.containers[].securityContext.appArmorProfile

描述

AppArmorProfile 定义 Pod 或容器的 AppArmor 设置。

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

localhostProfile指示应使用节点上加载的配置文件。配置文件必须预先配置在节点上才能工作。必须与配置文件的加载名称匹配。当且仅当类型为“Localhost”时才必须设置。

类型

字符串

type指示将应用哪种AppArmor配置文件。有效选项包括:Localhost - 节点上预加载的配置文件。RuntimeDefault - 容器运行时的默认配置文件。Unconfined - 没有AppArmor强制执行。

可能的枚举值:- "Localhost" 指示应使用节点上预加载的配置文件。- "RuntimeDefault" 指示应使用容器运行时的默认AppArmor配置文件。- "Unconfined" 指示不应强制执行任何AppArmor配置文件。

.spec.template.spec.containers[].securityContext.capabilities

描述

向运行中的容器添加和删除 POSIX 功能。

类型

对象

属性 类型 描述

add

数组 (字符串)

添加的功能

drop

数组 (字符串)

删除的功能

.spec.template.spec.containers[].securityContext.seLinuxOptions

描述

SELinuxOptions是应用于容器的标签。

类型

对象

属性 类型 描述

level

字符串

Level是应用于容器的SELinux级别标签。

role

字符串

Role是应用于容器的SELinux角色标签。

类型

字符串

Type是应用于容器的SELinux类型标签。

user

字符串

User是应用于容器的SELinux用户标签。

.spec.template.spec.containers[].securityContext.seccompProfile

描述

SeccompProfile定义pod/容器的seccomp配置文件设置。只能设置一个配置文件源。

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

localhostProfile指示应使用节点上文件中定义的配置文件。配置文件必须预先配置在节点上才能工作。必须是相对于kubelet配置的seccomp配置文件位置的下降路径。如果类型为“Localhost”,则必须设置。对于任何其他类型,都必须不设置。

类型

字符串

type指示将应用哪种seccomp配置文件。有效选项包括

Localhost - 应使用节点上文件中定义的配置文件。RuntimeDefault - 应使用容器运行时的默认配置文件。Unconfined - 不应应用任何配置文件。

可能的枚举值:- "Localhost" 指示应使用节点上文件中定义的配置文件。该文件相对于<kubelet-root-dir>/seccomp的位置。- "RuntimeDefault" 表示默认的容器运行时seccomp配置文件。- "Unconfined" 指示不应用任何seccomp配置文件(又称无限制)。

.spec.template.spec.containers[].securityContext.windowsOptions

描述

WindowsSecurityContextOptions包含Windows特定的选项和凭据。

类型

对象

属性 类型 描述

gmsaCredentialSpec

字符串

GMSACredentialSpec是GMSA准入Webhook(https://github.com/kubernetes-sigs/windows-gmsa)内联由GMSACredentialSpecName字段命名的GMSA凭据规范内容的地方。

gmsaCredentialSpecName

字符串

GMSACredentialSpecName是要使用的GMSA凭据规范的名称。

hostProcess

布尔值

HostProcess确定是否应将容器作为“主机进程”容器运行。Pod的所有容器都必须具有相同的有效HostProcess值(不允许混合使用HostProcess容器和非HostProcess容器)。此外,如果HostProcess为true,则HostNetwork也必须设置为true。

runAsUserName

字符串

在Windows中运行容器进程入口点的用户名。如果未指定,则默认为镜像元数据中指定的用户。也可以在PodSecurityContext中设置。如果在SecurityContext和PodSecurityContext中都设置了,则SecurityContext中指定的值优先。

.spec.template.spec.containers[].startupProbe

描述

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

failureThreshold

整数

探测成功后被认为失败的最小连续失败次数。默认为 3。最小值为 1。

grpc

对象

GRPC 指定涉及 GRPC 端口的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

initialDelaySeconds

整数

容器启动后到启动存活性探测之前的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

执行探测的频率(以秒为单位)。默认为 10 秒。最小值为 1。

successThreshold

整数

探测失败后被认为成功的最小连续成功次数。默认为 1。存活性探测和启动探测必须为 1。最小值为 1。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

terminationGracePeriodSeconds

整数

探针失败后,Pod优雅终止的可选持续时间(秒)。宽限期是在向 Pod 中运行的进程发送终止信号与使用 kill 信号强制停止进程之间的时间间隔(秒)。将此值设置为大于进程预期清理时间的时长。如果此值为 nil,则将使用 Pod 的 terminationGracePeriodSeconds。否则,此值将覆盖 Pod 规范中提供的值。值必须是非负整数。值为零表示立即通过 kill 信号停止(没有关闭的机会)。这是一个 Beta 功能,需要启用 ProbeTerminationGracePeriod 功能网关。最小值为 1。如果未设置,则使用 spec.terminationGracePeriodSeconds。

超时秒数

整数

探针超时之前的秒数。默认为 1 秒。最小值为 1。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

.spec.template.spec.containers[].startupProbe.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.containers[].startupProbe.grpc

描述

GRPC 指定涉及 GRPC 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

port

整数

gRPC 服务的端口号。数字必须在 1 到 65535 的范围内。

服务

字符串

服务是在 gRPC HealthCheckRequest 中放置的服务名称(参见 https://github.com/grpc/grpc/blob/master/doc/health-checking.md)。

如果未指定,则默认行为由 gRPC 定义。

.spec.template.spec.containers[].startupProbe.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.containers[].startupProbe.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.containers[].startupProbe.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.containers[].startupProbe.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.containers[].volumeDevices

描述

volumeDevices 是容器要使用的块设备列表。

类型

数组

.spec.template.spec.containers[].volumeDevices[]

描述

volumeDevice 描述容器内原始块设备的映射。

类型

对象

必需
  • name

  • devicePath

属性 类型 描述

devicePath

字符串

devicePath是容器内设备将映射到的路径。

name

字符串

name必须与pod中的persistentVolumeClaim的名称匹配。

.spec.template.spec.containers[].volumeMounts

描述

要挂载到容器文件系统的 Pod 卷。无法更新。

类型

数组

.spec.template.spec.containers[].volumeMounts[]

描述

VolumeMount 描述在容器内挂载卷。

类型

对象

必需
  • name

  • mountPath

属性 类型 描述

mountPath

字符串

容器内应挂载卷的路径。不能包含':'。

mountPropagation

字符串

mountPropagation确定如何将挂载从主机传播到容器,反之亦然。未设置时,使用MountPropagationNone。此字段在1.10中为beta版。当RecursiveReadOnly设置为IfPossible或Enabled时,MountPropagation必须为None或未指定(默认为None)。

可能的枚举值:- "Bidirectional" 表示容器中的卷将接收来自主机或其他容器的新挂载,并且其自身的挂载将从容器传播到主机或其他容器。请注意,此模式递归应用于卷中的所有挂载(Linux术语中的“rshared”)。- "HostToContainer" 表示容器中的卷将接收来自主机或其他容器的新挂载,但容器内挂载的文件系统不会传播到主机或其他容器。请注意,此模式递归应用于卷中的所有挂载(Linux术语中的“rslave”)。- "None" 表示容器中的卷将不会接收来自主机或其他容器的新挂载,并且容器内挂载的文件系统不会传播到主机或其他容器。请注意,此模式对应于Linux术语中的“private”。

name

字符串

这必须与卷的名称匹配。

readOnly

布尔值

如果为true,则以只读方式挂载;否则为读写方式(false或未指定)。默认为false。

recursiveReadOnly

字符串

RecursiveReadOnly指定是否应递归处理只读挂载。

如果ReadOnly为false,则此字段无意义,必须未指定。

如果ReadOnly为true,并且此字段设置为Disabled,则不会递归地将挂载设置为只读。如果此字段设置为IfPossible,则如果容器运行时支持,则将挂载递归设置为只读。如果此字段设置为Enabled,则如果容器运行时支持,则将挂载递归设置为只读;否则,pod将不会启动,并且将生成错误以指示原因。

如果此字段设置为 IfPossible 或 Enabled,则 MountPropagation 必须设置为 None(或未指定,默认为 None)。

如果未指定此字段,则将其视为与 Disabled 等效。

subPath

字符串

容器应从中挂载卷的卷内的路径。默认为 ""(卷的根目录)。

subPathExpr

字符串

容器应从中挂载卷的卷内的展开路径。其行为类似于 SubPath,但环境变量引用 $(VAR_NAME) 将使用容器的环境进行展开。默认为 ""(卷的根目录)。SubPathExpr 和 SubPath 是互斥的。

.spec.template.spec.dnsConfig

描述

PodDNSConfig 定义了 Pod 的 DNS 参数,此外还有从 DNSPolicy 生成的参数。

类型

对象

属性 类型 描述

nameservers

数组 (字符串)

DNS 命名服务器 IP 地址列表。这将附加到从 DNSPolicy 生成的基本 nameservers。重复的 nameservers 将被删除。

options

数组

DNS 解析器选项列表。这将与从 DNSPolicy 生成的基本选项合并。重复的条目将被删除。Options 中给出的解析选项将覆盖出现在基本 DNSPolicy 中的那些选项。

options[]

对象

PodDNSConfigOption 定义了 Pod 的 DNS 解析器选项。

searches

数组 (字符串)

用于主机名查找的 DNS 搜索域列表。这将附加到从 DNSPolicy 生成的基本搜索路径。重复的搜索路径将被删除。

.spec.template.spec.dnsConfig.options

描述

DNS 解析器选项列表。这将与从 DNSPolicy 生成的基本选项合并。重复的条目将被删除。Options 中给出的解析选项将覆盖出现在基本 DNSPolicy 中的那些选项。

类型

数组

.spec.template.spec.dnsConfig.options[]

描述

PodDNSConfigOption 定义了 Pod 的 DNS 解析器选项。

类型

对象

属性 类型 描述

name

字符串

必需。

字符串

.spec.template.spec.ephemeralContainers

描述

在此 Pod 中运行的临时容器列表。可以在现有 Pod 中运行临时容器以执行用户启动的操作,例如调试。创建 Pod 时无法指定此列表,并且无法通过更新 Pod 规范来修改此列表。为了向现有 Pod 添加临时容器,请使用 Pod 的 ephemeralcontainers 子资源。

类型

数组

.spec.template.spec.ephemeralContainers[]

描述

临时容器是您可以添加到现有 Pod 中以执行用户启动的活动(例如调试)的临时容器。临时容器没有资源或调度保证,并且当它们退出或 Pod 被删除或重新启动时,它们不会被重新启动。如果临时容器导致 Pod 超出其资源分配,则 kubelet 可能会逐出 Pod。

要添加临时容器,请使用现有 Pod 的 ephemeralcontainers 子资源。临时容器不能被删除或重新启动。

类型

对象

必需
  • name

属性 类型 描述

args

数组 (字符串)

入口点的参数。如果没有提供,则使用镜像的 CMD。变量引用 $(VAR_NAME) 将使用容器的环境进行展开。如果无法解析变量,则输入字符串中的引用将保持不变。双美元符号将简化为单个美元符号,这允许转义 $(VAR_NAME) 语法:即“(VAR_NAME)”将生成字符串字面量“$(VAR_NAME)”。转义的引用将永远不会展开,无论变量是否存在。

command

数组 (字符串)

入口点数组。不在 shell 中执行。如果没有提供,则使用镜像的 ENTRYPOINT。变量引用 $(VAR_NAME) 将使用容器的环境进行展开。如果无法解析变量,则输入字符串中的引用将保持不变。双美元符号将简化为单个美元符号,这允许转义 $(VAR_NAME) 语法:即“(VAR_NAME)”将生成字符串字面量“$(VAR_NAME)”。转义的引用将永远不会展开,无论变量是否存在。无法更新。更多信息:https://kubernetes.ac.cn/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

env

数组

要在容器中设置的环境变量列表。不能更新。

env[]

对象

EnvVar 表示容器中存在的环境变量。

envFrom

数组

用于填充容器中环境变量的源列表。源中定义的键必须是 C_IDENTIFIER。当容器启动时,所有无效键都将作为事件报告。当键存在于多个源中时,与最后一个源关联的值将优先。使用重复键的 Env 定义的值将优先。不能更新。

envFrom[]

对象

EnvFromSource 表示一组 ConfigMap 的来源

镜像

字符串

容器镜像名称。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images

镜像拉取策略

字符串

镜像拉取策略。取值范围为 Always、Never、IfNotPresent。如果指定了 :latest 标签,则默认为 Always,否则默认为 IfNotPresent。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images#updating-images

可能的枚举值:- "Always" 表示 kubelet 始终尝试拉取最新的镜像。如果拉取失败,容器将失败。- "IfNotPresent" 表示如果磁盘上不存在镜像,则 kubelet 会拉取镜像。如果镜像不存在并且拉取失败,容器将失败。- "Never" 表示 kubelet 从不拉取镜像,而只使用本地镜像。如果镜像不存在,容器将失败。

生命周期

对象

Lifecycle 描述了管理系统应该如何响应容器生命周期事件。对于 PostStart 和 PreStop 生命周期处理器,除非容器进程失败(在这种情况下处理器将被中止),否则容器的管理将阻塞直到操作完成。

存活性探针

对象

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

name

字符串

指定为 DNS_LABEL 的短暂容器的名称。此名称在所有容器、init 容器和短暂容器中必须唯一。

端口

数组

短暂容器不允许使用端口。

ports[]

对象

ContainerPort 表示单个容器中的网络端口。

就绪探针

对象

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

调整策略

数组

容器的资源调整策略。

resizePolicy[]

对象

ContainerResizePolicy 表示容器的资源调整策略。

资源

对象

ResourceRequirements 描述计算资源需求。

restartPolicy

字符串

容器的重启策略,用于管理 Pod 内每个容器的重启行为。这可能仅针对 init 容器设置。您不能在短暂容器上设置此字段。

securityContext

对象

SecurityContext 包含将应用于容器的安全配置。某些字段同时存在于 SecurityContext 和 PodSecurityContext 中。当两者都设置时,SecurityContext 中的值优先。

启动探针

对象

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

标准输入

布尔值

此容器是否应为容器运行时中的标准输入分配缓冲区。如果未设置此项,则容器中来自标准输入的读取将始终导致 EOF。默认为 false。

一次性标准输入

布尔值

容器运行时是否应在单个连接打开标准输入通道后关闭它。当 stdin 为 true 时,stdin 流将在多个连接会话中保持打开状态。如果 stdinOnce 设置为 true,则在容器启动时打开 stdin,在第一个客户端连接到 stdin 之前为空,然后保持打开状态并接受数据,直到客户端断开连接,此时 stdin 关闭并保持关闭状态,直到容器重启。如果此标志为 false,则从 stdin 读取的容器进程将永远不会收到 EOF。默认为 false

targetContainerName

字符串

如果设置,则为 PodSpec 中此短暂容器所针对的容器的名称。短暂容器将在此容器的命名空间(IPC、PID 等)中运行。如果未设置,则短暂容器使用 Pod规范中配置的命名空间。

容器运行时必须实现对此功能的支持。如果运行时不支持命名空间目标,则设置此字段的结果未定义。

终止消息路径

字符串

可选:将写入容器终止消息的文件挂载到容器文件系统的路径。写入的消息旨在作为简短的最终状态,例如断言失败消息。如果超过 4096 字节,则节点将被截断。所有容器的总消息长度将限制为 12kb。默认为 /dev/termination-log。无法更新。

终止消息策略

字符串

指示应如何填充终止消息。File 将使用 terminationMessagePath 的内容来填充成功和失败时的容器状态消息。FallbackToLogsOnError 如果终止消息文件为空并且容器以错误退出,则将使用容器日志输出的最后一段。日志输出限制为 2048 字节或 80 行,取较小者。默认为 File。无法更新。

可能的枚举值:- "FallbackToLogsOnError" 当容器以错误退出并且 terminationMessagePath 没有内容时,将读取容器日志的最新内容作为容器状态消息。- "File" 是默认行为,当容器退出时,它会将容器状态消息设置为容器 terminationMessagePath 的内容。

终端

布尔值

此容器是否应为自己分配一个 TTY,还需要 'stdin' 为 true。默认为 false。

卷设备

数组

volumeDevices 是容器要使用的块设备列表。

volumeDevices[]

对象

volumeDevice 描述容器内原始块设备的映射。

卷挂载

数组

要挂载到容器文件系统的 Pod 卷。短暂容器不允许使用子路径挂载。无法更新。

volumeMounts[]

对象

VolumeMount 描述在容器内挂载卷。

工作目录

字符串

容器的工作目录。如果未指定,则将使用容器运行时的默认值,这可能在容器镜像中配置。无法更新。

.spec.template.spec.ephemeralContainers[].env

描述

要在容器中设置的环境变量列表。不能更新。

类型

数组

.spec.template.spec.ephemeralContainers[].env[]

描述

EnvVar 表示容器中存在的环境变量。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

环境变量的名称。必须是 C_IDENTIFIER。

字符串

变量引用 $(VAR_NAME) 使用容器中先前定义的环境变量和任何服务环境变量进行扩展。如果无法解析变量,则输入字符串中的引用将保持不变。双美元符号将减少为单个美元符号,这允许转义 $(VAR_NAME) 语法:即“(VAR_NAME)”将生成字符串字面量“$(VAR_NAME)”。转义的引用将永远不会扩展,无论变量是否存在。

值来源

对象

EnvVarSource 表示 EnvVar 值的来源。

.spec.template.spec.ephemeralContainers[].env[].valueFrom

描述

EnvVarSource 表示 EnvVar 值的来源。

类型

对象

属性 类型 描述

ConfigMap 密钥引用

对象

从 ConfigMap 中选择一个键。

字段引用

对象

ObjectFieldSelector 选择对象的 APIVersioned 字段。

资源字段引用

对象

ResourceFieldSelector 表示容器资源(cpu、内存)及其输出格式

密钥引用

对象

SecretKeySelector 选择 Secret 的一个键。

.spec.template.spec.ephemeralContainers[].env[].valueFrom.configMapKeyRef

描述

从 ConfigMap 中选择一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

指定是否必须定义 ConfigMap 或其键

.spec.template.spec.ephemeralContainers[].env[].valueFrom.fieldRef

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

FieldPath 所基于的模式版本,默认为“v1”。

fieldPath

字符串

在指定的 API 版本中选择的字段路径。

.spec.template.spec.ephemeralContainers[].env[].valueFrom.resourceFieldRef

描述

ResourceFieldSelector 表示容器资源(cpu、内存)及其输出格式

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

容器名称:卷必需,环境变量可选

divisor

数量

指定公开资源的输出格式,默认为“1”

resource

字符串

必需:要选择的资源

.spec.template.spec.ephemeralContainers[].env[].valueFrom.secretKeyRef

描述

SecretKeySelector 选择 Secret 的一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的密钥的密钥。必须是有效的密钥。

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

指定是否必须定义 Secret 或其键

.spec.template.spec.ephemeralContainers[].envFrom

描述

用于填充容器中环境变量的源列表。源中定义的键必须是 C_IDENTIFIER。当容器启动时,所有无效键都将作为事件报告。当键存在于多个源中时,与最后一个源关联的值将优先。使用重复键的 Env 定义的值将优先。不能更新。

类型

数组

.spec.template.spec.ephemeralContainers[].envFrom[]

描述

EnvFromSource 表示一组 ConfigMap 的来源

类型

对象

属性 类型 描述

configMapRef

对象

ConfigMapEnvSource 选择一个 ConfigMap 来填充环境变量。

目标 ConfigMap 的 Data 字段的内容将表示为环境变量的键值对。

prefix

字符串

一个可选标识符,用于在 ConfigMap 中每个键之前添加。必须是 C_IDENTIFIER。

secretRef

对象

SecretEnvSource 选择一个 Secret 来填充环境变量。

目标 Secret 的 Data 字段的内容将表示为环境变量的键值对。

.spec.template.spec.ephemeralContainers[].envFrom[].configMapRef

描述

ConfigMapEnvSource 选择一个 ConfigMap 来填充环境变量。

目标 ConfigMap 的 Data 字段的内容将表示为环境变量的键值对。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

指定是否必须定义 ConfigMap

.spec.template.spec.ephemeralContainers[].envFrom[].secretRef

描述

SecretEnvSource 选择一个 Secret 来填充环境变量。

目标 Secret 的 Data 字段的内容将表示为环境变量的键值对。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

指定是否必须定义 Secret

.spec.template.spec.ephemeralContainers[].lifecycle

描述

Lifecycle 描述了管理系统应该如何响应容器生命周期事件。对于 PostStart 和 PreStop 生命周期处理器,除非容器进程失败(在这种情况下处理器将被中止),否则容器的管理将阻塞直到操作完成。

类型

对象

属性 类型 描述

postStart

对象

LifecycleHandler 定义了生命周期钩子中应采取的特定操作。除 TCPSocket 外,必须且只能指定一个字段。

preStop

对象

LifecycleHandler 定义了生命周期钩子中应采取的特定操作。除 TCPSocket 外,必须且只能指定一个字段。

.spec.template.spec.ephemeralContainers[].lifecycle.postStart

描述

LifecycleHandler 定义了生命周期钩子中应采取的特定操作。除 TCPSocket 外,必须且只能指定一个字段。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

sleep

对象

SleepAction 描述了“sleep”操作。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

.spec.template.spec.ephemeralContainers[].lifecycle.postStart.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.ephemeralContainers[].lifecycle.postStart.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.ephemeralContainers[].lifecycle.postStart.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.ephemeralContainers[].lifecycle.postStart.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.ephemeralContainers[].lifecycle.postStart.sleep

描述

SleepAction 描述了“sleep”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

.spec.template.spec.ephemeralContainers[].lifecycle.postStart.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.ephemeralContainers[].lifecycle.preStop

描述

LifecycleHandler 定义了生命周期钩子中应采取的特定操作。除 TCPSocket 外,必须且只能指定一个字段。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

sleep

对象

SleepAction 描述了“sleep”操作。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

.spec.template.spec.ephemeralContainers[].lifecycle.preStop.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.ephemeralContainers[].lifecycle.preStop.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.ephemeralContainers[].lifecycle.preStop.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.ephemeralContainers[].lifecycle.preStop.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.ephemeralContainers[].lifecycle.preStop.sleep

描述

SleepAction 描述了“sleep”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

.spec.template.spec.ephemeralContainers[].lifecycle.preStop.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.ephemeralContainers[].livenessProbe

描述

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

failureThreshold

整数

探测成功后被认为失败的最小连续失败次数。默认为 3。最小值为 1。

grpc

对象

GRPC 指定涉及 GRPC 端口的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

initialDelaySeconds

整数

容器启动后到启动存活性探测之前的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

执行探测的频率(以秒为单位)。默认为 10 秒。最小值为 1。

successThreshold

整数

探测失败后被认为成功的最小连续成功次数。默认为 1。存活性探测和启动探测必须为 1。最小值为 1。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

terminationGracePeriodSeconds

整数

探针失败后,Pod优雅终止的可选持续时间(秒)。宽限期是在向 Pod 中运行的进程发送终止信号与使用 kill 信号强制停止进程之间的时间间隔(秒)。将此值设置为大于进程预期清理时间的时长。如果此值为 nil,则将使用 Pod 的 terminationGracePeriodSeconds。否则,此值将覆盖 Pod 规范中提供的值。值必须是非负整数。值为零表示立即通过 kill 信号停止(没有关闭的机会)。这是一个 Beta 功能,需要启用 ProbeTerminationGracePeriod 功能网关。最小值为 1。如果未设置,则使用 spec.terminationGracePeriodSeconds。

超时秒数

整数

探针超时之前的秒数。默认为 1 秒。最小值为 1。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

.spec.template.spec.ephemeralContainers[].livenessProbe.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.ephemeralContainers[].livenessProbe.grpc

描述

GRPC 指定涉及 GRPC 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

port

整数

gRPC 服务的端口号。数字必须在 1 到 65535 的范围内。

服务

字符串

服务是在 gRPC HealthCheckRequest 中放置的服务名称(参见 https://github.com/grpc/grpc/blob/master/doc/health-checking.md)。

如果未指定,则默认行为由 gRPC 定义。

.spec.template.spec.ephemeralContainers[].livenessProbe.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.ephemeralContainers[].livenessProbe.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.ephemeralContainers[].livenessProbe.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.ephemeralContainers[].livenessProbe.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.ephemeralContainers[].ports

描述

短暂容器不允许使用端口。

类型

数组

.spec.template.spec.ephemeralContainers[].ports[]

描述

ContainerPort 表示单个容器中的网络端口。

类型

对象

必需
  • 容器端口

属性 类型 描述

容器端口

整数

要在 Pod 的 IP 地址上公开的端口号。这必须是一个有效的端口号,0 < x < 65536。

主机IP

字符串

将外部端口绑定到的主机 IP。

主机端口

整数

要在主机上公开的端口号。如果指定,这必须是一个有效的端口号,0 < x < 65536。如果指定了 HostNetwork,则这必须与 ContainerPort 匹配。大多数容器不需要这个。

name

字符串

如果指定,则必须是 IANA_SVC_NAME 并且在 Pod 中必须唯一。Pod 中的每个命名端口都必须具有唯一的名称。可以由服务引用的端口名称。

协议

字符串

端口协议。必须是 UDP、TCP 或 SCTP。默认为“TCP”。

可能的枚举值:- "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

.spec.template.spec.ephemeralContainers[].readinessProbe

描述

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

failureThreshold

整数

探测成功后被认为失败的最小连续失败次数。默认为 3。最小值为 1。

grpc

对象

GRPC 指定涉及 GRPC 端口的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

initialDelaySeconds

整数

容器启动后到启动存活性探测之前的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

执行探测的频率(以秒为单位)。默认为 10 秒。最小值为 1。

successThreshold

整数

探测失败后被认为成功的最小连续成功次数。默认为 1。存活性探测和启动探测必须为 1。最小值为 1。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

terminationGracePeriodSeconds

整数

探针失败后,Pod优雅终止的可选持续时间(秒)。宽限期是在向 Pod 中运行的进程发送终止信号与使用 kill 信号强制停止进程之间的时间间隔(秒)。将此值设置为大于进程预期清理时间的时长。如果此值为 nil,则将使用 Pod 的 terminationGracePeriodSeconds。否则,此值将覆盖 Pod 规范中提供的值。值必须是非负整数。值为零表示立即通过 kill 信号停止(没有关闭的机会)。这是一个 Beta 功能,需要启用 ProbeTerminationGracePeriod 功能网关。最小值为 1。如果未设置,则使用 spec.terminationGracePeriodSeconds。

超时秒数

整数

探针超时之前的秒数。默认为 1 秒。最小值为 1。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

.spec.template.spec.ephemeralContainers[].readinessProbe.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.ephemeralContainers[].readinessProbe.grpc

描述

GRPC 指定涉及 GRPC 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

port

整数

gRPC 服务的端口号。数字必须在 1 到 65535 的范围内。

服务

字符串

服务是在 gRPC HealthCheckRequest 中放置的服务名称(参见 https://github.com/grpc/grpc/blob/master/doc/health-checking.md)。

如果未指定,则默认行为由 gRPC 定义。

.spec.template.spec.ephemeralContainers[].readinessProbe.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.ephemeralContainers[].readinessProbe.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.ephemeralContainers[].readinessProbe.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.ephemeralContainers[].readinessProbe.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.ephemeralContainers[].resizePolicy

描述

容器的资源调整策略。

类型

数组

.spec.template.spec.ephemeralContainers[].resizePolicy[]

描述

ContainerResizePolicy 表示容器的资源调整策略。

类型

对象

必需
  • 资源名称

  • restartPolicy

属性 类型 描述

资源名称

字符串

此资源调整策略适用的资源名称。支持的值:cpu、memory。

restartPolicy

字符串

调整指定资源大小时要应用的重启策略。如果未指定,则默认为 NotRequired。

.spec.template.spec.ephemeralContainers[].resources

描述

ResourceRequirements 描述计算资源需求。

类型

对象

属性 类型 描述

声明

数组

Claims 列出了此容器使用的资源名称,这些资源在 spec.resourceClaims 中定义。

这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能网关。

此字段是不可变的。它只能为容器设置。

claims[]

对象

ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。

限制

对象 (Quantity)

Limits 描述了允许的最大计算资源量。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

请求

对象 (Quantity)

Requests 描述了所需的最小计算资源量。如果省略容器的 Requests,则默认为 Limits(如果明确指定),否则默认为实现定义的值。Requests 不能超过 Limits。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

.spec.template.spec.ephemeralContainers[].resources.claims

描述

Claims 列出了此容器使用的资源名称,这些资源在 spec.resourceClaims 中定义。

这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能网关。

此字段是不可变的。它只能为容器设置。

类型

数组

.spec.template.spec.ephemeralContainers[].resources.claims[]

描述

ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

名称必须与使用此字段的 Pod 的 pod.spec.resourceClaims 中的一个条目的名称匹配。它使该资源在容器内可用。

.spec.template.spec.ephemeralContainers[].securityContext

描述

SecurityContext 包含将应用于容器的安全配置。某些字段同时存在于 SecurityContext 和 PodSecurityContext 中。当两者都设置时,SecurityContext 中的值优先。

类型

对象

属性 类型 描述

允许权限提升

布尔值

AllowPrivilegeEscalation 控制进程是否可以获得比其父进程更多的权限。此布尔值直接控制是否会在容器进程上设置 no_new_privs 标志。当容器满足以下条件时,AllowPrivilegeEscalation 始终为 true:1) 作为 Privileged 运行 2) 具有 CAP_SYS_ADMIN 请注意,当 spec.os.name 为 windows 时,无法设置此字段。

AppArmor 配置文件

对象

AppArmorProfile 定义 Pod 或容器的 AppArmor 设置。

功能

对象

向运行中的容器添加和删除 POSIX 功能。

特权模式

布尔值

以特权模式运行容器。特权容器中的进程本质上等同于主机上的 root 用户。默认为 false。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

proc 挂载

字符串

procMount 表示要为容器使用的 proc 挂载类型。默认为 DefaultProcMount,它使用容器运行时针对只读路径和屏蔽路径的默认值。这需要启用 ProcMountType 功能标志。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

可能的枚举值:- "Default" 使用容器运行时针对 /proc 的只读路径和屏蔽路径的默认值。大多数容器运行时都会屏蔽 /proc 中的某些路径,以避免意外地暴露特殊设备或信息的安全风险。- "Unmasked" 会绕过容器运行时的默认屏蔽行为,并确保新创建的 /proc 容器保持完整,没有任何修改。

只读根文件系统

布尔值

此容器是否具有只读根文件系统。默认为 false。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

运行时组ID

整数

运行容器进程入口点的 GID。如果未设置,则使用运行时默认值。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

非root用户运行

布尔值

指示容器必须作为非 root 用户运行。如果为 true,则 Kubelet 将在运行时验证映像,以确保它不以 UID 0(root)运行,如果确实如此,则启动容器将失败。如果未设置或为 false,则不会执行此类验证。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值优先。

运行时用户ID

整数

运行容器进程入口点的UID。如果未指定,则默认为镜像元数据中指定的用户。也可以在PodSecurityContext中设置。如果在SecurityContext和PodSecurityContext中都设置了,则SecurityContext中指定的值优先。请注意,当spec.os.name为windows时,不能设置此字段。

seLinuxOptions

对象

SELinuxOptions是应用于容器的标签。

seccompProfile

对象

SeccompProfile定义pod/容器的seccomp配置文件设置。只能设置一个配置文件源。

windowsOptions

对象

WindowsSecurityContextOptions包含Windows特定的选项和凭据。

.spec.template.spec.ephemeralContainers[].securityContext.appArmorProfile

描述

AppArmorProfile 定义 Pod 或容器的 AppArmor 设置。

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

localhostProfile指示应使用节点上加载的配置文件。配置文件必须预先配置在节点上才能工作。必须与配置文件的加载名称匹配。当且仅当类型为“Localhost”时才必须设置。

类型

字符串

type指示将应用哪种AppArmor配置文件。有效选项包括:Localhost - 节点上预加载的配置文件。RuntimeDefault - 容器运行时的默认配置文件。Unconfined - 没有AppArmor强制执行。

可能的枚举值:- "Localhost" 指示应使用节点上预加载的配置文件。- "RuntimeDefault" 指示应使用容器运行时的默认AppArmor配置文件。- "Unconfined" 指示不应强制执行任何AppArmor配置文件。

.spec.template.spec.ephemeralContainers[].securityContext.capabilities

描述

向运行中的容器添加和删除 POSIX 功能。

类型

对象

属性 类型 描述

add

数组 (字符串)

添加的功能

drop

数组 (字符串)

删除的功能

.spec.template.spec.ephemeralContainers[].securityContext.seLinuxOptions

描述

SELinuxOptions是应用于容器的标签。

类型

对象

属性 类型 描述

level

字符串

Level是应用于容器的SELinux级别标签。

role

字符串

Role是应用于容器的SELinux角色标签。

类型

字符串

Type是应用于容器的SELinux类型标签。

user

字符串

User是应用于容器的SELinux用户标签。

.spec.template.spec.ephemeralContainers[].securityContext.seccompProfile

描述

SeccompProfile定义pod/容器的seccomp配置文件设置。只能设置一个配置文件源。

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

localhostProfile指示应使用节点上文件中定义的配置文件。配置文件必须预先配置在节点上才能工作。必须是相对于kubelet配置的seccomp配置文件位置的下降路径。如果类型为“Localhost”,则必须设置。对于任何其他类型,都必须不设置。

类型

字符串

type指示将应用哪种seccomp配置文件。有效选项包括

Localhost - 应使用节点上文件中定义的配置文件。RuntimeDefault - 应使用容器运行时的默认配置文件。Unconfined - 不应应用任何配置文件。

可能的枚举值:- "Localhost" 指示应使用节点上文件中定义的配置文件。该文件相对于<kubelet-root-dir>/seccomp的位置。- "RuntimeDefault" 表示默认的容器运行时seccomp配置文件。- "Unconfined" 指示不应用任何seccomp配置文件(又称无限制)。

.spec.template.spec.ephemeralContainers[].securityContext.windowsOptions

描述

WindowsSecurityContextOptions包含Windows特定的选项和凭据。

类型

对象

属性 类型 描述

gmsaCredentialSpec

字符串

GMSACredentialSpec是GMSA准入Webhook(https://github.com/kubernetes-sigs/windows-gmsa)内联由GMSACredentialSpecName字段命名的GMSA凭据规范内容的地方。

gmsaCredentialSpecName

字符串

GMSACredentialSpecName是要使用的GMSA凭据规范的名称。

hostProcess

布尔值

HostProcess确定是否应将容器作为“主机进程”容器运行。Pod的所有容器都必须具有相同的有效HostProcess值(不允许混合使用HostProcess容器和非HostProcess容器)。此外,如果HostProcess为true,则HostNetwork也必须设置为true。

runAsUserName

字符串

在Windows中运行容器进程入口点的用户名。如果未指定,则默认为镜像元数据中指定的用户。也可以在PodSecurityContext中设置。如果在SecurityContext和PodSecurityContext中都设置了,则SecurityContext中指定的值优先。

.spec.template.spec.ephemeralContainers[].startupProbe

描述

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

failureThreshold

整数

探测成功后被认为失败的最小连续失败次数。默认为 3。最小值为 1。

grpc

对象

GRPC 指定涉及 GRPC 端口的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

initialDelaySeconds

整数

容器启动后到启动存活性探测之前的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

执行探测的频率(以秒为单位)。默认为 10 秒。最小值为 1。

successThreshold

整数

探测失败后被认为成功的最小连续成功次数。默认为 1。存活性探测和启动探测必须为 1。最小值为 1。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

terminationGracePeriodSeconds

整数

探针失败后,Pod优雅终止的可选持续时间(秒)。宽限期是在向 Pod 中运行的进程发送终止信号与使用 kill 信号强制停止进程之间的时间间隔(秒)。将此值设置为大于进程预期清理时间的时长。如果此值为 nil,则将使用 Pod 的 terminationGracePeriodSeconds。否则,此值将覆盖 Pod 规范中提供的值。值必须是非负整数。值为零表示立即通过 kill 信号停止(没有关闭的机会)。这是一个 Beta 功能,需要启用 ProbeTerminationGracePeriod 功能网关。最小值为 1。如果未设置,则使用 spec.terminationGracePeriodSeconds。

超时秒数

整数

探针超时之前的秒数。默认为 1 秒。最小值为 1。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

.spec.template.spec.ephemeralContainers[].startupProbe.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.ephemeralContainers[].startupProbe.grpc

描述

GRPC 指定涉及 GRPC 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

port

整数

gRPC 服务的端口号。数字必须在 1 到 65535 的范围内。

服务

字符串

服务是在 gRPC HealthCheckRequest 中放置的服务名称(参见 https://github.com/grpc/grpc/blob/master/doc/health-checking.md)。

如果未指定,则默认行为由 gRPC 定义。

.spec.template.spec.ephemeralContainers[].startupProbe.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.ephemeralContainers[].startupProbe.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.ephemeralContainers[].startupProbe.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.ephemeralContainers[].startupProbe.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.ephemeralContainers[].volumeDevices

描述

volumeDevices 是容器要使用的块设备列表。

类型

数组

.spec.template.spec.ephemeralContainers[].volumeDevices[]

描述

volumeDevice 描述容器内原始块设备的映射。

类型

对象

必需
  • name

  • devicePath

属性 类型 描述

devicePath

字符串

devicePath是容器内设备将映射到的路径。

name

字符串

name必须与pod中的persistentVolumeClaim的名称匹配。

.spec.template.spec.ephemeralContainers[].volumeMounts

描述

要挂载到容器文件系统的 Pod 卷。短暂容器不允许使用子路径挂载。无法更新。

类型

数组

.spec.template.spec.ephemeralContainers[].volumeMounts[]

描述

VolumeMount 描述在容器内挂载卷。

类型

对象

必需
  • name

  • mountPath

属性 类型 描述

mountPath

字符串

容器内应挂载卷的路径。不能包含':'。

mountPropagation

字符串

mountPropagation确定如何将挂载从主机传播到容器,反之亦然。未设置时,使用MountPropagationNone。此字段在1.10中为beta版。当RecursiveReadOnly设置为IfPossible或Enabled时,MountPropagation必须为None或未指定(默认为None)。

可能的枚举值:- "Bidirectional" 表示容器中的卷将接收来自主机或其他容器的新挂载,并且其自身的挂载将从容器传播到主机或其他容器。请注意,此模式递归应用于卷中的所有挂载(Linux术语中的“rshared”)。- "HostToContainer" 表示容器中的卷将接收来自主机或其他容器的新挂载,但容器内挂载的文件系统不会传播到主机或其他容器。请注意,此模式递归应用于卷中的所有挂载(Linux术语中的“rslave”)。- "None" 表示容器中的卷将不会接收来自主机或其他容器的新挂载,并且容器内挂载的文件系统不会传播到主机或其他容器。请注意,此模式对应于Linux术语中的“private”。

name

字符串

这必须与卷的名称匹配。

readOnly

布尔值

如果为true,则以只读方式挂载;否则为读写方式(false或未指定)。默认为false。

recursiveReadOnly

字符串

RecursiveReadOnly指定是否应递归处理只读挂载。

如果ReadOnly为false,则此字段无意义,必须未指定。

如果ReadOnly为true,并且此字段设置为Disabled,则不会递归地将挂载设置为只读。如果此字段设置为IfPossible,则如果容器运行时支持,则将挂载递归设置为只读。如果此字段设置为Enabled,则如果容器运行时支持,则将挂载递归设置为只读;否则,pod将不会启动,并且将生成错误以指示原因。

如果此字段设置为 IfPossible 或 Enabled,则 MountPropagation 必须设置为 None(或未指定,默认为 None)。

如果未指定此字段,则将其视为与 Disabled 等效。

subPath

字符串

容器应从中挂载卷的卷内的路径。默认为 ""(卷的根目录)。

subPathExpr

字符串

容器应从中挂载卷的卷内的展开路径。其行为类似于 SubPath,但环境变量引用 $(VAR_NAME) 将使用容器的环境进行展开。默认为 ""(卷的根目录)。SubPathExpr 和 SubPath 是互斥的。

.spec.template.spec.hostAliases

描述

HostAliases 是一个可选的主机和 IP 列表,如果指定,则将注入到 Pod 的 hosts 文件中。

类型

数组

.spec.template.spec.hostAliases[]

描述

HostAlias 保存 IP 和主机名之间的映射,这些映射将作为 Pod 的 hosts 文件中的条目注入。

类型

对象

必需
  • ip

属性 类型 描述

主机名

数组 (字符串)

上述IP地址的主机名。

ip

字符串

主机文件条目的IP地址。

.spec.template.spec.imagePullSecrets

描述

ImagePullSecrets 是对同一命名空间中秘密的可选引用列表,用于拉取此 PodSpec 使用的任何图像。如果指定,这些秘密将传递给各个提取器实现以供其使用。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod

类型

数组

.spec.template.spec.imagePullSecrets[]

描述

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.spec.template.spec.initContainers

描述

Pod所属的初始化容器列表。初始化容器在启动容器之前按顺序执行。如果任何初始化容器失败,则Pod被认为失败,并根据其restartPolicy进行处理。初始化容器或普通容器的名称在所有容器中必须唯一。初始化容器可能不具有生命周期操作、就绪探针、存活探针或启动探针。初始化容器的resourceRequirements在调度过程中被考虑在内,方法是找到每种资源类型的最高请求/限制,然后使用该值的最大值或普通容器的总和。限制以类似的方式应用于初始化容器。目前无法添加或删除初始化容器。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/init-containers/

类型

数组

.spec.template.spec.initContainers[]

描述

要在 Pod 中运行的单个应用程序容器。

类型

对象

必需
  • name

属性 类型 描述

args

数组 (字符串)

入口点的参数。如果未提供,则使用容器映像的 CMD。变量引用 $(VAR_NAME) 使用容器的环境进行扩展。如果无法解析变量,则输入字符串中的引用将保持不变。双美元符号将简化为单个美元符号,允许转义 $(VAR_NAME) 语法:即“(VAR_NAME)”将生成字符串字面量“$(VAR_NAME)”。转义的引用将永远不会扩展,无论变量是否存在。

command

数组 (字符串)

入口点数组。不在 shell 中执行。如果未提供,则使用容器映像的 ENTRYPOINT。变量引用 $(VAR_NAME) 使用容器的环境进行扩展。如果无法解析变量,则输入字符串中的引用将保持不变。双美元符号将简化为单个美元符号,允许转义 $(VAR_NAME) 语法:即“(VAR_NAME)”将生成字符串字面量“$(VAR_NAME)”。转义的引用将永远不会扩展,无论变量是否存在。

env

数组

要在容器中设置的环境变量列表。不能更新。

env[]

对象

EnvVar 表示容器中存在的环境变量。

envFrom

数组

用于填充容器中环境变量的源列表。源中定义的键必须是 C_IDENTIFIER。当容器启动时,所有无效键都将作为事件报告。当键存在于多个源中时,与最后一个源关联的值将优先。使用重复键的 Env 定义的值将优先。不能更新。

envFrom[]

对象

EnvFromSource 表示一组 ConfigMap 的来源

镜像

字符串

容器镜像名称。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images 此字段是可选的,允许更高级别的配置管理为部署和 StatefulSets 等工作负载控制器中的容器镜像设置默认值或覆盖容器镜像。

镜像拉取策略

字符串

镜像拉取策略。取值范围为 Always、Never、IfNotPresent。如果指定了 :latest 标签,则默认为 Always,否则默认为 IfNotPresent。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images#updating-images

可能的枚举值:- "Always" 表示 kubelet 始终尝试拉取最新的镜像。如果拉取失败,容器将失败。- "IfNotPresent" 表示如果磁盘上不存在镜像,则 kubelet 会拉取镜像。如果镜像不存在并且拉取失败,容器将失败。- "Never" 表示 kubelet 从不拉取镜像,而只使用本地镜像。如果镜像不存在,容器将失败。

生命周期

对象

Lifecycle 描述了管理系统应该如何响应容器生命周期事件。对于 PostStart 和 PreStop 生命周期处理器,除非容器进程失败(在这种情况下处理器将被中止),否则容器的管理将阻塞直到操作完成。

存活性探针

对象

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

name

字符串

指定为 DNS_LABEL 的容器名称。pod 中的每个容器都必须具有唯一的名称 (DNS_LABEL)。无法更新。

端口

数组

要从容器中暴露的端口列表。此处未指定端口并不阻止该端口被暴露。容器内侦听默认“0.0.0.0”地址的任何端口都可从网络访问。使用策略性合并补丁修改此数组可能会损坏数据。更多信息参见 https://github.com/kubernetes/kubernetes/issues/108255。无法更新。

ports[]

对象

ContainerPort 表示单个容器中的网络端口。

就绪探针

对象

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

调整策略

数组

容器的资源调整策略。

resizePolicy[]

对象

ContainerResizePolicy 表示容器的资源调整策略。

资源

对象

ResourceRequirements 描述计算资源需求。

restartPolicy

字符串

RestartPolicy 定义 pod 中各个容器的重启行为。此字段可能仅针对 init 容器设置,并且唯一允许的值为“Always”。对于非 init 容器或未指定此字段的情况,重启行为由 Pod 的重启策略和容器类型定义。将 init 容器的 RestartPolicy 设置为“Always”将产生以下效果:此 init 容器将在退出时持续重启,直到所有常规容器都终止。一旦所有常规容器都已完成,所有具有 restartPolicy“Always”的 init 容器都将关闭。此生命周期与普通 init 容器不同,通常被称为“sidecar”容器。尽管此 init 容器仍在 init 容器序列中启动,但在继续执行下一个 init 容器之前,它不会等待容器完成。相反,下一个 init 容器会在启动此 init 容器之后或任何 startupProbe 成功完成之后立即启动。

securityContext

对象

SecurityContext 包含将应用于容器的安全配置。某些字段同时存在于 SecurityContext 和 PodSecurityContext 中。当两者都设置时,SecurityContext 中的值优先。

启动探针

对象

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

标准输入

布尔值

此容器是否应为容器运行时中的标准输入分配缓冲区。如果未设置此项,则容器中来自标准输入的读取将始终导致 EOF。默认为 false。

一次性标准输入

布尔值

容器运行时是否应在单个连接打开标准输入通道后关闭它。当 stdin 为 true 时,stdin 流将在多个连接会话中保持打开状态。如果 stdinOnce 设置为 true,则在容器启动时打开 stdin,在第一个客户端连接到 stdin 之前为空,然后保持打开状态并接受数据,直到客户端断开连接,此时 stdin 关闭并保持关闭状态,直到容器重启。如果此标志为 false,则从 stdin 读取的容器进程将永远不会收到 EOF。默认为 false

终止消息路径

字符串

可选:将写入容器终止消息的文件挂载到容器文件系统的路径。写入的消息旨在作为简短的最终状态,例如断言失败消息。如果超过 4096 字节,则节点将被截断。所有容器的总消息长度将限制为 12kb。默认为 /dev/termination-log。无法更新。

终止消息策略

字符串

指示应如何填充终止消息。File 将使用 terminationMessagePath 的内容来填充成功和失败时的容器状态消息。FallbackToLogsOnError 如果终止消息文件为空并且容器以错误退出,则将使用容器日志输出的最后一段。日志输出限制为 2048 字节或 80 行,取较小者。默认为 File。无法更新。

可能的枚举值:- "FallbackToLogsOnError" 当容器以错误退出并且 terminationMessagePath 没有内容时,将读取容器日志的最新内容作为容器状态消息。- "File" 是默认行为,当容器退出时,它会将容器状态消息设置为容器 terminationMessagePath 的内容。

终端

布尔值

此容器是否应为自己分配一个 TTY,还需要 'stdin' 为 true。默认为 false。

卷设备

数组

volumeDevices 是容器要使用的块设备列表。

volumeDevices[]

对象

volumeDevice 描述容器内原始块设备的映射。

卷挂载

数组

要挂载到容器文件系统的 Pod 卷。无法更新。

volumeMounts[]

对象

VolumeMount 描述在容器内挂载卷。

工作目录

字符串

容器的工作目录。如果未指定,则将使用容器运行时的默认值,这可能在容器镜像中配置。无法更新。

.spec.template.spec.initContainers[].env

描述

要在容器中设置的环境变量列表。不能更新。

类型

数组

.spec.template.spec.initContainers[].env[]

描述

EnvVar 表示容器中存在的环境变量。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

环境变量的名称。必须是 C_IDENTIFIER。

字符串

变量引用 $(VAR_NAME) 使用容器中先前定义的环境变量和任何服务环境变量进行扩展。如果无法解析变量,则输入字符串中的引用将保持不变。双美元符号将减少为单个美元符号,这允许转义 $(VAR_NAME) 语法:即“(VAR_NAME)”将生成字符串字面量“$(VAR_NAME)”。转义的引用将永远不会扩展,无论变量是否存在。

值来源

对象

EnvVarSource 表示 EnvVar 值的来源。

.spec.template.spec.initContainers[].env[].valueFrom

描述

EnvVarSource 表示 EnvVar 值的来源。

类型

对象

属性 类型 描述

ConfigMap 密钥引用

对象

从 ConfigMap 中选择一个键。

字段引用

对象

ObjectFieldSelector 选择对象的 APIVersioned 字段。

资源字段引用

对象

ResourceFieldSelector 表示容器资源(cpu、内存)及其输出格式

密钥引用

对象

SecretKeySelector 选择 Secret 的一个键。

.spec.template.spec.initContainers[].env[].valueFrom.configMapKeyRef

描述

从 ConfigMap 中选择一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

指定是否必须定义 ConfigMap 或其键

.spec.template.spec.initContainers[].env[].valueFrom.fieldRef

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

FieldPath 所基于的模式版本,默认为“v1”。

fieldPath

字符串

在指定的 API 版本中选择的字段路径。

.spec.template.spec.initContainers[].env[].valueFrom.resourceFieldRef

描述

ResourceFieldSelector 表示容器资源(cpu、内存)及其输出格式

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

容器名称:卷必需,环境变量可选

divisor

数量

指定公开资源的输出格式,默认为“1”

resource

字符串

必需:要选择的资源

.spec.template.spec.initContainers[].env[].valueFrom.secretKeyRef

描述

SecretKeySelector 选择 Secret 的一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的密钥的密钥。必须是有效的密钥。

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

指定是否必须定义 Secret 或其键

.spec.template.spec.initContainers[].envFrom

描述

用于填充容器中环境变量的源列表。源中定义的键必须是 C_IDENTIFIER。当容器启动时,所有无效键都将作为事件报告。当键存在于多个源中时,与最后一个源关联的值将优先。使用重复键的 Env 定义的值将优先。不能更新。

类型

数组

.spec.template.spec.initContainers[].envFrom[]

描述

EnvFromSource 表示一组 ConfigMap 的来源

类型

对象

属性 类型 描述

configMapRef

对象

ConfigMapEnvSource 选择一个 ConfigMap 来填充环境变量。

目标 ConfigMap 的 Data 字段的内容将表示为环境变量的键值对。

prefix

字符串

一个可选标识符,用于在 ConfigMap 中每个键之前添加。必须是 C_IDENTIFIER。

secretRef

对象

SecretEnvSource 选择一个 Secret 来填充环境变量。

目标 Secret 的 Data 字段的内容将表示为环境变量的键值对。

.spec.template.spec.initContainers[].envFrom[].configMapRef

描述

ConfigMapEnvSource 选择一个 ConfigMap 来填充环境变量。

目标 ConfigMap 的 Data 字段的内容将表示为环境变量的键值对。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

指定是否必须定义 ConfigMap

.spec.template.spec.initContainers[].envFrom[].secretRef

描述

SecretEnvSource 选择一个 Secret 来填充环境变量。

目标 Secret 的 Data 字段的内容将表示为环境变量的键值对。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

指定是否必须定义 Secret

.spec.template.spec.initContainers[].lifecycle

描述

Lifecycle 描述了管理系统应该如何响应容器生命周期事件。对于 PostStart 和 PreStop 生命周期处理器,除非容器进程失败(在这种情况下处理器将被中止),否则容器的管理将阻塞直到操作完成。

类型

对象

属性 类型 描述

postStart

对象

LifecycleHandler 定义了生命周期钩子中应采取的特定操作。除 TCPSocket 外,必须且只能指定一个字段。

preStop

对象

LifecycleHandler 定义了生命周期钩子中应采取的特定操作。除 TCPSocket 外,必须且只能指定一个字段。

.spec.template.spec.initContainers[].lifecycle.postStart

描述

LifecycleHandler 定义了生命周期钩子中应采取的特定操作。除 TCPSocket 外,必须且只能指定一个字段。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

sleep

对象

SleepAction 描述了“sleep”操作。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

.spec.template.spec.initContainers[].lifecycle.postStart.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.initContainers[].lifecycle.postStart.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.initContainers[].lifecycle.postStart.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.initContainers[].lifecycle.postStart.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.initContainers[].lifecycle.postStart.sleep

描述

SleepAction 描述了“sleep”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

.spec.template.spec.initContainers[].lifecycle.postStart.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.initContainers[].lifecycle.preStop

描述

LifecycleHandler 定义了生命周期钩子中应采取的特定操作。除 TCPSocket 外,必须且只能指定一个字段。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

sleep

对象

SleepAction 描述了“sleep”操作。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

.spec.template.spec.initContainers[].lifecycle.preStop.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.initContainers[].lifecycle.preStop.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.initContainers[].lifecycle.preStop.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.initContainers[].lifecycle.preStop.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.initContainers[].lifecycle.preStop.sleep

描述

SleepAction 描述了“sleep”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

.spec.template.spec.initContainers[].lifecycle.preStop.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.initContainers[].livenessProbe

描述

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

failureThreshold

整数

探测成功后被认为失败的最小连续失败次数。默认为 3。最小值为 1。

grpc

对象

GRPC 指定涉及 GRPC 端口的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

initialDelaySeconds

整数

容器启动后到启动存活性探测之前的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

执行探测的频率(以秒为单位)。默认为 10 秒。最小值为 1。

successThreshold

整数

探测失败后被认为成功的最小连续成功次数。默认为 1。存活性探测和启动探测必须为 1。最小值为 1。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

terminationGracePeriodSeconds

整数

探针失败后,Pod优雅终止的可选持续时间(秒)。宽限期是在向 Pod 中运行的进程发送终止信号与使用 kill 信号强制停止进程之间的时间间隔(秒)。将此值设置为大于进程预期清理时间的时长。如果此值为 nil,则将使用 Pod 的 terminationGracePeriodSeconds。否则,此值将覆盖 Pod 规范中提供的值。值必须是非负整数。值为零表示立即通过 kill 信号停止(没有关闭的机会)。这是一个 Beta 功能,需要启用 ProbeTerminationGracePeriod 功能网关。最小值为 1。如果未设置,则使用 spec.terminationGracePeriodSeconds。

超时秒数

整数

探针超时之前的秒数。默认为 1 秒。最小值为 1。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

.spec.template.spec.initContainers[].livenessProbe.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.initContainers[].livenessProbe.grpc

描述

GRPC 指定涉及 GRPC 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

port

整数

gRPC 服务的端口号。数字必须在 1 到 65535 的范围内。

服务

字符串

服务是在 gRPC HealthCheckRequest 中放置的服务名称(参见 https://github.com/grpc/grpc/blob/master/doc/health-checking.md)。

如果未指定,则默认行为由 gRPC 定义。

.spec.template.spec.initContainers[].livenessProbe.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.initContainers[].livenessProbe.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.initContainers[].livenessProbe.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.initContainers[].livenessProbe.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.initContainers[].ports

描述

要从容器中暴露的端口列表。此处未指定端口并不阻止该端口被暴露。容器内侦听默认“0.0.0.0”地址的任何端口都可从网络访问。使用策略性合并补丁修改此数组可能会损坏数据。更多信息参见 https://github.com/kubernetes/kubernetes/issues/108255。无法更新。

类型

数组

.spec.template.spec.initContainers[].ports[]

描述

ContainerPort 表示单个容器中的网络端口。

类型

对象

必需
  • 容器端口

属性 类型 描述

容器端口

整数

要在 Pod 的 IP 地址上公开的端口号。这必须是一个有效的端口号,0 < x < 65536。

主机IP

字符串

将外部端口绑定到的主机 IP。

主机端口

整数

要在主机上公开的端口号。如果指定,这必须是一个有效的端口号,0 < x < 65536。如果指定了 HostNetwork,则这必须与 ContainerPort 匹配。大多数容器不需要这个。

name

字符串

如果指定,则必须是 IANA_SVC_NAME 并且在 Pod 中必须唯一。Pod 中的每个命名端口都必须具有唯一的名称。可以由服务引用的端口名称。

协议

字符串

端口协议。必须是 UDP、TCP 或 SCTP。默认为“TCP”。

可能的枚举值:- "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

.spec.template.spec.initContainers[].readinessProbe

描述

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

failureThreshold

整数

探测成功后被认为失败的最小连续失败次数。默认为 3。最小值为 1。

grpc

对象

GRPC 指定涉及 GRPC 端口的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

initialDelaySeconds

整数

容器启动后到启动存活性探测之前的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

执行探测的频率(以秒为单位)。默认为 10 秒。最小值为 1。

successThreshold

整数

探测失败后被认为成功的最小连续成功次数。默认为 1。存活性探测和启动探测必须为 1。最小值为 1。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

terminationGracePeriodSeconds

整数

探针失败后,Pod优雅终止的可选持续时间(秒)。宽限期是在向 Pod 中运行的进程发送终止信号与使用 kill 信号强制停止进程之间的时间间隔(秒)。将此值设置为大于进程预期清理时间的时长。如果此值为 nil,则将使用 Pod 的 terminationGracePeriodSeconds。否则,此值将覆盖 Pod 规范中提供的值。值必须是非负整数。值为零表示立即通过 kill 信号停止(没有关闭的机会)。这是一个 Beta 功能,需要启用 ProbeTerminationGracePeriod 功能网关。最小值为 1。如果未设置,则使用 spec.terminationGracePeriodSeconds。

超时秒数

整数

探针超时之前的秒数。默认为 1 秒。最小值为 1。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

.spec.template.spec.initContainers[].readinessProbe.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.initContainers[].readinessProbe.grpc

描述

GRPC 指定涉及 GRPC 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

port

整数

gRPC 服务的端口号。数字必须在 1 到 65535 的范围内。

服务

字符串

服务是在 gRPC HealthCheckRequest 中放置的服务名称(参见 https://github.com/grpc/grpc/blob/master/doc/health-checking.md)。

如果未指定,则默认行为由 gRPC 定义。

.spec.template.spec.initContainers[].readinessProbe.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.initContainers[].readinessProbe.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.initContainers[].readinessProbe.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.initContainers[].readinessProbe.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.initContainers[].resizePolicy

描述

容器的资源调整策略。

类型

数组

.spec.template.spec.initContainers[].resizePolicy[]

描述

ContainerResizePolicy 表示容器的资源调整策略。

类型

对象

必需
  • 资源名称

  • restartPolicy

属性 类型 描述

资源名称

字符串

此资源调整策略适用的资源名称。支持的值:cpu、memory。

restartPolicy

字符串

调整指定资源大小时要应用的重启策略。如果未指定,则默认为 NotRequired。

.spec.template.spec.initContainers[].resources

描述

ResourceRequirements 描述计算资源需求。

类型

对象

属性 类型 描述

声明

数组

Claims 列出了此容器使用的资源名称,这些资源在 spec.resourceClaims 中定义。

这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能网关。

此字段是不可变的。它只能为容器设置。

claims[]

对象

ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。

限制

对象 (Quantity)

Limits 描述了允许的最大计算资源量。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

请求

对象 (Quantity)

Requests 描述了所需的最小计算资源量。如果省略容器的 Requests,则默认为 Limits(如果明确指定),否则默认为实现定义的值。Requests 不能超过 Limits。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

.spec.template.spec.initContainers[].resources.claims

描述

Claims 列出了此容器使用的资源名称,这些资源在 spec.resourceClaims 中定义。

这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能网关。

此字段是不可变的。它只能为容器设置。

类型

数组

.spec.template.spec.initContainers[].resources.claims[]

描述

ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

名称必须与使用此字段的 Pod 的 pod.spec.resourceClaims 中的一个条目的名称匹配。它使该资源在容器内可用。

.spec.template.spec.initContainers[].securityContext

描述

SecurityContext 包含将应用于容器的安全配置。某些字段同时存在于 SecurityContext 和 PodSecurityContext 中。当两者都设置时,SecurityContext 中的值优先。

类型

对象

属性 类型 描述

允许权限提升

布尔值

AllowPrivilegeEscalation 控制进程是否可以获得比其父进程更多的权限。此布尔值直接控制是否会在容器进程上设置 no_new_privs 标志。当容器满足以下条件时,AllowPrivilegeEscalation 始终为 true:1) 作为 Privileged 运行 2) 具有 CAP_SYS_ADMIN 请注意,当 spec.os.name 为 windows 时,无法设置此字段。

AppArmor 配置文件

对象

AppArmorProfile 定义 Pod 或容器的 AppArmor 设置。

功能

对象

向运行中的容器添加和删除 POSIX 功能。

特权模式

布尔值

以特权模式运行容器。特权容器中的进程本质上等同于主机上的 root 用户。默认为 false。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

proc 挂载

字符串

procMount 表示要为容器使用的 proc 挂载类型。默认为 DefaultProcMount,它使用容器运行时针对只读路径和屏蔽路径的默认值。这需要启用 ProcMountType 功能标志。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

可能的枚举值:- "Default" 使用容器运行时针对 /proc 的只读路径和屏蔽路径的默认值。大多数容器运行时都会屏蔽 /proc 中的某些路径,以避免意外地暴露特殊设备或信息的安全风险。- "Unmasked" 会绕过容器运行时的默认屏蔽行为,并确保新创建的 /proc 容器保持完整,没有任何修改。

只读根文件系统

布尔值

此容器是否具有只读根文件系统。默认为 false。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

运行时组ID

整数

运行容器进程入口点的 GID。如果未设置,则使用运行时默认值。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

非root用户运行

布尔值

指示容器必须作为非 root 用户运行。如果为 true,则 Kubelet 将在运行时验证映像,以确保它不以 UID 0(root)运行,如果确实如此,则启动容器将失败。如果未设置或为 false,则不会执行此类验证。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值优先。

运行时用户ID

整数

运行容器进程入口点的UID。如果未指定,则默认为镜像元数据中指定的用户。也可以在PodSecurityContext中设置。如果在SecurityContext和PodSecurityContext中都设置了,则SecurityContext中指定的值优先。请注意,当spec.os.name为windows时,不能设置此字段。

seLinuxOptions

对象

SELinuxOptions是应用于容器的标签。

seccompProfile

对象

SeccompProfile定义pod/容器的seccomp配置文件设置。只能设置一个配置文件源。

windowsOptions

对象

WindowsSecurityContextOptions包含Windows特定的选项和凭据。

.spec.template.spec.initContainers[].securityContext.appArmorProfile

描述

AppArmorProfile 定义 Pod 或容器的 AppArmor 设置。

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

localhostProfile指示应使用节点上加载的配置文件。配置文件必须预先配置在节点上才能工作。必须与配置文件的加载名称匹配。当且仅当类型为“Localhost”时才必须设置。

类型

字符串

type指示将应用哪种AppArmor配置文件。有效选项包括:Localhost - 节点上预加载的配置文件。RuntimeDefault - 容器运行时的默认配置文件。Unconfined - 没有AppArmor强制执行。

可能的枚举值:- "Localhost" 指示应使用节点上预加载的配置文件。- "RuntimeDefault" 指示应使用容器运行时的默认AppArmor配置文件。- "Unconfined" 指示不应强制执行任何AppArmor配置文件。

.spec.template.spec.initContainers[].securityContext.capabilities

描述

向运行中的容器添加和删除 POSIX 功能。

类型

对象

属性 类型 描述

add

数组 (字符串)

添加的功能

drop

数组 (字符串)

删除的功能

.spec.template.spec.initContainers[].securityContext.seLinuxOptions

描述

SELinuxOptions是应用于容器的标签。

类型

对象

属性 类型 描述

level

字符串

Level是应用于容器的SELinux级别标签。

role

字符串

Role是应用于容器的SELinux角色标签。

类型

字符串

Type是应用于容器的SELinux类型标签。

user

字符串

User是应用于容器的SELinux用户标签。

.spec.template.spec.initContainers[].securityContext.seccompProfile

描述

SeccompProfile定义pod/容器的seccomp配置文件设置。只能设置一个配置文件源。

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

localhostProfile指示应使用节点上文件中定义的配置文件。配置文件必须预先配置在节点上才能工作。必须是相对于kubelet配置的seccomp配置文件位置的下降路径。如果类型为“Localhost”,则必须设置。对于任何其他类型,都必须不设置。

类型

字符串

type指示将应用哪种seccomp配置文件。有效选项包括

Localhost - 应使用节点上文件中定义的配置文件。RuntimeDefault - 应使用容器运行时的默认配置文件。Unconfined - 不应应用任何配置文件。

可能的枚举值:- "Localhost" 指示应使用节点上文件中定义的配置文件。该文件相对于<kubelet-root-dir>/seccomp的位置。- "RuntimeDefault" 表示默认的容器运行时seccomp配置文件。- "Unconfined" 指示不应用任何seccomp配置文件(又称无限制)。

.spec.template.spec.initContainers[].securityContext.windowsOptions

描述

WindowsSecurityContextOptions包含Windows特定的选项和凭据。

类型

对象

属性 类型 描述

gmsaCredentialSpec

字符串

GMSACredentialSpec是GMSA准入Webhook(https://github.com/kubernetes-sigs/windows-gmsa)内联由GMSACredentialSpecName字段命名的GMSA凭据规范内容的地方。

gmsaCredentialSpecName

字符串

GMSACredentialSpecName是要使用的GMSA凭据规范的名称。

hostProcess

布尔值

HostProcess确定是否应将容器作为“主机进程”容器运行。Pod的所有容器都必须具有相同的有效HostProcess值(不允许混合使用HostProcess容器和非HostProcess容器)。此外,如果HostProcess为true,则HostNetwork也必须设置为true。

runAsUserName

字符串

在Windows中运行容器进程入口点的用户名。如果未指定,则默认为镜像元数据中指定的用户。也可以在PodSecurityContext中设置。如果在SecurityContext和PodSecurityContext中都设置了,则SecurityContext中指定的值优先。

.spec.template.spec.initContainers[].startupProbe

描述

探针描述了针对容器执行的健康检查,以确定其是否存活或已准备好接收流量。

类型

对象

属性 类型 描述

exec

对象

ExecAction 描述了“在容器中运行”的操作。

failureThreshold

整数

探测成功后被认为失败的最小连续失败次数。默认为 3。最小值为 1。

grpc

对象

GRPC 指定涉及 GRPC 端口的操作。

httpGet

对象

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

initialDelaySeconds

整数

容器启动后到启动存活性探测之前的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

执行探测的频率(以秒为单位)。默认为 10 秒。最小值为 1。

successThreshold

整数

探测失败后被认为成功的最小连续成功次数。默认为 1。存活性探测和启动探测必须为 1。最小值为 1。

tcpSocket

对象

TCPSocketAction 描述了基于打开套接字的操作

terminationGracePeriodSeconds

整数

探针失败后,Pod优雅终止的可选持续时间(秒)。宽限期是在向 Pod 中运行的进程发送终止信号与使用 kill 信号强制停止进程之间的时间间隔(秒)。将此值设置为大于进程预期清理时间的时长。如果此值为 nil,则将使用 Pod 的 terminationGracePeriodSeconds。否则,此值将覆盖 Pod 规范中提供的值。值必须是非负整数。值为零表示立即通过 kill 信号停止(没有关闭的机会)。这是一个 Beta 功能,需要启用 ProbeTerminationGracePeriod 功能网关。最小值为 1。如果未设置,则使用 spec.terminationGracePeriodSeconds。

超时秒数

整数

探针超时之前的秒数。默认为 1 秒。最小值为 1。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

.spec.template.spec.initContainers[].startupProbe.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是直接执行,不会在 shell 中运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,需要显式调用该 shell。退出状态为 0 表示活动/健康,非零表示不健康。

.spec.template.spec.initContainers[].startupProbe.grpc

描述

GRPC 指定涉及 GRPC 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

port

整数

gRPC 服务的端口号。数字必须在 1 到 65535 的范围内。

服务

字符串

服务是在 gRPC HealthCheckRequest 中放置的服务名称(参见 https://github.com/grpc/grpc/blob/master/doc/health-checking.md)。

如果未指定,则默认行为由 gRPC 定义。

.spec.template.spec.initContainers[].startupProbe.httpGet

描述

HTTPGetAction 描述了基于 HTTP GET 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 pod IP。您可能希望在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器上端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- "HTTP" 表示使用的方案将是 http:// - "HTTPS" 表示使用的方案将是 https://

.spec.template.spec.initContainers[].startupProbe.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.spec.template.spec.initContainers[].startupProbe.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头

类型

对象

必需
  • name

属性 类型 描述

name

字符串

标头字段名称。这将在输出时规范化,因此大小写不同的名称将被理解为相同的标头。

字符串

标头字段值

.spec.template.spec.initContainers[].startupProbe.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 pod IP。

port

IntOrString

要访问容器上端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.spec.template.spec.initContainers[].volumeDevices

描述

volumeDevices 是容器要使用的块设备列表。

类型

数组

.spec.template.spec.initContainers[].volumeDevices[]

描述

volumeDevice 描述容器内原始块设备的映射。

类型

对象

必需
  • name

  • devicePath

属性 类型 描述

devicePath

字符串

devicePath是容器内设备将映射到的路径。

name

字符串

name必须与pod中的persistentVolumeClaim的名称匹配。

.spec.template.spec.initContainers[].volumeMounts

描述

要挂载到容器文件系统的 Pod 卷。无法更新。

类型

数组

.spec.template.spec.initContainers[].volumeMounts[]

描述

VolumeMount 描述在容器内挂载卷。

类型

对象

必需
  • name

  • mountPath

属性 类型 描述

mountPath

字符串

容器内应挂载卷的路径。不能包含':'。

mountPropagation

字符串

mountPropagation确定如何将挂载从主机传播到容器,反之亦然。未设置时,使用MountPropagationNone。此字段在1.10中为beta版。当RecursiveReadOnly设置为IfPossible或Enabled时,MountPropagation必须为None或未指定(默认为None)。

可能的枚举值:- "Bidirectional" 表示容器中的卷将接收来自主机或其他容器的新挂载,并且其自身的挂载将从容器传播到主机或其他容器。请注意,此模式递归应用于卷中的所有挂载(Linux术语中的“rshared”)。- "HostToContainer" 表示容器中的卷将接收来自主机或其他容器的新挂载,但容器内挂载的文件系统不会传播到主机或其他容器。请注意,此模式递归应用于卷中的所有挂载(Linux术语中的“rslave”)。- "None" 表示容器中的卷将不会接收来自主机或其他容器的新挂载,并且容器内挂载的文件系统不会传播到主机或其他容器。请注意,此模式对应于Linux术语中的“private”。

name

字符串

这必须与卷的名称匹配。

readOnly

布尔值

如果为true,则以只读方式挂载;否则为读写方式(false或未指定)。默认为false。

recursiveReadOnly

字符串

RecursiveReadOnly指定是否应递归处理只读挂载。

如果ReadOnly为false,则此字段无意义,必须未指定。

如果ReadOnly为true,并且此字段设置为Disabled,则不会递归地将挂载设置为只读。如果此字段设置为IfPossible,则如果容器运行时支持,则将挂载递归设置为只读。如果此字段设置为Enabled,则如果容器运行时支持,则将挂载递归设置为只读;否则,pod将不会启动,并且将生成错误以指示原因。

如果此字段设置为 IfPossible 或 Enabled,则 MountPropagation 必须设置为 None(或未指定,默认为 None)。

如果未指定此字段,则将其视为与 Disabled 等效。

subPath

字符串

容器应从中挂载卷的卷内的路径。默认为 ""(卷的根目录)。

subPathExpr

字符串

容器应从中挂载卷的卷内的展开路径。其行为类似于 SubPath,但环境变量引用 $(VAR_NAME) 将使用容器的环境进行展开。默认为 ""(卷的根目录)。SubPathExpr 和 SubPath 是互斥的。

.spec.template.spec.os

描述

PodOS 定义 Pod 的操作系统参数。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

名称是操作系统的名称。当前支持的值为linux和windows。将来可能会定义其他值,并且可以是以下之一:https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration 客户端应该能够处理其他值,并将此字段中无法识别的值视为os: null

.spec.template.spec.readinessGates

描述

如果指定,所有就绪门将被评估以确定 Pod 就绪情况。当所有容器就绪并且就绪门中指定的所有条件的状态都等于“True”时,Pod 就绪。更多信息:https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates

类型

数组

.spec.template.spec.readinessGates[]

描述

PodReadinessGate 包含对 Pod 条件的引用。

类型

对象

必需
  • conditionType

属性 类型 描述

conditionType

字符串

ConditionType 指的是 pod 条件列表中具有匹配类型的条件。

.spec.template.spec.resourceClaims

描述

ResourceClaims 定义在允许 Pod 启动之前必须分配和保留哪些 ResourceClaims。这些资源将通过名称提供给使用它们的容器。

这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能网关。

此字段是不可变的。

类型

数组

.spec.template.spec.resourceClaims[]

描述

PodResourceClaim 通过 ClaimSource 引用 exactly 一个 ResourceClaim。它向其添加一个名称,该名称唯一标识 Pod 内的 ResourceClaim。需要访问 ResourceClaim 的容器使用此名称引用它。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

名称唯一地标识 pod 内的此资源请求。这必须是 DNS_LABEL。

对象

ClaimSource 描述对 ResourceClaim 的引用。

这些字段中应该只设置一个。此类型的使用者必须将空对象视为具有未知值。

.spec.template.spec.resourceClaims[].source

描述

ClaimSource 描述对 ResourceClaim 的引用。

这些字段中应该只设置一个。此类型的使用者必须将空对象视为具有未知值。

类型

对象

属性 类型 描述

resourceClaimName

字符串

ResourceClaimName 是与该 pod 位于同一命名空间中的 ResourceClaim 对象的名称。

resourceClaimTemplateName

字符串

ResourceClaimTemplateName 是与该 pod 位于同一命名空间中的 ResourceClaimTemplate 对象的名称。

该模板将用于创建一个新的 ResourceClaim,该 ResourceClaim 将绑定到此 pod。当此 pod 被删除时,ResourceClaim 也将被删除。pod 名称和资源名称以及生成的组件将用于为 ResourceClaim 形成一个唯一名称,该名称将记录在 pod.status.resourceClaimStatuses 中。

此字段是不可变的,创建 ResourceClaim 后,控制平面不会对相应的 ResourceClaim 进行任何更改。

.spec.template.spec.schedulingGates

描述

SchedulingGates 是一个不透明的值列表,如果指定,将阻止调度 Pod。如果 schedulingGates 不为空,则 Pod 将保持在 SchedulingGated 状态,并且调度器不会尝试调度 Pod。

SchedulingGates 只能在 Pod 创建时设置,之后才能删除。

类型

数组

.spec.template.spec.schedulingGates[]

描述

PodSchedulingGate 与 Pod 相关联,以保护其调度。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

调度门的名称。每个调度门必须具有唯一的名称字段。

.spec.template.spec.securityContext

描述

PodSecurityContext 包含 Pod 级安全属性和公共容器设置。某些字段也存在于 container.securityContext 中。container.securityContext 的字段值优先于 PodSecurityContext 的字段值。

类型

对象

属性 类型 描述

AppArmor 配置文件

对象

AppArmorProfile 定义 Pod 或容器的 AppArmor 设置。

fsGroup

整数

应用于 pod 中所有容器的特殊补充组。某些卷类型允许 Kubelet 将该卷的所有权更改为 pod 所有。

1. 所有者 GID 将是 FSGroup 2. 设置 setgid 位(在卷中创建的新文件将由 FSGroup 拥有)3. 权限位将与 rw-rw---- 进行 OR 运算。

如果未设置,Kubelet 将不会修改任何卷的所有权和权限。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

fsGroupChangePolicy

字符串

fsGroupChangePolicy 定义在卷在 Pod 内公开之前更改其所有权和权限的行为。此字段仅适用于支持基于 fsGroup 的所有权(和权限)的卷类型。它对临时卷类型(例如:secret、configmaps 和 emptydir)无效。有效值为“OnRootMismatch”和“Always”。如果未指定,“Always”将被使用。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

可能的枚举值:- `“Always”` 指示无论何时在 Pod 内挂载卷,都应始终更改卷的所有权和权限。这是默认行为。- `“OnRootMismatch”` 指示只有当根目录的权限和所有权与卷上的预期权限不匹配时,才会更改卷的所有权和权限。这有助于缩短更改卷的所有权和权限所需的时间。

运行时组ID

整数

运行容器进程入口点的 GID。如果未设置,则使用运行时默认值。也可以在 SecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置,则 SecurityContext 中指定的值将优先于该容器。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

非root用户运行

布尔值

指示容器必须以非 root 用户身份运行。如果为 true,Kubelet 将在运行时验证映像以确保它不以 UID 0(root)身份运行,如果确实如此,则将无法启动容器。如果未设置或为 false,则不会执行此类验证。也可以在 SecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置,则 SecurityContext 中指定的值将优先。

运行时用户ID

整数

运行容器进程入口点的 UID。如果未指定,则默认为映像元数据中指定的用户。也可以在 SecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置,则 SecurityContext 中指定的值将优先于该容器。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

seLinuxOptions

对象

SELinuxOptions是应用于容器的标签。

seccompProfile

对象

SeccompProfile定义pod/容器的seccomp配置文件设置。只能设置一个配置文件源。

supplementalGroups

数组(整数)

应用于每个容器中运行的第一个进程的组列表,此外还有容器的主 GID、fsGroup(如果指定)以及容器映像中为容器进程的 uid 定义的组成员身份。如果未指定,则不会向任何容器添加其他组。请注意,即使容器映像中为容器进程的 uid 定义的组成员身份未包含在此列表中,它们仍然有效。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

sysctls

数组

Sysctls 包含用于 pod 的命名空间 sysctls 列表。具有不受支持的 sysctls(由容器运行时)的 Pod 可能会启动失败。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

sysctls[]

对象

Sysctl 定义要设置的内核参数。

windowsOptions

对象

WindowsSecurityContextOptions包含Windows特定的选项和凭据。

.spec.template.spec.securityContext.appArmorProfile

描述

AppArmorProfile 定义 Pod 或容器的 AppArmor 设置。

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

localhostProfile指示应使用节点上加载的配置文件。配置文件必须预先配置在节点上才能工作。必须与配置文件的加载名称匹配。当且仅当类型为“Localhost”时才必须设置。

类型

字符串

type指示将应用哪种AppArmor配置文件。有效选项包括:Localhost - 节点上预加载的配置文件。RuntimeDefault - 容器运行时的默认配置文件。Unconfined - 没有AppArmor强制执行。

可能的枚举值:- "Localhost" 指示应使用节点上预加载的配置文件。- "RuntimeDefault" 指示应使用容器运行时的默认AppArmor配置文件。- "Unconfined" 指示不应强制执行任何AppArmor配置文件。

.spec.template.spec.securityContext.seLinuxOptions

描述

SELinuxOptions是应用于容器的标签。

类型

对象

属性 类型 描述

level

字符串

Level是应用于容器的SELinux级别标签。

role

字符串

Role是应用于容器的SELinux角色标签。

类型

字符串

Type是应用于容器的SELinux类型标签。

user

字符串

User是应用于容器的SELinux用户标签。

.spec.template.spec.securityContext.seccompProfile

描述

SeccompProfile定义pod/容器的seccomp配置文件设置。只能设置一个配置文件源。

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

localhostProfile指示应使用节点上文件中定义的配置文件。配置文件必须预先配置在节点上才能工作。必须是相对于kubelet配置的seccomp配置文件位置的下降路径。如果类型为“Localhost”,则必须设置。对于任何其他类型,都必须不设置。

类型

字符串

type指示将应用哪种seccomp配置文件。有效选项包括

Localhost - 应使用节点上文件中定义的配置文件。RuntimeDefault - 应使用容器运行时的默认配置文件。Unconfined - 不应应用任何配置文件。

可能的枚举值:- "Localhost" 指示应使用节点上文件中定义的配置文件。该文件相对于<kubelet-root-dir>/seccomp的位置。- "RuntimeDefault" 表示默认的容器运行时seccomp配置文件。- "Unconfined" 指示不应用任何seccomp配置文件(又称无限制)。

.spec.template.spec.securityContext.sysctls

描述

Sysctls 包含用于 pod 的命名空间 sysctls 列表。具有不受支持的 sysctls(由容器运行时)的 Pod 可能会启动失败。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

类型

数组

.spec.template.spec.securityContext.sysctls[]

描述

Sysctl 定义要设置的内核参数。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

要设置的属性名称

字符串

要设置的属性值

.spec.template.spec.securityContext.windowsOptions

描述

WindowsSecurityContextOptions包含Windows特定的选项和凭据。

类型

对象

属性 类型 描述

gmsaCredentialSpec

字符串

GMSACredentialSpec是GMSA准入Webhook(https://github.com/kubernetes-sigs/windows-gmsa)内联由GMSACredentialSpecName字段命名的GMSA凭据规范内容的地方。

gmsaCredentialSpecName

字符串

GMSACredentialSpecName是要使用的GMSA凭据规范的名称。

hostProcess

布尔值

HostProcess确定是否应将容器作为“主机进程”容器运行。Pod的所有容器都必须具有相同的有效HostProcess值(不允许混合使用HostProcess容器和非HostProcess容器)。此外,如果HostProcess为true,则HostNetwork也必须设置为true。

runAsUserName

字符串

在Windows中运行容器进程入口点的用户名。如果未指定,则默认为镜像元数据中指定的用户。也可以在PodSecurityContext中设置。如果在SecurityContext和PodSecurityContext中都设置了,则SecurityContext中指定的值优先。

.spec.template.spec.tolerations

描述

如果指定,则为 Pod 的容忍度。

类型

数组

.spec.template.spec.tolerations[]

描述

此容忍度附加到的 Pod 容忍任何与三元组 <key,value,effect> 匹配的污点,使用匹配运算符 <operator>。

类型

对象

属性 类型 描述

作用

字符串

作用指示要匹配的污点作用。空表示匹配所有污点作用。如果指定,允许的值为NoSchedule、PreferNoSchedule和NoExecute。

可能的枚举值:- "NoExecute" 驱逐任何不宽容该污点的已运行 Pod。目前由 NodeController 强制执行。- "NoSchedule" 不允许新的 Pod 调度到节点上,除非它们宽容该污点,但允许所有提交给 Kubelet(无需通过调度器)的 Pod 启动,并允许所有已运行的 Pod 继续运行。由调度器强制执行。- "PreferNoSchedule" 类似于 TaintEffectNoSchedule,但调度器尝试而不是完全禁止将新 Pod 调度到节点上。由调度器强制执行。

key

字符串

键是容忍度适用的污点键。空表示匹配所有污点键。如果键为空,则运算符必须为 Exists;此组合表示匹配所有值和所有键。

operator

字符串

运算符表示键与值的关系。有效的运算符为 Exists 和 Equal。默认为 Equal。Exists 等效于值的通配符,因此 Pod 可以容忍特定类别下的所有污点。

可能的枚举值:- "Equal" - "Exists"

容忍秒数

整数

TolerationSeconds 表示容忍度(必须为 NoExecute 作用,否则忽略此字段)容忍污点的持续时间。默认情况下,它未设置,这意味着永远容忍污点(不驱逐)。系统将零和负值视为 0(立即驱逐)。

字符串

值是容忍度匹配的污点值。如果运算符为 Exists,则值应为空,否则为常规字符串。

.spec.template.spec.topologySpreadConstraints

描述

TopologySpreadConstraints 描述了一组 Pod 如何跨拓扑域进行分布。调度器将以遵守这些约束的方式调度 Pod。所有 topologySpreadConstraints 都是 AND 关系。

类型

数组

.spec.template.spec.topologySpreadConstraints[]

描述

TopologySpreadConstraint 指定如何在给定的拓扑结构中分布匹配的 Pod。

类型

对象

必需
  • 最大偏差

  • topologyKey

  • 无法满足时的处理方式

属性 类型 描述

labelSelector

LabelSelector

LabelSelector 用于查找匹配的 Pod。匹配此标签选择器的 Pod 将被计数以确定其对应拓扑域中的 Pod 数量。

matchLabelKeys

数组 (字符串)

MatchLabelKeys 是一组 Pod 标签键,用于选择将在其上计算扩展的 Pod。这些键用于从传入的 Pod 标签中查找值,这些键值标签与 labelSelector 进行 AND 运算,以选择将为传入 Pod 计算扩展的现有 Pod 组。同一个键禁止同时存在于 MatchLabelKeys 和 LabelSelector 中。当 LabelSelector 未设置时,不能设置 MatchLabelKeys。传入 Pod 标签中不存在的键将被忽略。空列表或 null 列表表示仅根据 labelSelector 匹配。

这是一个 Beta 功能,需要启用 MatchLabelKeysInPodTopologySpread 功能开关(默认启用)。

最大偏差

整数

MaxSkew 描述了 Pod 分布不均匀的程度。当 whenUnsatisfiable=DoNotSchedule 时,它是目标拓扑中匹配 Pod 数量与全局最小值之间允许的最大差异。全局最小值是在合格域中匹配 Pod 的最小数量,如果合格域的数量小于 MinDomains,则为零。例如,在 3 个区域的集群中,MaxSkew 设置为 1,具有相同 labelSelector 的 Pod 分布为 2/2/1:在这种情况下,全局最小值为 1。| 区域1 | 区域2 | 区域3 | | P P | P P | P | - 如果 MaxSkew 为 1,则只能将传入的 Pod 调度到区域 3 以变为 2/2/2;将其调度到区域 1(区域 2)将使区域 1(区域 2)上的 ActualSkew(3-1)违反 MaxSkew(1)。- 如果 MaxSkew 为 2,则可以将传入的 Pod 调度到任何区域。当 whenUnsatisfiable=ScheduleAnyway 时,它用于优先考虑满足它的拓扑。这是必需字段。默认值为 1,不允许为 0。

最小域数

整数

MinDomains 指示合格域的最小数量。当具有匹配拓扑键的合格域的数量小于 minDomains 时,Pod 拓扑扩展将“全局最小值”视为 0,然后执行 Skew 的计算。当具有匹配拓扑键的合格域的数量等于或大于 minDomains 时,此值对调度没有影响。因此,当合格域的数量小于 minDomains 时,调度器不会将超过 maxSkew 个 Pod 调度到这些域。如果值为 nil,则约束的行为与 MinDomains 等于 1 时相同。有效值为大于 0 的整数。当值不为 nil 时,WhenUnsatisfiable 必须为 DoNotSchedule。

例如,在 3 个区域的集群中,MaxSkew 设置为 2,MinDomains 设置为 5,并且具有相同 labelSelector 的 Pod 分布为 2/2/2:| 区域1 | 区域2 | 区域3 | | P P | P P | P P | 域的数量小于 5(MinDomains),因此“全局最小值”被视为 0。在这种情况下,不能调度具有相同 labelSelector 的新 Pod,因为如果调度新 Pod 到任何三个区域中的任何一个,则计算出的 skew 将为 3(3 - 0),它将违反 MaxSkew。

节点亲和性策略

字符串

NodeAffinityPolicy 指示在计算 Pod 拓扑扩展偏差时,我们将如何处理 Pod 的 nodeAffinity/nodeSelector。选项包括:- Honor:仅计算与 nodeAffinity/nodeSelector 匹配的节点。- Ignore:忽略 nodeAffinity/nodeSelector。所有节点都包含在计算中。

如果此值为 nil,则行为等效于 Honor 策略。这是一个 Beta 级功能,默认情况下由 NodeInclusionPolicyInPodTopologySpread 功能标志启用。

可能的枚举值:- "Honor" 表示在计算 Pod 拓扑扩展偏差时使用此调度指令。- "Ignore" 表示在计算 Pod 拓扑扩展偏差时忽略此调度指令。

节点污点策略

字符串

NodeTaintsPolicy 指示在计算 Pod 拓扑扩展偏差时,我们将如何处理节点污点。选项包括:- Honor:包含没有污点的节点以及传入 Pod 具有容忍度的受污点影响的节点。- Ignore:忽略节点污点。所有节点都包含在内。

如果此值为 nil,则行为等效于 Ignore 策略。这是一个 Beta 级功能,默认情况下由 NodeInclusionPolicyInPodTopologySpread 功能标志启用。

可能的枚举值:- "Honor" 表示在计算 Pod 拓扑扩展偏差时使用此调度指令。- "Ignore" 表示在计算 Pod 拓扑扩展偏差时忽略此调度指令。

topologyKey

字符串

TopologyKey 是节点标签的键。具有此键且值相同的标签的节点被认为属于相同的拓扑结构。我们将每个 <键,值> 对视为一个“桶”,并尝试将均衡数量的 Pod 放入每个桶中。我们将拓扑结构的特定实例定义为一个域。我们还将满足 nodeAffinityPolicy 和 nodeTaintsPolicy 要求的域定义为合格域。例如,如果 TopologyKey 为“kubernetes.io/hostname”,则每个节点都是该拓扑结构的一个域。如果 TopologyKey 为“topology.kubernetes.io/zone”,则每个区域都是该拓扑结构的一个域。这是一个必填字段。

无法满足时的处理方式

字符串

WhenUnsatisfiable 指示如果 Pod 不满足分布约束,该如何处理。- DoNotSchedule(默认)告诉调度程序不要调度它。- ScheduleAnyway 告诉调度程序在任何位置调度 Pod,但优先考虑有助于减少偏差的拓扑结构。当且仅当该 Pod 的所有可能的节点分配都会违反某个拓扑结构上的“MaxSkew”时,才会认为约束对于传入的 Pod 是“不可满足的”。例如,在 3 个区域的集群中,MaxSkew 设置为 1,具有相同 labelSelector 的 Pod 分布为 3/1/1:| 区域 1 | 区域 2 | 区域 3 | | P P P | P | P | 如果 WhenUnsatisfiable 设置为 DoNotSchedule,则传入的 Pod 只能调度到区域 2(区域 3)以变为 3/2/1(3/1/2),因为区域 2(区域 3)上的 ActualSkew(2-1)满足 MaxSkew(1)。换句话说,集群仍然可能不平衡,但调度程序不会使其更加不平衡。这是一个必填字段。

可能的枚举值:- "DoNotSchedule" 指示当约束不满足时,调度程序不要调度 Pod。- "ScheduleAnyway" 指示即使约束不满足,调度程序也要调度 Pod。

.spec.template.spec.volumes

描述

属于 Pod 的容器可以挂载的卷列表。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes

类型

数组

.spec.template.spec.volumes[]

描述

Volume 表示 Pod 中一个命名的卷,Pod 中的任何容器都可以访问它。

类型

对象

必需
  • name

属性 类型 描述

awsElasticBlockStore

对象

表示 AWS 中的持久性磁盘资源。

必须在挂载到容器之前存在 AWS EBS 磁盘。该磁盘还必须与 kubelet 位于相同的 AWS 区域。AWS EBS 磁盘只能以读写方式挂载一次。AWS EBS 卷支持所有权管理和 SELinux 重标记。

azureDisk

对象

AzureDisk 表示主机上的 Azure 数据磁盘挂载以及到 Pod 的绑定挂载。

azureFile

对象

AzureFile 表示主机上的 Azure 文件服务挂载以及到 Pod 的绑定挂载。

cephfs

对象

表示持续 Pod 整个生命周期的 Ceph 文件系统挂载。Cephfs 卷不支持所有权管理或 SELinux 重标记。

cinder

对象

表示 Openstack 中的 cinder 卷资源。必须在挂载到容器之前存在 Cinder 卷。该卷还必须与 kubelet 位于相同的区域。Cinder 卷支持所有权管理和 SELinux 重标记。

configMap

对象

将 ConfigMap 适配到卷。

目标 ConfigMap 的 Data 字段的内容将作为文件显示在卷中,使用 Data 字段中的键作为文件名,除非 items 元素填充了键到路径的特定映射。ConfigMap 卷支持所有权管理和 SELinux 重标记。

csi

对象

表示由外部 CSI 驱动程序管理的要挂载的卷的源位置。

downwardAPI

对象

DownwardAPIVolumeSource 表示包含向下 API 信息的卷。向下 API 卷支持所有权管理和 SELinux 重标记。

emptyDir

对象

表示 Pod 的空目录。空目录卷支持所有权管理和 SELinux 重标记。

ephemeral

对象

表示由普通存储驱动程序处理的短暂卷。

fc

对象

表示光纤通道卷。光纤通道卷只能以读写方式挂载一次。光纤通道卷支持所有权管理和 SELinux 重标记。

flexVolume

对象

FlexVolume 表示使用基于 exec 的插件预配/附加的通用卷资源。

flocker

对象

表示由 Flocker 代理挂载的 Flocker 卷。datasetName 和 datasetUUID 中只有一个应该被设置。Flocker 卷不支持所有权管理或 SELinux 重标记。

gcePersistentDisk

对象

表示 Google Compute Engine 中的持久性磁盘资源。

必须在挂载到容器之前存在 GCE PD。该磁盘还必须与 kubelet 位于相同的 GCE 项目和区域。GCE PD 只能以读写方式挂载一次或以只读方式挂载多次。GCE PD 支持所有权管理和 SELinux 重标记。

gitRepo

对象

表示使用 git 仓库内容填充的卷。Git 仓库卷不支持所有权管理。Git 仓库卷支持 SELinux 重标记。

已弃用:GitRepo 已弃用。要使用 git 仓库预配容器,请将 EmptyDir 挂载到 InitContainer 中,该容器使用 git 克隆仓库,然后将 EmptyDir 挂载到 Pod 的容器中。

glusterfs

对象

表示持续 Pod 整个生命周期的 Glusterfs 挂载。Glusterfs 卷不支持所有权管理或 SELinux 重标记。

hostPath

对象

表示映射到 Pod 的主机路径。主机路径卷不支持所有权管理或 SELinux 重标记。

iscsi

对象

表示 ISCSI 磁盘。ISCSI 卷只能以读写方式挂载一次。ISCSI 卷支持所有权管理和 SELinux 重标记。

name

字符串

卷的名称。必须是 DNS_LABEL,并且在 Pod 内唯一。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

nfs

对象

表示持续 Pod 整个生命周期的 NFS 挂载。NFS 卷不支持所有权管理或 SELinux 重标记。

persistentVolumeClaim

对象

PersistentVolumeClaimVolumeSource 引用同一命名空间中的用户 PVC。此卷查找绑定的 PV 并为 Pod 挂载该卷。PersistentVolumeClaimVolumeSource 本质上是另一个由其他人(系统)拥有的卷类型的包装器。

photonPersistentDisk

对象

表示 Photon Controller 持久性磁盘资源。

portworxVolume

对象

PortworxVolumeSource 表示 Portworx 卷资源。

projected

对象

表示投影卷源

quobyte

对象

表示持续 Pod 整个生命周期的 Quobyte 挂载。Quobyte 卷不支持所有权管理或 SELinux 重标记。

rbd

对象

表示持续 Pod 整个生命周期的 Rados 块设备挂载。RBD 卷支持所有权管理和 SELinux 重标记。

scaleIO

对象

ScaleIOVolumeSource 表示持久性 ScaleIO 卷

secret

对象

将 Secret 适配到卷。

目标 Secret 的 Data 字段的内容将作为文件显示在卷中,使用 Data 字段中的键作为文件名。Secret 卷支持所有权管理和 SELinux 重标记。

storageos

对象

表示 StorageOS 持久性卷资源。

vsphereVolume

对象

表示 vSphere 卷资源。

.spec.template.spec.volumes[].awsElasticBlockStore

描述

表示 AWS 中的持久性磁盘资源。

必须在挂载到容器之前存在 AWS EBS 磁盘。该磁盘还必须与 kubelet 位于相同的 AWS 区域。AWS EBS 磁盘只能以读写方式挂载一次。AWS EBS 卷支持所有权管理和 SELinux 重标记。

类型

对象

必需
  • volumeID

属性 类型 描述

fsType

字符串

fsType 是要挂载的卷的文件系统类型。提示:确保主机操作系统支持文件系统类型。示例:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

partition

整数

partition 是要挂载的卷中的分区。如果省略,则默认按卷名挂载。示例:对于卷 /dev/sda1,您将分区指定为“1”。类似地,/dev/sda 的卷分区为“0”(或者您可以保留该属性为空)。

readOnly

布尔值

readOnly 值 true 将强制执行 VolumeMounts 中的 readOnly 设置。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

volumeID

字符串

volumeID 是 AWS(Amazon EBS 卷)中持久性磁盘资源的唯一 ID。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

.spec.template.spec.volumes[].azureDisk

描述

AzureDisk 表示主机上的 Azure 数据磁盘挂载以及到 Pod 的绑定挂载。

类型

对象

必需
  • diskName

  • diskURI

属性 类型 描述

cachingMode

字符串

cachingMode 为主机缓存模式:无、只读、读写。

可能的枚举值:- "None" - "ReadOnly" - "ReadWrite"

diskName

字符串

diskName 是 Blob 存储中数据磁盘的名称。

diskURI

字符串

diskURI 是 Blob 存储中数据磁盘的 URI。

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

kind

字符串

kind 期望值为 Shared:每个存储帐户多个 Blob 磁盘;Dedicated:每个存储帐户单个 Blob 磁盘;Managed:Azure 托管数据磁盘(仅在托管可用性集中)。默认为 shared。

可能的枚举值:- "Dedicated" - "Managed" - "Shared"

readOnly

布尔值

readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

.spec.template.spec.volumes[].azureFile

描述

AzureFile 表示主机上的 Azure 文件服务挂载以及到 Pod 的绑定挂载。

类型

对象

必需
  • secretName

  • shareName

属性 类型 描述

readOnly

布尔值

readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

secretName

字符串

secretName 是包含 Azure 存储帐户名称和密钥的密钥的名称。

shareName

字符串

shareName 是 Azure 共享名称。

.spec.template.spec.volumes[].cephfs

描述

表示持续 Pod 整个生命周期的 Ceph 文件系统挂载。Cephfs 卷不支持所有权管理或 SELinux 重标记。

类型

对象

必需
  • monitors

属性 类型 描述

monitors

数组 (字符串)

monitors 是必需的:Monitors 是 Ceph 监控器的集合。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

path

字符串

path 是可选的:用作已挂载的根目录,而不是完整的 Ceph 树,默认为 /

readOnly

布尔值

readOnly 是可选的:默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

secretFile

字符串

secretFile 是可选的:SecretFile 是用户的密钥环路径,默认为 /etc/ceph/user.secret。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

secretRef

对象

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

user

字符串

user 是可选的:User 是 rados 用户名,默认为 admin。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

.spec.template.spec.volumes[].cephfs.secretRef

描述

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.spec.template.spec.volumes[].cinder

描述

表示 Openstack 中的 cinder 卷资源。必须在挂载到容器之前存在 Cinder 卷。该卷还必须与 kubelet 位于相同的区域。Cinder 卷支持所有权管理和 SELinux 重标记。

类型

对象

必需
  • volumeID

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

readOnly

布尔值

readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

secretRef

对象

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

volumeID

字符串

volumeID 用于在 cinder 中标识卷。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

.spec.template.spec.volumes[].cinder.secretRef

描述

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.spec.template.spec.volumes[].configMap

描述

将 ConfigMap 适配到卷。

目标 ConfigMap 的 Data 字段的内容将作为文件显示在卷中,使用 Data 字段中的键作为文件名,除非 items 元素填充了键到路径的特定映射。ConfigMap 卷支持所有权管理和 SELinux 重标记。

类型

对象

属性 类型 描述

defaultMode

整数

defaultMode 是可选的:用于默认设置已创建文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 要求模式位的十进制值。默认为 0644。路径中的目录不受此设置的影响。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

items

数组

items 如果未指定,则引用的 ConfigMap 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 ConfigMap 中不存在的键,则除非将其标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

items[]

对象

将字符串键映射到卷内的路径。

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

optional 指定是否必须定义 ConfigMap 或其键。

.spec.template.spec.volumes[].configMap.items

描述

items 如果未指定,则引用的 ConfigMap 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 ConfigMap 中不存在的键,则除非将其标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

类型

数组

.spec.template.spec.volumes[].configMap.items[]

描述

将字符串键映射到卷内的路径。

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

mode 是可选的:用于设置此文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 要求模式位的十进制值。如果未指定,则将使用卷 defaultMode。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

path

字符串

path 是将键映射到的文件的相对路径。不能是绝对路径。不能包含路径元素“..”不能以字符串“..”开头。

.spec.template.spec.volumes[].csi

描述

表示由外部 CSI 驱动程序管理的要挂载的卷的源位置。

类型

对象

必需
  • driver

属性 类型 描述

driver

字符串

driver 是处理此卷的 CSI 驱动程序的名称。请咨询管理员以获取在集群中注册的正确名称。

fsType

字符串

fsType 要挂载。例如,“ext4”、“xfs”、“ntfs”。如果未提供,则空值将传递给关联的 CSI 驱动程序,该驱动程序将确定要应用的默认文件系统。

nodePublishSecretRef

对象

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

readOnly

布尔值

readOnly 指定卷的只读配置。默认为 false(读/写)。

volumeAttributes

对象(字符串)

volumeAttributes 存储传递给 CSI 驱动程序的特定于驱动程序的属性。请参阅驱动程序的文档以了解支持的值。

.spec.template.spec.volumes[].csi.nodePublishSecretRef

描述

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.spec.template.spec.volumes[].downwardAPI

描述

DownwardAPIVolumeSource 表示包含向下 API 信息的卷。向下 API 卷支持所有权管理和 SELinux 重标记。

类型

对象

属性 类型 描述

defaultMode

整数

可选:默认情况下用于创建文件的模式位。必须是可选的:用于默认设置已创建文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 要求模式位的十进制值。默认为 0644。路径中的目录不受此设置的影响。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

items

数组

Items 是向下 API 卷文件的列表

items[]

对象

DownwardAPIVolumeFile 表示创建包含 pod 字段的文件的信息

.spec.template.spec.volumes[].downwardAPI.items

描述

Items 是向下 API 卷文件的列表

类型

数组

.spec.template.spec.volumes[].downwardAPI.items[]

描述

DownwardAPIVolumeFile 表示创建包含 pod 字段的文件的信息

类型

对象

必需
  • path

属性 类型 描述

字段引用

对象

ObjectFieldSelector 选择对象的 APIVersioned 字段。

mode

整数

可选:用于设置此文件权限的模式位,必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 要求模式位的十进制值。如果未指定,则将使用卷 defaultMode。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

path

字符串

必填:Path 是要创建文件的相对路径名。不能是绝对路径,也不能包含“..”路径。必须使用 utf-8 编码。相对路径的第一个条目不能以“..”开头。

资源字段引用

对象

ResourceFieldSelector 表示容器资源(cpu、内存)及其输出格式

.spec.template.spec.volumes[].downwardAPI.items[].fieldRef

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

FieldPath 所基于的模式版本,默认为“v1”。

fieldPath

字符串

在指定的 API 版本中选择的字段路径。

.spec.template.spec.volumes[].downwardAPI.items[].resourceFieldRef

描述

ResourceFieldSelector 表示容器资源(cpu、内存)及其输出格式

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

容器名称:卷必需,环境变量可选

divisor

数量

指定公开资源的输出格式,默认为“1”

resource

字符串

必需:要选择的资源

.spec.template.spec.volumes[].emptyDir

描述

表示 Pod 的空目录。空目录卷支持所有权管理和 SELinux 重标记。

类型

对象

属性 类型 描述

medium

字符串

medium 表示应该使用哪种类型的存储介质来支持此目录。默认为 "",这意味着使用节点的默认介质。必须是空字符串(默认)或 Memory。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#emptydir

sizeLimit

数量

sizeLimit 是此 EmptyDir 卷所需的本地存储总量。大小限制也适用于内存介质。内存介质 EmptyDir 的最大使用量将是此处指定的 SizeLimit 与 Pod 中所有容器的内存限制总和之间的最小值。默认为 nil,这意味着限制未定义。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#emptydir

.spec.template.spec.volumes[].ephemeral

描述

表示由普通存储驱动程序处理的短暂卷。

类型

对象

属性 类型 描述

volumeClaimTemplate

对象

PersistentVolumeClaimTemplate 用于作为 EphemeralVolumeSource 的一部分生成 PersistentVolumeClaim 对象。

.spec.template.spec.volumes[].ephemeral.volumeClaimTemplate

描述

PersistentVolumeClaimTemplate 用于作为 EphemeralVolumeSource 的一部分生成 PersistentVolumeClaim 对象。

类型

对象

必需
  • spec

属性 类型 描述

metadata

ObjectMeta

可以包含在创建 PVC 时将复制到其中的标签和注释。不允许使用其他字段,验证期间将被拒绝。

spec

对象

PersistentVolumeClaimSpec 描述了存储设备的常见属性,并允许为特定于提供程序的属性提供 Source。

.spec.template.spec.volumes[].ephemeral.volumeClaimTemplate.spec

描述

PersistentVolumeClaimSpec 描述了存储设备的常见属性,并允许为特定于提供程序的属性提供 Source。

类型

对象

属性 类型 描述

accessModes

数组 (字符串)

accessModes 包含卷应具有的所需访问模式。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#access-modes-1

dataSource

对象

TypedLocalObjectReference 包含足够的信息,让您可以在同一命名空间中找到已引用的类型化对象。

dataSourceRef

对象

dataSourceRef 指定要从中使用数据填充卷的对象(如果需要非空卷)。这可以是来自非空 API 组(非核心对象)的任何对象或 PersistentVolumeClaim 对象。如果指定此字段,则只有在指定对象的类型与某些已安装的卷填充程序或动态供应程序匹配时,卷绑定才会成功。此字段将替换 dataSource 字段的功能,因此,如果两个字段都非空,则它们必须具有相同的值。为了向后兼容,当 dataSourceRef 中未指定命名空间时,如果其中一个字段为空而另一个字段非空,则两个字段 (dataSource 和 dataSourceRef) 将自动设置为相同的值。当在 dataSourceRef 中指定命名空间时,dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间存在三个重要区别:* dataSource 只允许两种特定类型的对象,而 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* dataSource 会忽略不允许的值(丢弃它们),而 dataSourceRef 会保留所有值,如果指定了不允许的值,则会生成错误。* dataSource 只允许本地对象,而 dataSourceRef 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 功能网关。(Alpha)使用 dataSourceRef 的命名空间字段需要启用 CrossNamespaceVolumeDataSource 功能网关。

资源

对象

VolumeResourceRequirements 描述卷的存储资源需求。

selector

LabelSelector

selector 是对要考虑用于绑定的卷的标签查询。

storageClassName

字符串

storageClassName 是声明所需的 StorageClass 的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassName

字符串

volumeAttributesClassName 可用于设置此声明使用的 VolumeAttributesClass。如果指定,CSI 驱动程序将使用相应 VolumeAttributesClass 中定义的属性创建或更新卷。这与 storageClassName 的目的不同,它可以在声明创建后更改。空字符串值表示不会将任何 VolumeAttributesClass 应用于声明,但是一旦设置,就不允许将此字段重置为空字符串。如果未指定且 PersistentVolumeClaim 未绑定,则如果存在,持久卷控制器将设置默认的 VolumeAttributesClass。如果 volumeAttributesClass 引用的资源不存在,则此 PersistentVolumeClaim 将设置为 Pending 状态(如 modifyVolumeStatus 字段所示),直到此类资源存在为止。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volume-attributes-classes/(Alpha)使用此字段需要启用 VolumeAttributesClass 功能网关。

volumeMode

字符串

volumeMode 定义声明所需的卷类型。如果未包含在声明规范中,则隐含 Filesystem 值。

可能的枚举值:- "Block" 表示卷不会使用文件系统格式化,并将保持为原始块设备。- "Filesystem" 表示卷将使用文件系统格式化或已使用文件系统格式化。

volumeName

字符串

volumeName 是对支持此声明的 PersistentVolume 的绑定引用。

.spec.template.spec.volumes[].ephemeral.volumeClaimTemplate.spec.dataSource

描述

TypedLocalObjectReference 包含足够的信息,让您可以在同一命名空间中找到已引用的类型化对象。

类型

对象

必需
  • kind

  • name

属性 类型 描述

apiGroup

字符串

APIGroup 是被引用的资源的组。如果未指定 APIGroup,则指定的 Kind 必须位于核心 API 组中。对于任何其他第三方类型,都需要 APIGroup。

kind

字符串

Kind 是被引用的资源类型。

name

字符串

Name 是被引用的资源名称。

.spec.template.spec.volumes[].ephemeral.volumeClaimTemplate.spec.dataSourceRef

描述

dataSourceRef 指定要从中使用数据填充卷的对象(如果需要非空卷)。这可以是来自非空 API 组(非核心对象)的任何对象或 PersistentVolumeClaim 对象。如果指定此字段,则只有在指定对象的类型与某些已安装的卷填充程序或动态供应程序匹配时,卷绑定才会成功。此字段将替换 dataSource 字段的功能,因此,如果两个字段都非空,则它们必须具有相同的值。为了向后兼容,当 dataSourceRef 中未指定命名空间时,如果其中一个字段为空而另一个字段非空,则两个字段 (dataSource 和 dataSourceRef) 将自动设置为相同的值。当在 dataSourceRef 中指定命名空间时,dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间存在三个重要区别:* dataSource 只允许两种特定类型的对象,而 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* dataSource 会忽略不允许的值(丢弃它们),而 dataSourceRef 会保留所有值,如果指定了不允许的值,则会生成错误。* dataSource 只允许本地对象,而 dataSourceRef 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 功能网关。(Alpha)使用 dataSourceRef 的命名空间字段需要启用 CrossNamespaceVolumeDataSource 功能网关。

类型

对象

必需
  • kind

  • name

属性 类型 描述

apiGroup

字符串

APIGroup 是被引用的资源的组。如果未指定 APIGroup,则指定的 Kind 必须位于核心 API 组中。对于任何其他第三方类型,都需要 APIGroup。

kind

字符串

Kind 是被引用的资源类型。

name

字符串

Name 是被引用的资源名称。

namespace

字符串

Namespace 是被引用资源的命名空间。请注意,当指定命名空间时,referent 命名空间中需要一个 gateway.networking.k8s.io/ReferenceGrant 对象才能允许该命名空间的所有者接受该引用。有关详细信息,请参阅 ReferenceGrant 文档。(Alpha)此字段需要启用 CrossNamespaceVolumeDataSource 功能网关。

.spec.template.spec.volumes[].ephemeral.volumeClaimTemplate.spec.resources

描述

VolumeResourceRequirements 描述卷的存储资源需求。

类型

对象

属性 类型 描述

限制

对象 (Quantity)

Limits 描述了允许的最大计算资源量。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

请求

对象 (Quantity)

Requests 描述了所需的最小计算资源量。如果省略容器的 Requests,则默认为 Limits(如果明确指定),否则默认为实现定义的值。Requests 不能超过 Limits。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

.spec.template.spec.volumes[].fc

描述

表示光纤通道卷。光纤通道卷只能以读写方式挂载一次。光纤通道卷支持所有权管理和 SELinux 重标记。

类型

对象

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

lun

整数

lun 是可选的:FC 目标 LUN 号码。

readOnly

布尔值

readOnly 是可选的:默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

targetWWNs

数组 (字符串)

targetWWNs 是可选的:FC 目标全球名称 (WWN)。

wwids

数组 (字符串)

wwids 可选:FC 卷全球标识符 (wwid)。必须设置 wwids 或 targetWWNs 和 lun 的组合,但不能同时设置两者。

.spec.template.spec.volumes[].flexVolume

描述

FlexVolume 表示使用基于 exec 的插件预配/附加的通用卷资源。

类型

对象

必需
  • driver

属性 类型 描述

driver

字符串

driver 是要为此卷使用的驱动程序的名称。

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。默认文件系统取决于 FlexVolume 脚本。

options

对象(字符串)

options 是可选的:此字段包含任何额外的命令选项。

readOnly

布尔值

readOnly 是可选的:默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

secretRef

对象

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

.spec.template.spec.volumes[].flexVolume.secretRef

描述

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.spec.template.spec.volumes[].flocker

描述

表示由 Flocker 代理挂载的 Flocker 卷。datasetName 和 datasetUUID 中只有一个应该被设置。Flocker 卷不支持所有权管理或 SELinux 重标记。

类型

对象

属性 类型 描述

datasetName

字符串

datasetName 是数据集的名称,存储为元数据→Flocker 数据集上的名称应视为已弃用。

数据集UUID

字符串

datasetUUID是数据集的UUID。这是Flocker数据集的唯一标识符。

.spec.template.spec.volumes[].gcePersistentDisk

描述

表示 Google Compute Engine 中的持久性磁盘资源。

必须在挂载到容器之前存在 GCE PD。该磁盘还必须与 kubelet 位于相同的 GCE 项目和区域。GCE PD 只能以读写方式挂载一次或以只读方式挂载多次。GCE PD 支持所有权管理和 SELinux 重标记。

类型

对象

必需
  • pdName

属性 类型 描述

fsType

字符串

fsType是您想要挂载的卷的文件系统类型。提示:确保文件系统类型受主机操作系统支持。示例:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

partition

整数

partition是您想要挂载的卷中的分区。如果省略,则默认按卷名挂载。示例:对于卷/dev/sda1,您将分区指定为“1”。类似地,/dev/sda的卷分区为“0”(或者您可以保留属性为空)。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

pdName

字符串

pdName是GCE中PD资源的唯一名称。用于标识GCE中的磁盘。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

readOnly

布尔值

readOnly 将强制在VolumeMounts中设置ReadOnly。默认为false。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

.spec.template.spec.volumes[].gitRepo

描述

表示使用 git 仓库内容填充的卷。Git 仓库卷不支持所有权管理。Git 仓库卷支持 SELinux 重标记。

已弃用:GitRepo 已弃用。要使用 git 仓库预配容器,请将 EmptyDir 挂载到 InitContainer 中,该容器使用 git 克隆仓库,然后将 EmptyDir 挂载到 Pod 的容器中。

类型

对象

必需
  • 代码库

属性 类型 描述

目录

字符串

directory是目标目录名。不得包含或以“..”开头。如果提供“.”,则卷目录将是git仓库。否则,如果指定,则卷将包含具有给定名称的子目录中的git仓库。

代码库

字符串

repository是URL。

版本

字符串

revision是指定版本的提交哈希。

.spec.template.spec.volumes[].glusterfs

描述

表示持续 Pod 整个生命周期的 Glusterfs 挂载。Glusterfs 卷不支持所有权管理或 SELinux 重标记。

类型

对象

必需
  • 端点

  • path

属性 类型 描述

端点

字符串

endpoints是详细说明Glusterfs拓扑的端点名称。更多信息:https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod

path

字符串

path是Glusterfs卷路径。更多信息:https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod

readOnly

布尔值

readOnly 将强制Glusterfs卷以只读权限挂载。默认为false。更多信息:https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod

.spec.template.spec.volumes[].hostPath

描述

表示映射到 Pod 的主机路径。主机路径卷不支持所有权管理或 SELinux 重标记。

类型

对象

必需
  • path

属性 类型 描述

path

字符串

主机上目录的路径。如果路径是符号链接,它将跟随链接到实际路径。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#hostpath

类型

字符串

HostPath卷的类型,默认为""。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#hostpath

可能的枚举值:- "" 为了向后兼容,如果未设置,请将其保留为空 - "BlockDevice" 给定路径必须存在块设备 - "CharDevice" 给定路径必须存在字符设备 - "Directory" 给定路径必须存在目录 - "DirectoryOrCreate" 如果给定路径不存在任何内容,则根据需要在该处创建一个空目录,文件模式为0755,与Kubelet具有相同的组和所有权。 - "File" 给定路径必须存在文件 - "FileOrCreate" 如果给定路径不存在任何内容,则根据需要在该处创建一个空文件,文件模式为0644,与Kubelet具有相同的组和所有权。 - "Socket" 给定路径必须存在UNIX套接字。

.spec.template.spec.volumes[].iscsi

描述

表示 ISCSI 磁盘。ISCSI 卷只能以读写方式挂载一次。ISCSI 卷支持所有权管理和 SELinux 重标记。

类型

对象

必需
  • 目标Portal

  • iqn

  • lun

属性 类型 描述

chapAuthDiscovery

布尔值

chapAuthDiscovery定义是否支持iSCSI发现CHAP身份验证。

chapAuthSession

布尔值

chapAuthSession定义是否支持iSCSI会话CHAP身份验证。

fsType

字符串

fsType是您想要挂载的卷的文件系统类型。提示:确保文件系统类型受主机操作系统支持。示例:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#iscsi

发起程序名称

字符串

initiatorName是自定义iSCSI发起程序名称。如果同时指定initiatorName和iscsiInterface,则将为连接创建新的iSCSI接口<目标portal>:<卷名>。

iqn

字符串

iqn是目标iSCSI限定名称。

iscsiInterface

字符串

iscsiInterface是使用iSCSI传输的接口名称。默认为“default”(tcp)。

lun

整数

lun代表iSCSI目标LUN编号。

portals

数组 (字符串)

portals是iSCSI目标Portal列表。Portal是IP或ip_addr:port(如果端口不是默认端口,通常是TCP端口860和3260)。

readOnly

布尔值

readOnly 将强制在VolumeMounts中设置ReadOnly。默认为false。

secretRef

对象

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

目标Portal

字符串

targetPortal是iSCSI目标Portal。Portal是IP或ip_addr:port(如果端口不是默认端口,通常是TCP端口860和3260)。

.spec.template.spec.volumes[].iscsi.secretRef

描述

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.spec.template.spec.volumes[].nfs

描述

表示持续 Pod 整个生命周期的 NFS 挂载。NFS 卷不支持所有权管理或 SELinux 重标记。

类型

对象

必需
  • 服务器

  • path

属性 类型 描述

path

字符串

NFS服务器导出的路径。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#nfs

readOnly

布尔值

readOnly 将强制NFS导出以只读权限挂载。默认为false。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#nfs

服务器

字符串

server是NFS服务器的主机名或IP地址。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#nfs

.spec.template.spec.volumes[].persistentVolumeClaim

描述

PersistentVolumeClaimVolumeSource 引用同一命名空间中的用户 PVC。此卷查找绑定的 PV 并为 Pod 挂载该卷。PersistentVolumeClaimVolumeSource 本质上是另一个由其他人(系统)拥有的卷类型的包装器。

类型

对象

必需
  • 声明名称

属性 类型 描述

声明名称

字符串

claimName是与使用此卷的pod位于同一命名空间中的PersistentVolumeClaim的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

readOnly

布尔值

readOnly 将强制在VolumeMounts中设置ReadOnly。默认为false。

.spec.template.spec.volumes[].photonPersistentDisk

描述

表示 Photon Controller 持久性磁盘资源。

类型

对象

必需
  • pdID

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

pdID

字符串

pdID是标识Photon Controller持久磁盘的ID。

.spec.template.spec.volumes[].portworxVolume

描述

PortworxVolumeSource 表示 Portworx 卷资源。

类型

对象

必需
  • volumeID

属性 类型 描述

fsType

字符串

fSType表示要挂载的文件系统类型,必须是主机操作系统支持的文件系统类型。例如“ext4”、“xfs”。如果未指定,则隐式推断为“ext4”。

readOnly

布尔值

readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

volumeID

字符串

volumeID唯一标识Portworx卷。

.spec.template.spec.volumes[].projected

描述

表示投影卷源

类型

对象

属性 类型 描述

defaultMode

整数

defaultMode是用于默认设置创建文件的权限位。必须是0000到0777之间的八进制值或0到511之间的十进制值。YAML接受八进制和十进制值,JSON需要模式位的十进制值。路径内的目录不受此设置的影响。这可能与影响文件模式的其他选项(如fsGroup)冲突,结果可能是设置了其他模式位。

数据源

数组

sources是卷投影的列表。

sources[]

对象

可以与其他支持的卷类型一起投影的投影。

.spec.template.spec.volumes[].projected.sources

描述

sources是卷投影的列表。

类型

数组

.spec.template.spec.volumes[].projected.sources[]

描述

可以与其他支持的卷类型一起投影的投影。

类型

对象

属性 类型 描述

集群信任捆绑包

对象

ClusterTrustBundleProjection描述如何选择一组ClusterTrustBundle对象并将它们的内容投影到pod文件系统中。

configMap

对象

将ConfigMap适配到投影卷中。

目标 ConfigMap 的 Data 字段内容将作为文件显示在投影卷中,使用 Data 字段中的键作为文件名,除非 items 元素填充了键到路径的特定映射。请注意,这与没有默认模式的 configmap 卷源相同。

downwardAPI

对象

表示向下 API 信息,用于投影到投影卷中。请注意,这与没有默认模式的 downwardAPI 卷源相同。

secret

对象

将密钥自适应到投影卷中。

目标 Secret 的 Data 字段内容将作为文件显示在投影卷中,使用 Data 字段中的键作为文件名。请注意,这与没有默认模式的密钥卷源相同。

serviceAccountToken

对象

ServiceAccountTokenProjection 表示一个投影的服务帐户令牌卷。此投影可用于将服务帐户令牌插入到 Pod 的运行时文件系统中,以用于针对 API(Kubernetes API 服务器或其他)的操作。

.spec.template.spec.volumes[].projected.sources[].clusterTrustBundle

描述

ClusterTrustBundleProjection描述如何选择一组ClusterTrustBundle对象并将它们的内容投影到pod文件系统中。

类型

对象

必需
  • path

属性 类型 描述

labelSelector

LabelSelector

选择与该标签选择器匹配的所有 ClusterTrustBundle。仅当设置了 signerName 时才有效。与 name 相互排斥。如果未设置,则解释为“不匹配任何内容”。如果设置为空,则解释为“匹配所有内容”。

name

字符串

按对象名称选择单个 ClusterTrustBundle。与 signerName 和 labelSelector 相互排斥。

可选

布尔值

如果为 true,则如果引用的 ClusterTrustBundle 不可用,则不会阻塞 Pod 启动。如果使用 name,则允许命名 ClusterTrustBundle 不存在。如果使用 signerName,则允许 signerName 和 labelSelector 的组合匹配零个 ClusterTrustBundle。

path

字符串

从卷根目录到写入 bundle 的相对路径。

signerName

字符串

选择与该签名者名称匹配的所有 ClusterTrustBundle。与 name 相互排斥。所有选定 ClusterTrustBundle 的内容将被统一和去重。

.spec.template.spec.volumes[].projected.sources[].configMap

描述

将ConfigMap适配到投影卷中。

目标 ConfigMap 的 Data 字段内容将作为文件显示在投影卷中,使用 Data 字段中的键作为文件名,除非 items 元素填充了键到路径的特定映射。请注意,这与没有默认模式的 configmap 卷源相同。

类型

对象

属性 类型 描述

items

数组

items 如果未指定,则引用的 ConfigMap 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 ConfigMap 中不存在的键,则除非将其标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

items[]

对象

将字符串键映射到卷内的路径。

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

optional 指定是否必须定义 ConfigMap 或其键。

.spec.template.spec.volumes[].projected.sources[].configMap.items

描述

items 如果未指定,则引用的 ConfigMap 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 ConfigMap 中不存在的键,则除非将其标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

类型

数组

.spec.template.spec.volumes[].projected.sources[].configMap.items[]

描述

将字符串键映射到卷内的路径。

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

mode 是可选的:用于设置此文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 要求模式位的十进制值。如果未指定,则将使用卷 defaultMode。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

path

字符串

path 是将键映射到的文件的相对路径。不能是绝对路径。不能包含路径元素“..”不能以字符串“..”开头。

.spec.template.spec.volumes[].projected.sources[].downwardAPI

描述

表示向下 API 信息,用于投影到投影卷中。请注意,这与没有默认模式的 downwardAPI 卷源相同。

类型

对象

属性 类型 描述

items

数组

Items 是 DownwardAPIVolume 文件的列表

items[]

对象

DownwardAPIVolumeFile 表示创建包含 pod 字段的文件的信息

.spec.template.spec.volumes[].projected.sources[].downwardAPI.items

描述

Items 是 DownwardAPIVolume 文件的列表

类型

数组

.spec.template.spec.volumes[].projected.sources[].downwardAPI.items[]

描述

DownwardAPIVolumeFile 表示创建包含 pod 字段的文件的信息

类型

对象

必需
  • path

属性 类型 描述

字段引用

对象

ObjectFieldSelector 选择对象的 APIVersioned 字段。

mode

整数

可选:用于设置此文件权限的模式位,必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 要求模式位的十进制值。如果未指定,则将使用卷 defaultMode。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

path

字符串

必填:Path 是要创建文件的相对路径名。不能是绝对路径,也不能包含“..”路径。必须使用 utf-8 编码。相对路径的第一个条目不能以“..”开头。

资源字段引用

对象

ResourceFieldSelector 表示容器资源(cpu、内存)及其输出格式

.spec.template.spec.volumes[].projected.sources[].downwardAPI.items[].fieldRef

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

FieldPath 所基于的模式版本,默认为“v1”。

fieldPath

字符串

在指定的 API 版本中选择的字段路径。

.spec.template.spec.volumes[].projected.sources[].downwardAPI.items[].resourceFieldRef

描述

ResourceFieldSelector 表示容器资源(cpu、内存)及其输出格式

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

容器名称:卷必需,环境变量可选

divisor

数量

指定公开资源的输出格式,默认为“1”

resource

字符串

必需:要选择的资源

.spec.template.spec.volumes[].projected.sources[].secret

描述

将密钥自适应到投影卷中。

目标 Secret 的 Data 字段内容将作为文件显示在投影卷中,使用 Data 字段中的键作为文件名。请注意,这与没有默认模式的密钥卷源相同。

类型

对象

属性 类型 描述

items

数组

items 如果未指定,则引用的 Secret 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 Secret 中不存在的键,则卷设置将出错,除非它被标记为可选。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

items[]

对象

将字符串键映射到卷内的路径。

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

可选

布尔值

optional 字段指定是否必须定义 Secret 或其键。

.spec.template.spec.volumes[].projected.sources[].secret.items

描述

items 如果未指定,则引用的 Secret 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 Secret 中不存在的键,则卷设置将出错,除非它被标记为可选。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

类型

数组

.spec.template.spec.volumes[].projected.sources[].secret.items[]

描述

将字符串键映射到卷内的路径。

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

mode 是可选的:用于设置此文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 要求模式位的十进制值。如果未指定,则将使用卷 defaultMode。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

path

字符串

path 是将键映射到的文件的相对路径。不能是绝对路径。不能包含路径元素“..”不能以字符串“..”开头。

.spec.template.spec.volumes[].projected.sources[].serviceAccountToken

描述

ServiceAccountTokenProjection 表示一个投影的服务帐户令牌卷。此投影可用于将服务帐户令牌插入到 Pod 的运行时文件系统中,以用于针对 API(Kubernetes API 服务器或其他)的操作。

类型

对象

必需
  • path

属性 类型 描述

audience

字符串

audience 是令牌的目标受众。令牌的接收者必须使用令牌的受众中指定的标识符标识自己,否则应拒绝令牌。受众默认为 apiserver 的标识符。

expirationSeconds

整数

expirationSeconds 是请求的服务帐户令牌的有效期。随着令牌接近过期,kubelet 卷插件将主动轮换服务帐户令牌。如果令牌的剩余时间少于其生存时间的 80%,或者令牌的年龄超过 24 小时,kubelet 将开始尝试轮换令牌。默认为 1 小时,必须至少 10 分钟。

path

字符串

path 是相对于挂载点的文件路径,用于将令牌投影到其中。

.spec.template.spec.volumes[].quobyte

描述

表示持续 Pod 整个生命周期的 Quobyte 挂载。Quobyte 卷不支持所有权管理或 SELinux 重标记。

类型

对象

必需
  • registry

  • volume

属性 类型 描述

group

字符串

将卷访问权限映射到的组。默认为无组。

readOnly

布尔值

readOnly 将强制以只读权限挂载 Quobyte 卷。默认为 false。

registry

字符串

registry 表示指定为字符串的主机:端口对(多个条目用逗号分隔)的一个或多个 Quobyte 注册表服务,它充当卷的中央注册表。

tenant

字符串

后端中拥有给定 Quobyte 卷的租户。与动态配置的 Quobyte 卷一起使用,值由插件设置。

user

字符串

将卷访问权限映射到的用户。默认为 service account 用户。

volume

字符串

volume 是一个字符串,它引用了一个已创建的 Quobyte 卷(按名称)。

.spec.template.spec.volumes[].rbd

描述

表示持续 Pod 整个生命周期的 Rados 块设备挂载。RBD 卷支持所有权管理和 SELinux 重标记。

类型

对象

必需
  • monitors

  • 镜像

属性 类型 描述

fsType

字符串

fsType 是要挂载的卷的文件系统类型。提示:确保主机操作系统支持文件系统类型。示例:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#rbd

镜像

字符串

image 是 rados 映像名称。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

keyring

字符串

keyring 是 RBDUser 的密钥环路径。默认为 /etc/ceph/keyring。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

monitors

数组 (字符串)

monitors 是 Ceph 监控器的集合。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

pool

字符串

pool 是 rados 池名称。默认为 rbd。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

readOnly

布尔值

readOnly 将强制在 VolumeMounts 中设置 ReadOnly。默认为 false。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

secretRef

对象

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

user

字符串

user 是 rados 用户名。默认为 admin。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

.spec.template.spec.volumes[].rbd.secretRef

描述

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.spec.template.spec.volumes[].scaleIO

描述

ScaleIOVolumeSource 表示持久性 ScaleIO 卷

类型

对象

必需
  • 网关 (gateway)

  • 系统 (system)

  • secretRef

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。默认为“xfs”。

网关 (gateway)

字符串

gateway 是 ScaleIO API 网关的主机地址。

保护域 (protectionDomain)

字符串

protectionDomain 是为已配置存储指定的 ScaleIO 保护域的名称。

readOnly

布尔值

readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

secretRef

对象

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

sslEnabled

布尔值

sslEnabled 标志启用/禁用与网关的 SSL 通信,默认为 false。

存储模式 (storageMode)

字符串

storageMode 指示卷的存储应该是厚置备 (ThickProvisioned) 还是薄置备 (ThinProvisioned)。默认为薄置备 (ThinProvisioned)。

存储池 (storagePool)

字符串

storagePool 是与保护域关联的 ScaleIO 存储池。

系统 (system)

字符串

system 是在 ScaleIO 中配置的存储系统的名称。

volumeName

字符串

volumeName 是已在与该卷源关联的 ScaleIO 系统中创建的卷的名称。

.spec.template.spec.volumes[].scaleIO.secretRef

描述

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.spec.template.spec.volumes[].secret

描述

将 Secret 适配到卷。

目标 Secret 的 Data 字段的内容将作为文件显示在卷中,使用 Data 字段中的键作为文件名。Secret 卷支持所有权管理和 SELinux 重标记。

类型

对象

属性 类型 描述

defaultMode

整数

defaultMode 是可选的:默认情况下用于设置已创建文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 需要模式位的十进制值。默认为 0644。路径中的目录不受此设置的影响。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

items

数组

items 如果未指定,则引用的 Secret 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定的键在 Secret 中不存在,除非标记为可选,否则卷设置将出错。路径必须是相对路径,不能包含“..”路径或以“..”开头。

items[]

对象

将字符串键映射到卷内的路径。

可选

布尔值

optional 字段指定 Secret 或其键是否必须定义。

secretName

字符串

secretName 是要使用的 Pod 命名空间中密钥的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#secret

.spec.template.spec.volumes[].secret.items

描述

items 如果未指定,则引用的 Secret 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定的键在 Secret 中不存在,除非标记为可选,否则卷设置将出错。路径必须是相对路径,不能包含“..”路径或以“..”开头。

类型

数组

.spec.template.spec.volumes[].secret.items[]

描述

将字符串键映射到卷内的路径。

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

mode 是可选的:用于设置此文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 要求模式位的十进制值。如果未指定,则将使用卷 defaultMode。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

path

字符串

path 是将键映射到的文件的相对路径。不能是绝对路径。不能包含路径元素“..”不能以字符串“..”开头。

.spec.template.spec.volumes[].storageos

描述

表示 StorageOS 持久性卷资源。

类型

对象

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

readOnly

布尔值

readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

secretRef

对象

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

volumeName

字符串

volumeName 是 StorageOS 卷的可读名称。卷名称仅在一个命名空间内唯一。

volumeNamespace

字符串

volumeNamespace 指定 StorageOS 中卷的范围。如果未指定命名空间,则将使用 Pod 的命名空间。这允许在 StorageOS 中镜像 Kubernetes 名称范围,以实现更紧密的集成。将 VolumeName 设置为任何名称以覆盖默认行为。如果您没有在 StorageOS 中使用命名空间,则设置为“default”。StorageOS 中不存在的命名空间将被创建。

.spec.template.spec.volumes[].storageos.secretRef

描述

LocalObjectReference 包含足够的信息,让您可以找到同一命名空间内引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型中此处值为空的实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.spec.template.spec.volumes[].vsphereVolume

描述

表示 vSphere 卷资源。

类型

对象

必需
  • 卷路径 (volumePath)

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

storagePolicyID

字符串

storagePolicyID 是与 StoragePolicyName 关联的基于存储策略的管理 (SPBM) 配置文件 ID。

storagePolicyName

字符串

storagePolicyName 是基于存储策略的管理 (SPBM) 配置文件名称。

卷路径 (volumePath)

字符串

volumePath 是标识 vSphere 卷 vmdk 的路径。

.status

描述

ReplicationControllerStatus 代表副本控制器的当前状态。

类型

对象

必需
  • replicas

属性 类型 描述

可用副本 (availableReplicas)

整数

此复制控制器的可用副本数(至少准备好 minReadySeconds)。

状态 (conditions)

数组

表示复制控制器当前状态的最新可用观察结果。

conditions[]

对象

ReplicationControllerCondition 描述了复制控制器在特定时间点的状态。

完全标记的副本 (fullyLabeledReplicas)

整数

具有与复制控制器的 Pod 模板的标签匹配的标签的 Pod 数量。

观察到的代 (observedGeneration)

整数

ObservedGeneration 反映最近观察到的复制控制器的代数。

就绪副本 (readyReplicas)

整数

此复制控制器的就绪副本数。

replicas

整数

副本数是最近观察到的副本数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller

.status.conditions

描述

表示复制控制器当前状态的最新可用观察结果。

类型

数组

.status.conditions[]

描述

ReplicationControllerCondition 描述了复制控制器在特定时间点的状态。

类型

对象

必需
  • 类型

  • status

属性 类型 描述

最后转换时间 (lastTransitionTime)

时间 (Time)

条件从一种状态转换为另一种状态的最后时间。

消息 (message)

字符串

指示转换详细信息的人类可读消息。

原因 (reason)

字符串

条件最后转换的原因。

status

字符串

条件的状态,True、False、Unknown 之一。

类型

字符串

复制控制器条件的类型。

API 端点

提供以下 API 端点

  • /api/v1/replicationcontrollers

    • GET:列出或监视 ReplicationController 类型的对象。

  • /api/v1/watch/replicationcontrollers

    • GET:监视 ReplicationController 列表的单个更改。已弃用:改为使用列表操作中的“watch”参数。

  • /api/v1/namespaces/{namespace}/replicationcontrollers

    • DELETE:删除 ReplicationController 集合。

    • GET:列出或监视 ReplicationController 类型的对象。

    • POST:创建一个 ReplicationController。

  • /api/v1/watch/namespaces/{namespace}/replicationcontrollers

    • GET:监视 ReplicationController 列表的单个更改。已弃用:改为使用列表操作中的“watch”参数。

  • /api/v1/namespaces/{namespace}/replicationcontrollers/{name}

    • DELETE:删除一个 ReplicationController。

    • GET:读取指定的 ReplicationController。

    • PATCH:部分更新指定的 ReplicationController。

    • PUT:替换指定的 ReplicationController。

  • /api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}

    • GET:监视 ReplicationController 类型对象的更改。已弃用:改为使用列表操作中的“watch”参数,并使用“fieldSelector”参数过滤为单个项目。

  • /api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status

    • GET:读取指定 ReplicationController 的状态。

    • PATCH:部分更新指定 ReplicationController 的状态。

    • PUT:替换指定 ReplicationController 的状态。

/api/v1/replicationcontrollers

HTTP 方法

GET

描述

列出或监视 ReplicationController 类型的对象。

表 1. HTTP 响应
HTTP 代码 响应正文

200 - OK

ReplicationControllerList 模式

401 - 未授权

/api/v1/watch/replicationcontrollers

HTTP 方法

GET

描述

监视 ReplicationController 列表的单个更改。已弃用:改为使用列表操作中的“watch”参数。

表 2. HTTP 响应
HTTP 代码 响应正文

200 - OK

WatchEvent 模式

401 - 未授权

/api/v1/namespaces/{namespace}/replicationcontrollers

HTTP 方法

DELETE

描述

删除 ReplicationController 集合。

表 3. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段。

表 4. HTTP 响应
HTTP 代码 响应正文

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出或监视 ReplicationController 类型的对象。

表 5. HTTP 响应
HTTP 代码 响应正文

200 - OK

ReplicationControllerList 模式

401 - 未授权

HTTP 方法

POST

描述

创建一个 ReplicationController。

表 6. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段。

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何未知字段,这些字段将从对象中静默删除,并且将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 7. 请求体参数
参数 类型 描述

body

ReplicationController 模式

表 8. HTTP 响应
HTTP 代码 响应正文

200 - OK

ReplicationController 模式

201 - 已创建

ReplicationController 模式

202 - 已接受

ReplicationController 模式

401 - 未授权

/api/v1/watch/namespaces/{namespace}/replicationcontrollers

HTTP 方法

GET

描述

监视 ReplicationController 列表的单个更改。已弃用:改为使用列表操作中的“watch”参数。

表 9. HTTP 响应
HTTP 代码 响应正文

200 - OK

WatchEvent 模式

401 - 未授权

/api/v1/namespaces/{namespace}/replicationcontrollers/{name}

表 10. 全局路径参数
参数 类型 描述

name

字符串

ReplicationController 的名称

HTTP 方法

DELETE

描述

删除 ReplicationController

表 11. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段。

表 12. HTTP 响应
HTTP 代码 响应正文

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 ReplicationController

表 13. HTTP 响应
HTTP 代码 响应正文

200 - OK

ReplicationController 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 ReplicationController

表 14. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段。

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何未知字段,这些字段将从对象中静默删除,并且将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 15. HTTP 响应
HTTP 代码 响应正文

200 - OK

ReplicationController 模式

201 - 已创建

ReplicationController 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 ReplicationController

表 16. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段。

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何未知字段,这些字段将从对象中静默删除,并且将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 17. 请求体参数
参数 类型 描述

body

ReplicationController 模式

表 18. HTTP 响应
HTTP 代码 响应正文

200 - OK

ReplicationController 模式

201 - 已创建

ReplicationController 模式

401 - 未授权

/api/v1/watch/namespaces/{namespace}/replicationcontrollers/{name}

表 19. 全局路径参数
参数 类型 描述

name

字符串

ReplicationController 的名称

HTTP 方法

GET

描述

监听 ReplicationController 对象的更改。已弃用:请改用带有列表操作的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

表 20. HTTP 响应
HTTP 代码 响应正文

200 - OK

WatchEvent 模式

401 - 未授权

/api/v1/namespaces/{namespace}/replicationcontrollers/{name}/status

表 21. 全局路径参数
参数 类型 描述

name

字符串

ReplicationController 的名称

HTTP 方法

GET

描述

读取指定的 ReplicationController 的状态

表 22. HTTP 响应
HTTP 代码 响应正文

200 - OK

ReplicationController 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 ReplicationController 的状态

表 23. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段。

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何未知字段,这些字段将从对象中静默删除,并且将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 24. HTTP 响应
HTTP 代码 响应正文

200 - OK

ReplicationController 模式

201 - 已创建

ReplicationController 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 ReplicationController 的状态

表 25. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段。

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何未知字段,这些字段将从对象中静默删除,并且将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将导致请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 26. 请求体参数
参数 类型 描述

body

ReplicationController 模式

表 27. HTTP 响应
HTTP 代码 响应正文

200 - OK

ReplicationController 模式

201 - 已创建

ReplicationController 模式

401 - 未授权