×
描述

Pod 是可在主机上运行的容器集合。此资源由客户端创建,并调度到主机上。

类型

对象

规范

属性 类型 描述

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

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

spec

对象

PodSpec 是 Pod 的描述。

status

对象

PodStatus 表示有关 Pod 状态的信息。状态可能落后于系统的实际状态,特别是如果托管 Pod 的节点无法联系控制平面。

.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 选择的策略合并。要同时设置 DNS 选项和 hostNetwork,必须将 DNS 策略显式指定为“ClusterFirstWithHostNet”。

可能的枚举值:- "ClusterFirst" 表示 Pod 应首先使用集群 DNS(除非 hostNetwork 为 true),如果可用,则回退到默认的(由 kubelet 确定的)DNS 设置。- "ClusterFirstWithHostNet" 表示 Pod 应首先使用集群 DNS(如果可用),然后回退到默认的(由 kubelet 确定的)DNS 设置。- "Default" 表示 Pod 应使用默认的(由 kubelet 确定的)DNS 设置。- "None" 表示 Pod 应使用空的 DNS 设置。nameservers 和 search paths 等 DNS 参数应通过 DNSConfig 定义。

enableServiceLinks

布尔值

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

ephemeralContainers

数组

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

ephemeralContainers[]

对象

EphemeralContainer 是一个临时容器,您可以将其添加到现有 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 创建一个新的用户命名空间。设置为 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 失败,并根据其重启策略进行处理。初始化容器或普通容器的名称在所有容器中必须唯一。初始化容器可能没有生命周期操作、就绪探针、存活探针或启动探针。初始化容器的 resourceRequirements 在调度期间通过查找每种资源类型的最高请求/限制,然后使用该值或普通容器总和的最大值来考虑。限制以类似的方式应用于初始化容器。当前无法添加或删除初始化容器。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/init-containers/

initContainers[]

对象

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

nodeName

字符串

NodeName 是将此 Pod 调度到特定节点的请求。如果它非空,调度程序只需将此 Pod 调度到该节点,假设它符合资源要求。

nodeSelector

对象 (字符串)

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

os

对象

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

overhead

对象 (数量)

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 引用恰好一个 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 中的所有容器之间共享单个进程命名空间。设置此选项后,容器将能够查看和发送信号给同一 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 都是 ANDed。

topologySpreadConstraints[]

对象

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

volumes

数组

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

volumes[]

对象

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

.spec.affinity

描述

Affinity 是一组亲和调度规则。

类型

对象

属性 类型 描述

nodeAffinity

对象

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

podAffinity

对象

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

podAntiAffinity

对象

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

.spec.affinity.nodeAffinity

描述

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

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

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

preferredDuringSchedulingIgnoredDuringExecution[]

对象

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

requiredDuringSchedulingIgnoredDuringExecution

对象

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

.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • weight

  • preference

属性 类型 描述

preference

对象

null 或空的节点选择器项不匹配任何对象。它们的条件是 ANDed。TopologySelectorTerm 类型实现了 NodeSelectorTerm 的一个子集。

weight

整数

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

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

描述

null 或空的节点选择器项不匹配任何对象。它们的条件是 ANDed。TopologySelectorTerm 类型实现了 NodeSelectorTerm 的一个子集。

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

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

matchFields

数组

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

matchFields[]

对象

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

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

描述

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

类型

数组

.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.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[].preference.matchFields

描述

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

类型

数组

.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.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

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

类型

对象

必需
  • nodeSelectorTerms

属性 类型 描述

nodeSelectorTerms

数组

必需。节点选择器项列表。这些项是 ORed。

nodeSelectorTerms[]

对象

null 或空的节点选择器项不匹配任何对象。它们的条件是 ANDed。TopologySelectorTerm 类型实现了 NodeSelectorTerm 的一个子集。

.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms

描述

必需。节点选择器项列表。这些项是 ORed。

类型

数组

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

描述

null 或空的节点选择器项不匹配任何对象。它们的条件是 ANDed。TopologySelectorTerm 类型实现了 NodeSelectorTerm 的一个子集。

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

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

matchFields

数组

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

matchFields[]

对象

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

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

描述

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

类型

数组

.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.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[].matchFields

描述

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

类型

数组

.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.affinity.podAffinity

描述

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

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

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

preferredDuringSchedulingIgnoredDuringExecution[]

对象

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

requiredDuringSchedulingIgnoredDuringExecution

数组

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

requiredDuringSchedulingIgnoredDuringExecution[]

对象

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

.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • weight

  • podAffinityTerm

属性 类型 描述

podAffinityTerm

对象

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

weight

整数

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

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

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

LabelSelector

对一组资源(在本例中为 Pod)执行标签查询。如果为 null,则此 PodAffinityTerm 与任何 Pod 都不匹配。

matchLabelKeys

数组 (字符串)

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

mismatchLabelKeys

数组 (字符串)

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

namespaceSelector

LabelSelector

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

namespaces

数组 (字符串)

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

topologyKey

字符串

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

.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

LabelSelector

对一组资源(在本例中为 Pod)执行标签查询。如果为 null,则此 PodAffinityTerm 与任何 Pod 都不匹配。

matchLabelKeys

数组 (字符串)

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

mismatchLabelKeys

数组 (字符串)

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

namespaceSelector

LabelSelector

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

namespaces

数组 (字符串)

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

topologyKey

字符串

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

.spec.affinity.podAntiAffinity

描述

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

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

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

preferredDuringSchedulingIgnoredDuringExecution[]

对象

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

requiredDuringSchedulingIgnoredDuringExecution

数组

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

requiredDuringSchedulingIgnoredDuringExecution[]

对象

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

.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • weight

  • podAffinityTerm

属性 类型 描述

podAffinityTerm

对象

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

weight

整数

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

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

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

LabelSelector

对一组资源(在本例中为 Pod)执行标签查询。如果为 null,则此 PodAffinityTerm 与任何 Pod 都不匹配。

matchLabelKeys

数组 (字符串)

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

mismatchLabelKeys

数组 (字符串)

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

namespaceSelector

LabelSelector

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

namespaces

数组 (字符串)

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

topologyKey

字符串

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

.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

LabelSelector

对一组资源(在本例中为 Pod)执行标签查询。如果为 null,则此 PodAffinityTerm 与任何 Pod 都不匹配。

matchLabelKeys

数组 (字符串)

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

mismatchLabelKeys

数组 (字符串)

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

namespaceSelector

LabelSelector

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

namespaces

数组 (字符串)

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

topologyKey

字符串

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

.spec.containers

描述

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

类型

数组

.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 的来源。

image

字符串

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

imagePullPolicy

字符串

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

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

lifecycle

对象

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

livenessProbe

对象

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

name

字符串

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

ports

数组

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

ports[]

对象

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

readinessProbe

对象

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

resizePolicy

数组

容器的资源调整策略。

resizePolicy[]

对象

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

resources

对象

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 中的值优先。

startupProbe

对象

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

stdin

布尔值

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

stdinOnce

布尔值

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

terminationMessagePath

字符串

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

terminationMessagePolicy

字符串

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

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

tty

布尔值

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

volumeDevices

数组

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

volumeDevices[]

对象

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

volumeMounts

数组

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

volumeMounts[]

对象

VolumeMount 描述了在容器内挂载卷。

workingDir

字符串

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

.spec.containers[].env

描述

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

类型

数组

.spec.containers[].env[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

value

字符串

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

valueFrom

对象

EnvVarSource 代表 EnvVar 值的来源。

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

描述

EnvVarSource 代表 EnvVar 值的来源。

类型

对象

属性 类型 描述

configMapKeyRef

对象

从 ConfigMap 中选择一个键。

fieldRef

对象

ObjectFieldSelector 选择对象的 APIVersioned 字段。

resourceFieldRef

对象

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

secretKeyRef

对象

SecretKeySelector 选择 Secret 的一个键。

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

描述

从 ConfigMap 中选择一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

name

字符串

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

optional

布尔值

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

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

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

FieldPath 以其编写的模式版本,默认为“v1”。

fieldPath

字符串

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

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

描述

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

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

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

divisor

Quantity

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

resource

字符串

必需:要选择的资源

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

描述

SecretKeySelector 选择 Secret 的一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

name

字符串

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

optional

布尔值

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

.spec.containers[].envFrom

描述

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

类型

数组

.spec.containers[].envFrom[]

描述

EnvFromSource 表示一组 ConfigMap 的来源。

类型

对象

属性 类型 描述

configMapRef

对象

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

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

prefix

字符串

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

secretRef

对象

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

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

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

描述

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

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

类型

对象

属性 类型 描述

name

字符串

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

optional

布尔值

指定是否必须定义 ConfigMap

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

描述

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

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

类型

对象

属性 类型 描述

name

字符串

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

optional

布尔值

指定是否必须定义 Secret

.spec.containers[].lifecycle

描述

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

类型

对象

属性 类型 描述

postStart

对象

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

preStop

对象

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

.spec.containers[].lifecycle.postStart

描述

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

类型

对象

属性 类型 描述

exec

对象

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

httpGet

对象

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

sleep

对象

SleepAction 描述“睡眠”操作。

tcpSocket

对象

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

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

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.containers[].lifecycle.postStart.httpGet.httpHeaders

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

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

描述

SleepAction 描述“睡眠”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.containers[].lifecycle.preStop

描述

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

类型

对象

属性 类型 描述

exec

对象

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

httpGet

对象

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

sleep

对象

SleepAction 描述“睡眠”操作。

tcpSocket

对象

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

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

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.containers[].lifecycle.preStop.httpGet.httpHeaders

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

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

描述

SleepAction 描述“睡眠”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.containers[].livenessProbe

描述

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

类型

对象

属性 类型 描述

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.containers[].livenessProbe.exec

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.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.containers[].livenessProbe.httpGet.httpHeaders

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.containers[].livenessProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.containers[].ports

描述

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

类型

数组

.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.containers[].readinessProbe

描述

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

类型

对象

属性 类型 描述

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.containers[].readinessProbe.exec

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.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.containers[].readinessProbe.httpGet.httpHeaders

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.containers[].readinessProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.containers[].resizePolicy

描述

容器的资源调整策略。

类型

数组

.spec.containers[].resizePolicy[]

描述

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

类型

对象

必需
  • 资源名称

  • restartPolicy

属性 类型 描述

资源名称

字符串

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

restartPolicy

字符串

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

.spec.containers[].resources

描述

ResourceRequirements 描述计算资源需求。

类型

对象

属性 类型 描述

资源请求

数组

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

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

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

claims[]

对象

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

限制

对象 (数量)

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

请求

对象 (数量)

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

.spec.containers[].resources.claims

描述

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

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

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

类型

数组

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

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

.spec.containers[].securityContext

描述

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

类型

对象

属性 类型 描述

允许权限提升

布尔值

AllowPrivilegeEscalation 控制进程是否可以获得比其父进程更高的权限。此布尔值直接控制容器进程上是否设置 no_new_privs 标志。当容器:1) 作为特权容器运行 2) 具有 CAP_SYS_ADMIN 时,AllowPrivilegeEscalation 始终为 true。请注意,当 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 时,无法设置此字段。

SELinux 选项

对象

SELinuxOptions 是要应用于容器的标签。

seccomp 配置文件

对象

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

windowsOptions

对象

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

.spec.containers[].securityContext.appArmorProfile

描述

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

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

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

类型

字符串

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

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

.spec.containers[].securityContext.capabilities

描述

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

类型

对象

属性 类型 描述

add

数组 (字符串)

添加的功能

drop

数组 (字符串)

删除的功能

.spec.containers[].securityContext.seLinuxOptions

描述

SELinuxOptions 是要应用于容器的标签。

类型

对象

属性 类型 描述

level

字符串

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

role

字符串

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

类型

字符串

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

user

字符串

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

.spec.containers[].securityContext.seccompProfile

描述

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

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

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

类型

字符串

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

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

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

.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.containers[].startupProbe

描述

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

类型

对象

属性 类型 描述

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.containers[].startupProbe.exec

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.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.containers[].startupProbe.httpGet.httpHeaders

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.containers[].startupProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.containers[].volumeDevices

描述

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

类型

数组

.spec.containers[].volumeDevices[]

描述

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

类型

对象

必需
  • name

  • devicePath

属性 类型 描述

devicePath

字符串

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

name

字符串

name 必须与 Pod 中的 persistentVolumeClaim 的名称匹配

.spec.containers[].volumeMounts

描述

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

类型

数组

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

描述

PodDNSConfig 定义 Pod 的 DNS 参数,以及从 DNSPolicy 生成的参数。

类型

对象

属性 类型 描述

nameservers

数组 (字符串)

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

options

数组

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

options[]

对象

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

searches

数组 (字符串)

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

.spec.dnsConfig.options

描述

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

类型

数组

.spec.dnsConfig.options[]

描述

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

类型

对象

属性 类型 描述

name

字符串

必需。

value

字符串

.spec.ephemeralContainers

描述

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

类型

数组

.spec.ephemeralContainers[]

描述

EphemeralContainer 是一个临时容器,您可以将其添加到现有 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 的来源。

image

字符串

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

imagePullPolicy

字符串

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

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

lifecycle

对象

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

livenessProbe

对象

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

name

字符串

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

ports

数组

临时容器不允许使用端口。

ports[]

对象

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

readinessProbe

对象

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

resizePolicy

数组

容器的资源调整策略。

resizePolicy[]

对象

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

resources

对象

ResourceRequirements 描述计算资源需求。

restartPolicy

字符串

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

securityContext

对象

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

startupProbe

对象

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

stdin

布尔值

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

stdinOnce

布尔值

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

targetContainerName

字符串

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

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

terminationMessagePath

字符串

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

terminationMessagePolicy

字符串

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

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

tty

布尔值

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

volumeDevices

数组

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

volumeDevices[]

对象

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

volumeMounts

数组

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

volumeMounts[]

对象

VolumeMount 描述了在容器内挂载卷。

workingDir

字符串

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

.spec.ephemeralContainers[].env

描述

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

类型

数组

.spec.ephemeralContainers[].env[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

value

字符串

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

valueFrom

对象

EnvVarSource 代表 EnvVar 值的来源。

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

描述

EnvVarSource 代表 EnvVar 值的来源。

类型

对象

属性 类型 描述

configMapKeyRef

对象

从 ConfigMap 中选择一个键。

fieldRef

对象

ObjectFieldSelector 选择对象的 APIVersioned 字段。

resourceFieldRef

对象

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

secretKeyRef

对象

SecretKeySelector 选择 Secret 的一个键。

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

描述

从 ConfigMap 中选择一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

name

字符串

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

optional

布尔值

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

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

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

FieldPath 以其编写的模式版本,默认为“v1”。

fieldPath

字符串

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

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

描述

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

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

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

divisor

Quantity

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

resource

字符串

必需:要选择的资源

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

描述

SecretKeySelector 选择 Secret 的一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

name

字符串

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

optional

布尔值

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

.spec.ephemeralContainers[].envFrom

描述

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

类型

数组

.spec.ephemeralContainers[].envFrom[]

描述

EnvFromSource 表示一组 ConfigMap 的来源。

类型

对象

属性 类型 描述

configMapRef

对象

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

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

prefix

字符串

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

secretRef

对象

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

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

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

描述

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

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

类型

对象

属性 类型 描述

name

字符串

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

optional

布尔值

指定是否必须定义 ConfigMap

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

描述

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

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

类型

对象

属性 类型 描述

name

字符串

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

optional

布尔值

指定是否必须定义 Secret

.spec.ephemeralContainers[].lifecycle

描述

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

类型

对象

属性 类型 描述

postStart

对象

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

preStop

对象

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

.spec.ephemeralContainers[].lifecycle.postStart

描述

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

类型

对象

属性 类型 描述

exec

对象

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

httpGet

对象

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

sleep

对象

SleepAction 描述“睡眠”操作。

tcpSocket

对象

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

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

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.ephemeralContainers[].lifecycle.postStart.httpGet.httpHeaders

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

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

描述

SleepAction 描述“睡眠”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.ephemeralContainers[].lifecycle.preStop

描述

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

类型

对象

属性 类型 描述

exec

对象

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

httpGet

对象

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

sleep

对象

SleepAction 描述“睡眠”操作。

tcpSocket

对象

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

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

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.ephemeralContainers[].lifecycle.preStop.httpGet.httpHeaders

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

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

描述

SleepAction 描述“睡眠”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.ephemeralContainers[].livenessProbe

描述

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

类型

对象

属性 类型 描述

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.ephemeralContainers[].livenessProbe.exec

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.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.ephemeralContainers[].livenessProbe.httpGet.httpHeaders

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.ephemeralContainers[].livenessProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.ephemeralContainers[].ports

描述

临时容器不允许使用端口。

类型

数组

.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.ephemeralContainers[].readinessProbe

描述

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

类型

对象

属性 类型 描述

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.ephemeralContainers[].readinessProbe.exec

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.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.ephemeralContainers[].readinessProbe.httpGet.httpHeaders

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.ephemeralContainers[].readinessProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.ephemeralContainers[].resizePolicy

描述

容器的资源调整策略。

类型

数组

.spec.ephemeralContainers[].resizePolicy[]

描述

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

类型

对象

必需
  • 资源名称

  • restartPolicy

属性 类型 描述

资源名称

字符串

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

restartPolicy

字符串

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

.spec.ephemeralContainers[].resources

描述

ResourceRequirements 描述计算资源需求。

类型

对象

属性 类型 描述

资源请求

数组

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

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

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

claims[]

对象

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

限制

对象 (数量)

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

请求

对象 (数量)

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

.spec.ephemeralContainers[].resources.claims

描述

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

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

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

类型

数组

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

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

.spec.ephemeralContainers[].securityContext

描述

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

类型

对象

属性 类型 描述

允许权限提升

布尔值

AllowPrivilegeEscalation 控制进程是否可以获得比其父进程更高的权限。此布尔值直接控制容器进程上是否设置 no_new_privs 标志。当容器:1) 作为特权容器运行 2) 具有 CAP_SYS_ADMIN 时,AllowPrivilegeEscalation 始终为 true。请注意,当 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 时,无法设置此字段。

SELinux 选项

对象

SELinuxOptions 是要应用于容器的标签。

seccomp 配置文件

对象

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

windowsOptions

对象

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

.spec.ephemeralContainers[].securityContext.appArmorProfile

描述

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

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

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

类型

字符串

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

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

.spec.ephemeralContainers[].securityContext.capabilities

描述

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

类型

对象

属性 类型 描述

add

数组 (字符串)

添加的功能

drop

数组 (字符串)

删除的功能

.spec.ephemeralContainers[].securityContext.seLinuxOptions

描述

SELinuxOptions 是要应用于容器的标签。

类型

对象

属性 类型 描述

level

字符串

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

role

字符串

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

类型

字符串

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

user

字符串

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

.spec.ephemeralContainers[].securityContext.seccompProfile

描述

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

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

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

类型

字符串

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

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

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

.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.ephemeralContainers[].startupProbe

描述

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

类型

对象

属性 类型 描述

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.ephemeralContainers[].startupProbe.exec

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.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.ephemeralContainers[].startupProbe.httpGet.httpHeaders

描述

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

类型

数组

.spec.ephemeralContainers[].startupProbe.httpGet.httpHeaders[]

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.ephemeralContainers[].startupProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.ephemeralContainers[].volumeDevices

描述

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

类型

数组

.spec.ephemeralContainers[].volumeDevices[]

描述

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

类型

对象

必需
  • name

  • devicePath

属性 类型 描述

devicePath

字符串

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

name

字符串

name 必须与 Pod 中的 persistentVolumeClaim 的名称匹配

.spec.ephemeralContainers[].volumeMounts

描述

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

类型

数组

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

描述

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

类型

数组

.spec.hostAliases[]

描述

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

类型

对象

必需
  • ip

属性 类型 描述

主机名

数组 (字符串)

上述IP地址的主机名。

ip

字符串

主机文件条目的IP地址。

.spec.imagePullSecrets

描述

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

类型

数组

.spec.imagePullSecrets[]

描述

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

类型

对象

属性 类型 描述

name

字符串

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

.spec.initContainers

描述

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

类型

数组

.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 的来源。

image

字符串

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

imagePullPolicy

字符串

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

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

lifecycle

对象

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

livenessProbe

对象

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

name

字符串

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

ports

数组

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

ports[]

对象

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

readinessProbe

对象

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

resizePolicy

数组

容器的资源调整策略。

resizePolicy[]

对象

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

resources

对象

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 中的值优先。

startupProbe

对象

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

stdin

布尔值

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

stdinOnce

布尔值

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

terminationMessagePath

字符串

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

terminationMessagePolicy

字符串

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

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

tty

布尔值

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

volumeDevices

数组

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

volumeDevices[]

对象

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

volumeMounts

数组

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

volumeMounts[]

对象

VolumeMount 描述了在容器内挂载卷。

workingDir

字符串

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

.spec.initContainers[].env

描述

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

类型

数组

.spec.initContainers[].env[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

value

字符串

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

valueFrom

对象

EnvVarSource 代表 EnvVar 值的来源。

.spec.initContainers[].env[].valueFrom

描述

EnvVarSource 代表 EnvVar 值的来源。

类型

对象

属性 类型 描述

configMapKeyRef

对象

从 ConfigMap 中选择一个键。

fieldRef

对象

ObjectFieldSelector 选择对象的 APIVersioned 字段。

resourceFieldRef

对象

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

secretKeyRef

对象

SecretKeySelector 选择 Secret 的一个键。

.spec.initContainers[].env[].valueFrom.configMapKeyRef

描述

从 ConfigMap 中选择一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

name

字符串

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

optional

布尔值

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

.spec.initContainers[].env[].valueFrom.fieldRef

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

FieldPath 以其编写的模式版本,默认为“v1”。

fieldPath

字符串

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

.spec.initContainers[].env[].valueFrom.resourceFieldRef

描述

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

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

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

divisor

Quantity

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

resource

字符串

必需:要选择的资源

.spec.initContainers[].env[].valueFrom.secretKeyRef

描述

SecretKeySelector 选择 Secret 的一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

name

字符串

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

optional

布尔值

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

.spec.initContainers[].envFrom

描述

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

类型

数组

.spec.initContainers[].envFrom[]

描述

EnvFromSource 表示一组 ConfigMap 的来源。

类型

对象

属性 类型 描述

configMapRef

对象

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

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

prefix

字符串

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

secretRef

对象

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

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

.spec.initContainers[].envFrom[].configMapRef

描述

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

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

类型

对象

属性 类型 描述

name

字符串

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

optional

布尔值

指定是否必须定义 ConfigMap

.spec.initContainers[].envFrom[].secretRef

描述

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

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

类型

对象

属性 类型 描述

name

字符串

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

optional

布尔值

指定是否必须定义 Secret

.spec.initContainers[].lifecycle

描述

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

类型

对象

属性 类型 描述

postStart

对象

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

preStop

对象

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

.spec.initContainers[].lifecycle.postStart

描述

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

类型

对象

属性 类型 描述

exec

对象

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

httpGet

对象

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

sleep

对象

SleepAction 描述“睡眠”操作。

tcpSocket

对象

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

.spec.initContainers[].lifecycle.postStart.exec

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.initContainers[].lifecycle.postStart.httpGet.httpHeaders

描述

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

类型

数组

.spec.initContainers[].lifecycle.postStart.httpGet.httpHeaders[]

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.initContainers[].lifecycle.postStart.sleep

描述

SleepAction 描述“睡眠”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

.spec.initContainers[].lifecycle.postStart.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.initContainers[].lifecycle.preStop

描述

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

类型

对象

属性 类型 描述

exec

对象

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

httpGet

对象

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

sleep

对象

SleepAction 描述“睡眠”操作。

tcpSocket

对象

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

.spec.initContainers[].lifecycle.preStop.exec

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.initContainers[].lifecycle.preStop.httpGet.httpHeaders

描述

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

类型

数组

.spec.initContainers[].lifecycle.preStop.httpGet.httpHeaders[]

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.initContainers[].lifecycle.preStop.sleep

描述

SleepAction 描述“睡眠”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

.spec.initContainers[].lifecycle.preStop.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.initContainers[].livenessProbe

描述

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

类型

对象

属性 类型 描述

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.initContainers[].livenessProbe.exec

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.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.initContainers[].livenessProbe.httpGet.httpHeaders

描述

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

类型

数组

.spec.initContainers[].livenessProbe.httpGet.httpHeaders[]

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.initContainers[].livenessProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.initContainers[].ports

描述

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

类型

数组

.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.initContainers[].readinessProbe

描述

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

类型

对象

属性 类型 描述

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.initContainers[].readinessProbe.exec

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.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.initContainers[].readinessProbe.httpGet.httpHeaders

描述

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

类型

数组

.spec.initContainers[].readinessProbe.httpGet.httpHeaders[]

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.initContainers[].readinessProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.initContainers[].resizePolicy

描述

容器的资源调整策略。

类型

数组

.spec.initContainers[].resizePolicy[]

描述

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

类型

对象

必需
  • 资源名称

  • restartPolicy

属性 类型 描述

资源名称

字符串

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

restartPolicy

字符串

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

.spec.initContainers[].resources

描述

ResourceRequirements 描述计算资源需求。

类型

对象

属性 类型 描述

资源请求

数组

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

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

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

claims[]

对象

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

限制

对象 (数量)

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

请求

对象 (数量)

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

.spec.initContainers[].resources.claims

描述

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

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

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

类型

数组

.spec.initContainers[].resources.claims[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

.spec.initContainers[].securityContext

描述

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

类型

对象

属性 类型 描述

允许权限提升

布尔值

AllowPrivilegeEscalation 控制进程是否可以获得比其父进程更高的权限。此布尔值直接控制容器进程上是否设置 no_new_privs 标志。当容器:1) 作为特权容器运行 2) 具有 CAP_SYS_ADMIN 时,AllowPrivilegeEscalation 始终为 true。请注意,当 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 时,无法设置此字段。

SELinux 选项

对象

SELinuxOptions 是要应用于容器的标签。

seccomp 配置文件

对象

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

windowsOptions

对象

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

.spec.initContainers[].securityContext.appArmorProfile

描述

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

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

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

类型

字符串

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

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

.spec.initContainers[].securityContext.capabilities

描述

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

类型

对象

属性 类型 描述

add

数组 (字符串)

添加的功能

drop

数组 (字符串)

删除的功能

.spec.initContainers[].securityContext.seLinuxOptions

描述

SELinuxOptions 是要应用于容器的标签。

类型

对象

属性 类型 描述

level

字符串

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

role

字符串

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

类型

字符串

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

user

字符串

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

.spec.initContainers[].securityContext.seccompProfile

描述

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

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

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

类型

字符串

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

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

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

.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.initContainers[].startupProbe

描述

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

类型

对象

属性 类型 描述

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.initContainers[].startupProbe.exec

描述

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

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.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.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.initContainers[].startupProbe.httpGet.httpHeaders

描述

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

类型

数组

.spec.initContainers[].startupProbe.httpGet.httpHeaders[]

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.initContainers[].startupProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.spec.initContainers[].volumeDevices

描述

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

类型

数组

.spec.initContainers[].volumeDevices[]

描述

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

类型

对象

必需
  • name

  • devicePath

属性 类型 描述

devicePath

字符串

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

name

字符串

name 必须与 Pod 中的 persistentVolumeClaim 的名称匹配

.spec.initContainers[].volumeMounts

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

Name 字段表示操作系统的名称。当前支持的值为 linux 和 windows。将来可能会定义其他值,例如:https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration 客户端应该能够处理附加值,并将无法识别的值在此字段中视为 os: null。

.spec.readinessGates

描述

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

类型

数组

.spec.readinessGates[]

描述

PodReadinessGate 包含对 Pod 条件的引用。

类型

对象

必需
  • conditionType

属性 类型 描述

conditionType

字符串

ConditionType 指的是 pod 条件列表中与类型匹配的条件。

.spec.resourceClaims

描述

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

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

此字段是不可变的。

类型

数组

.spec.resourceClaims[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

Name 唯一标识 pod 内部的此资源声明。这必须是 DNS_LABEL。

source

对象

ClaimSource 描述对 ResourceClaim 的引用。

这些字段中应该只设置一个。此类型的使用者必须将空对象视为具有未知值。

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

描述

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

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

类型

数组

.spec.schedulingGates[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

调度门的名称。每个调度门都必须具有唯一的名称字段。

.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 中指定的值将优先于该容器。

非root用户运行

布尔值

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

运行时用户 ID

整数

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

SELinux 选项

对象

SELinuxOptions 是要应用于容器的标签。

seccomp 配置文件

对象

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.securityContext.appArmorProfile

描述

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

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

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

类型

字符串

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

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

.spec.securityContext.seLinuxOptions

描述

SELinuxOptions 是要应用于容器的标签。

类型

对象

属性 类型 描述

level

字符串

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

role

字符串

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

类型

字符串

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

user

字符串

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

.spec.securityContext.seccompProfile

描述

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

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

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

类型

字符串

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

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

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

.spec.securityContext.sysctls

描述

Sysctls 包含用于 pod 的命名空间 sysctls 列表。具有不受支持的 sysctls(由容器运行时)的 Pod 可能无法启动。请注意,当 spec.os.name 为 windows 时,不能设置此字段。

类型

数组

.spec.securityContext.sysctls[]

描述

Sysctl 定义要设置的内核参数。

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

要设置的属性的名称。

value

字符串

要设置的属性的值。

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

描述

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

类型

数组

.spec.tolerations[]

描述

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

类型

对象

属性 类型 描述

effect

字符串

Effect 指示要匹配的污点效应。空表示匹配所有污点效应。如果指定,则允许的值为 NoSchedule、PreferNoSchedule 和 NoExecute。

可能的枚举值:- `“NoExecute”` 驱逐任何不忍受污点的已运行 Pod。目前由 NodeController 强制执行。- `“NoSchedule”` 不允许新的 Pod 调度到节点上,除非它们忍受污点,但允许所有提交到 Kubelet 而无需通过调度程序启动的 Pod,并允许所有已运行的 Pod 继续运行。由调度程序强制执行。- `“PreferNoSchedule”` 与 TaintEffectNoSchedule 相似,但调度程序尝试不将新的 Pod 调度到节点上,而不是完全禁止将新的 Pod 调度到节点上。由调度程序强制执行。

key

字符串

Key 是容忍度适用的污点键。空表示匹配所有污点键。如果键为空,则运算符必须为 Exists;此组合表示匹配所有值和所有键。

operator

字符串

Operator 表示键与值的关系。有效的运算符为 Exists 和 Equal。默认为 Equal。Exists 等效于值的通配符,因此 pod 可以容忍特定类别的所有污点。

可能的枚举值:- `“Equal”` - `“Exists”`

tolerationSeconds

整数

TolerationSeconds 表示容忍度(必须具有 NoExecute 效应,否则此字段将被忽略)容忍污点的持续时间。默认情况下,它未设置,这意味着永远容忍污点(不驱逐)。系统将零和负值视为 0(立即驱逐)。

value

字符串

Value 是容忍度匹配的污点值。如果运算符为 Exists,则值应为空,否则只是一个常规字符串。

.spec.topologySpreadConstraints

描述

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

类型

数组

.spec.topologySpreadConstraints[]

描述

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

类型

对象

必需
  • maxSkew

  • topologyKey

  • whenUnsatisfiable

属性 类型 描述

labelSelector

LabelSelector

LabelSelector 用于查找匹配的 Pod。匹配此标签选择器的 Pod 将被计算以确定其对应拓扑域中的 Pod 数量。

matchLabelKeys

数组 (字符串)

MatchLabelKeys 是一组 Pod 标签键,用于选择将在其上计算扩散的 Pod。这些键用于从传入的 Pod 标签中查找值,这些键值对将与 labelSelector 进行 AND 操作,以选择将在其上为传入 Pod 计算扩散的现有 Pod 组。同一键禁止同时存在于 MatchLabelKeys 和 LabelSelector 中。如果未设置 LabelSelector,则不能设置 MatchLabelKeys。传入 Pod 标签中不存在的键将被忽略。空列表表示仅针对 labelSelector 进行匹配。

这是一个测试版字段,需要启用 MatchLabelKeysInPodTopologySpread 功能门(默认启用)。

maxSkew

整数

MaxSkew 描述了 Pod 分布不均匀的程度。当 whenUnsatisfiable=DoNotSchedule 时,它是目标拓扑中匹配 Pod 数量与全局最小值之间允许的最大差值。全局最小值是在合格域中匹配 Pod 的最小数量,如果合格域的数量小于 MinDomains,则为零。例如,在 3 个区域的集群中,MaxSkew 设置为 1,并且具有相同 labelSelector 的 Pod 分布为 2/2/1:在这种情况下,全局最小值为 1。| zone1 | zone2 | zone3 | | P P | P P | P | - 如果 MaxSkew 为 1,则传入的 Pod 只能调度到 zone3 以变为 2/2/2;将其调度到 zone1(zone2)将使 zone1(zone2)上的 ActualSkew(3-1)违反 MaxSkew(1)。- 如果 MaxSkew 为 2,则传入的 Pod 可以调度到任何区域。当 whenUnsatisfiable=ScheduleAnyway 时,它用于优先考虑满足它的拓扑。这是一个必填字段。默认值为 1,不允许为 0。

minDomains

整数

MinDomains 指示合格域的最小数量。当具有匹配拓扑键的合格域的数量小于 minDomains 时,Pod Topology Spread 将“全局最小值”视为 0,然后执行 Skew 的计算。当具有匹配拓扑键的合格域的数量等于或大于 minDomains 时,此值对调度没有影响。因此,当合格域的数量小于 minDomains 时,调度器不会向这些域调度超过 maxSkew 个 Pod。如果值为 nil,则约束的行为就像 MinDomains 等于 1 一样。有效值是大于 0 的整数。当值不为 nil 时,WhenUnsatisfiable 必须为 DoNotSchedule。

例如,在 3 个区域的集群中,MaxSkew 设置为 2,MinDomains 设置为 5,并且具有相同 labelSelector 的 Pod 分布为 2/2/2:| zone1 | zone2 | zone3 | | P P | P P | P P | 域的数量小于 5(MinDomains),因此“全局最小值”被视为 0。在这种情况下,不能调度具有相同 labelSelector 的新 Pod,因为如果调度新 Pod 到三个区域中的任何一个,计算出的 skew 将为 3(3 - 0),这将违反 MaxSkew。

nodeAffinityPolicy

字符串

NodeAffinityPolicy 指示在计算 Pod 拓扑扩散 skew 时如何处理 Pod 的 nodeAffinity/nodeSelector。选项包括:- Honor:仅计算匹配 nodeAffinity/nodeSelector 的节点。- Ignore:忽略 nodeAffinity/nodeSelector。所有节点都包含在计算中。

如果此值为 nil,则行为等效于 Honor 策略。这是一个测试版功能,默认情况下由 NodeInclusionPolicyInPodTopologySpread 功能标志启用。

可能的枚举值:- "Honor" 表示在计算 Pod 拓扑扩散 skew 时使用此调度指令。- "Ignore" 表示在计算 Pod 拓扑扩散 skew 时忽略此调度指令。

nodeTaintsPolicy

字符串

NodeTaintsPolicy 指示在计算 Pod 拓扑扩散 skew 时如何处理节点污点。选项包括:- Honor:包含没有污点的节点,以及传入 Pod 具有容忍度的受污点节点。- Ignore:忽略节点污点。所有节点都包含在计算中。

如果此值为 nil,则行为等效于 Ignore 策略。这是一个测试版功能,默认情况下由 NodeInclusionPolicyInPodTopologySpread 功能标志启用。

可能的枚举值:- "Honor" 表示在计算 Pod 拓扑扩散 skew 时使用此调度指令。- "Ignore" 表示在计算 Pod 拓扑扩散 skew 时忽略此调度指令。

topologyKey

字符串

TopologyKey 是节点标签的键。具有此键和相同值的标签的节点被认为位于相同的拓扑中。我们将每个 视为一个“桶”,并尝试将平衡数量的 Pod 放入每个桶中。我们将域定义为拓扑的特定实例。此外,我们将合格域定义为其节点满足 nodeAffinityPolicy 和 nodeTaintsPolicy 要求的域。例如,如果 TopologyKey 为“kubernetes.io/hostname”,则每个节点都是该拓扑的一个域。并且,如果 TopologyKey 为“topology.kubernetes.io/zone”,则每个区域都是该拓扑的一个域。这是一个必填字段。

whenUnsatisfiable

字符串

WhenUnsatisfiable 指示如果 Pod 不满足扩散约束,如何处理该 Pod。- DoNotSchedule(默认)告诉调度器不要调度它。- ScheduleAnyway 告诉调度器在任何位置调度 Pod,但优先考虑有助于减少 skew 的拓扑。当且仅当该 Pod 的每个可能的节点分配都会违反某些拓扑上的“MaxSkew”时,约束才被认为对于传入的 Pod 是“不可满足的”。例如,在 3 个区域的集群中,MaxSkew 设置为 1,并且具有相同 labelSelector 的 Pod 分布为 3/1/1:| zone1 | zone2 | zone3 | | P P P | P | P | 如果 WhenUnsatisfiable 设置为 DoNotSchedule,则传入的 Pod 只能调度到 zone2(zone3)以变为 3/2/1(3/1/2),因为 zone2(zone3)上的 ActualSkew(2-1)满足 MaxSkew(1)。换句话说,集群仍然可能不平衡,但调度器不会使其不平衡。这是一个必填字段。

可能的枚举值:- "DoNotSchedule" 指示调度器在不满足约束时不要调度 Pod。- "ScheduleAnyway" 指示调度器即使不满足约束也要调度 Pod。

.spec.volumes

描述

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

类型

数组

.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 重新标记。

临时

对象

表示由普通存储驱动程序处理的临时卷。

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.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 是要挂载的卷中的分区。如果省略,则默认按卷名挂载。示例:对于卷 /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.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 托管数据磁盘(仅在托管可用性集中)。默认为共享

可能的枚举值:- "Dedicated" - "Managed" - "Shared"

readOnly

布尔值

readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

.spec.volumes[].azureFile

描述

AzureFile 表示主机上的 Azure 文件服务挂载并绑定挂载到 Pod。

类型

对象

必需
  • secretName

  • shareName

属性 类型 描述

readOnly

布尔值

readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

secretName

字符串

secretName 是包含 Azure 存储帐户名称和密钥的密钥的名称

shareName

字符串

shareName 是 Azure 共享名称

.spec.volumes[].cephfs

描述

表示持续 Pod 生命周期的 Ceph 文件系统挂载。Cephfs 卷不支持所有权管理或 SELinux 重新标记。

类型

对象

必需
  • monitors

属性 类型 描述

monitors

数组 (字符串)

monitors 是必需的:Monitors 是 Ceph monitors 的集合 更多信息: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.volumes[].cephfs.secretRef

描述

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

类型

对象

属性 类型 描述

name

字符串

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

.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.volumes[].cinder.secretRef

描述

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

类型

对象

属性 类型 描述

name

字符串

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

.spec.volumes[].configMap

描述

将 ConfigMap 适配到卷。

目标 ConfigMap 的 Data 字段的内容将作为文件显示在卷中,使用 Data 字段中的键作为文件名,除非 items 元素填充了键到路径的特定映射。ConfigMap 卷支持所有权管理和 SELinux 重新标记。

类型

对象

属性 类型 描述

defaultMode

整数

defaultMode 为可选参数:用于设置默认情况下创建文件的权限的模式位。必须是 0000 到 0777 之间的八进制值,或者 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 仅需要十进制模式位值。默认为 0644。路径中的目录不受此设置的影响。这可能会与影响文件模式的其他选项(如 fsGroup)冲突,从而导致设置其他模式位。

items

数组

如果未指定 items,则引用的 ConfigMap 的 Data 字段中的每个键值对都将被投影到卷中,作为一个文件名是键、内容是值的文件。如果指定了 items,则列出的键将被投影到指定的路径中,未列出的键将不会存在。如果指定的键在 ConfigMap 中不存在,除非它被标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

items[]

对象

将字符串键映射到卷内的路径。

name

字符串

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

optional

布尔值

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

.spec.volumes[].configMap.items

描述

如果未指定 items,则引用的 ConfigMap 的 Data 字段中的每个键值对都将被投影到卷中,作为一个文件名是键、内容是值的文件。如果指定了 items,则列出的键将被投影到指定的路径中,未列出的键将不会存在。如果指定的键在 ConfigMap 中不存在,除非它被标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

类型

数组

.spec.volumes[].configMap.items[]

描述

将字符串键映射到卷内的路径。

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

mode 为可选参数:用于设置此文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或者 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 仅需要十进制模式位值。如果未指定,则将使用卷的 defaultMode。这可能会与影响文件模式的其他选项(如 fsGroup)冲突,从而导致设置其他模式位。

path

字符串

path 是将键映射到的文件的相对路径。不能是绝对路径。不能包含路径元素“..” 。不能以字符串“..”开头。

.spec.volumes[].csi

描述

表示要挂载的卷的源位置,由外部 CSI 驱动程序管理。

类型

对象

必需
  • driver

属性 类型 描述

driver

字符串

driver 是处理此卷的 CSI 驱动程序的名称。请咨询您的管理员以获取在集群中注册的正确名称。

fsType

字符串

fsType 用于挂载。例如,“ext4”、“xfs”、“ntfs”。如果未提供,则空值将传递给关联的 CSI 驱动程序,该驱动程序将确定要应用的默认文件系统。

nodePublishSecretRef

对象

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

readOnly

布尔值

readOnly 指定卷的只读配置。默认为 false(读/写)。

volumeAttributes

对象 (字符串)

volumeAttributes 存储传递给 CSI 驱动程序的驱动程序特定属性。请查阅驱动程序的文档以了解支持的值。

.spec.volumes[].csi.nodePublishSecretRef

描述

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

类型

对象

属性 类型 描述

name

字符串

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

.spec.volumes[].downwardAPI

描述

DownwardAPIVolumeSource 表示包含向下 API 信息的卷。向下 API 卷支持所有权管理和 SELinux 重新标记。

类型

对象

属性 类型 描述

defaultMode

整数

可选:默认情况下用于创建文件的模式位。必须是 0000 到 0777 之间的八进制值,或者 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 仅需要十进制模式位值。默认为 0644。路径中的目录不受此设置的影响。这可能会与影响文件模式的其他选项(如 fsGroup)冲突,从而导致设置其他模式位。

items

数组

Items 是向下 API 卷文件的列表

items[]

对象

DownwardAPIVolumeFile 表示包含 Pod 字段的文件创建信息

.spec.volumes[].downwardAPI.items

描述

Items 是向下 API 卷文件的列表

类型

数组

.spec.volumes[].downwardAPI.items[]

描述

DownwardAPIVolumeFile 表示包含 Pod 字段的文件创建信息

类型

对象

必需
  • path

属性 类型 描述

fieldRef

对象

ObjectFieldSelector 选择对象的 APIVersioned 字段。

mode

整数

可选:用于设置此文件权限的模式位,必须是 0000 到 0777 之间的八进制值,或者 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 仅需要十进制模式位值。如果未指定,则将使用卷的 defaultMode。这可能会与影响文件模式的其他选项(如 fsGroup)冲突,从而导致设置其他模式位。

path

字符串

必填:Path 是要创建的文件的相对路径名。不能是绝对路径,也不能包含“..”路径。必须是 UTF-8 编码。相对路径的第一个项目不能以“..”开头。

resourceFieldRef

对象

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

.spec.volumes[].downwardAPI.items[].fieldRef

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

FieldPath 以其编写的模式版本,默认为“v1”。

fieldPath

字符串

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

.spec.volumes[].downwardAPI.items[].resourceFieldRef

描述

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

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

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

divisor

Quantity

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

resource

字符串

必需:要选择的资源

.spec.volumes[].emptyDir

描述

表示 Pod 的空目录。空目录卷支持所有权管理和 SELinux 重新标记。

类型

对象

属性 类型 描述

medium

字符串

medium 表示应支持此目录的存储介质类型。默认为 "",这意味着使用节点的默认介质。必须是空字符串(默认)或 Memory。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#emptydir

sizeLimit

Quantity

sizeLimit 是此 EmptyDir 卷所需的本地存储总量。大小限制也适用于内存介质。内存介质 EmptyDir 的最大使用量将是此处指定的 SizeLimit 与 Pod 中所有容器的内存限制总和之间的最小值。默认为 nil,这意味着限制未定义。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#emptydir

.spec.volumes[].ephemeral

描述

表示由普通存储驱动程序处理的临时卷。

类型

对象

属性 类型 描述

volumeClaimTemplate

对象

PersistentVolumeClaimTemplate 用于作为 EphemeralVolumeSource 的一部分生成 PersistentVolumeClaim 对象。

.spec.volumes[].ephemeral.volumeClaimTemplate

描述

PersistentVolumeClaimTemplate 用于作为 EphemeralVolumeSource 的一部分生成 PersistentVolumeClaim 对象。

类型

对象

必需
  • spec

属性 类型 描述

metadata

ObjectMeta

可能包含将在创建 PVC 时复制到其中的标签和注释。不允许使用其他字段,并且将在验证期间被拒绝。

spec

对象

PersistentVolumeClaimSpec 描述了存储设备的常见属性,并允许为特定于提供程序的属性提供 Source。

.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 功能网关。

resources

对象

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.volumes[].ephemeral.volumeClaimTemplate.spec.dataSource

描述

TypedLocalObjectReference 包含足够的信息,使您可以在同一个命名空间中找到类型的引用对象。

类型

对象

必需
  • kind

  • name

属性 类型 描述

apiGroup

字符串

APIGroup 是被引用资源的组。如果未指定 APIGroup,则指定的 Kind 必须位于核心 API 组中。对于任何其他第三方类型,都需要 APIGroup。

kind

字符串

Kind 是被引用资源的类型

name

字符串

Name 是被引用资源的名称

.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 是被引用资源的命名空间。请注意,当指定命名空间时,需要在引用命名空间中使用 gateway.networking.k8s.io/ReferenceGrant 对象来允许该命名空间的所有者接受该引用。有关详细信息,请参阅 ReferenceGrant 文档。(Alpha) 此字段需要启用 CrossNamespaceVolumeDataSource 功能网关。

.spec.volumes[].ephemeral.volumeClaimTemplate.spec.resources

描述

VolumeResourceRequirements 描述卷的存储资源需求。

类型

对象

属性 类型 描述

限制

对象 (数量)

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

请求

对象 (数量)

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

.spec.volumes[].fc

描述

表示光纤通道卷。光纤通道卷只能以读写方式挂载一次。光纤通道卷支持所有权管理和 SELinux 重新标记。

类型

对象

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

lun

整数

lun 是可选的:FC 目标 lun 号码

readOnly

布尔值

readOnly 是可选的:默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

targetWWNs

数组 (字符串)

targetWWNs 是可选的:FC 目标全球名称 (WWNs)

wwids

数组 (字符串)

wwids 可选:FC 卷全球标识符 (wwids) 必须设置 wwids 或 targetWWNs 和 lun 的组合,但不能同时设置两者。

.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.volumes[].flexVolume.secretRef

描述

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

类型

对象

属性 类型 描述

name

字符串

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

.spec.volumes[].flocker

描述

表示由 Flocker 代理挂载的 Flocker 卷。datasetName 和 datasetUUID 中只有一个应该设置。Flocker 卷不支持所有权管理或 SELinux 重新标记。

类型

对象

属性 类型 描述

datasetName

字符串

datasetName 是数据集的名称,存储为数据集上的元数据→名称,Flocker 的数据集名称应被视为已弃用

datasetUUID

字符串

datasetUUID 是数据集的 UUID。这是 Flocker 数据集的唯一标识符

.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 是您要挂载的卷中的分区。如果省略,则默认为按卷名挂载。示例:对于卷 /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.volumes[].gitRepo

描述

表示一个使用 git 仓库内容填充的卷。Git 仓库卷不支持所有权管理。Git 仓库卷支持 SELinux 重新标记。

已弃用:GitRepo 已弃用。要使用 git 仓库预配容器,请将 EmptyDir 挂载到 InitContainer 中,该容器使用 git 克隆仓库,然后将 EmptyDir 挂载到 Pod 的容器中。

类型

对象

必需
  • repository

属性 类型 描述

directory

字符串

directory 是目标目录名称。不能包含或以“..”开头。如果提供“.”,则卷目录将是 git 存储库。否则,如果指定,则卷将包含给定名称的子目录中的 git 存储库。

repository

字符串

repository 是 URL

revision

字符串

revision 是指定修订版本的提交哈希。

.spec.volumes[].glusterfs

描述

表示持续 Pod 整个生命周期的 Glusterfs 挂载。Glusterfs 卷不支持所有权管理或 SELinux 重新标记。

类型

对象

必需
  • endpoints

  • path

属性 类型 描述

endpoints

字符串

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.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.volumes[].iscsi

描述

表示 ISCSI 磁盘。ISCSI 卷只能以读写方式挂载一次。ISCSI 卷支持所有权管理和 SELinux 重新标记。

类型

对象

必需
  • targetPortal

  • iqn

  • lun

属性 类型 描述

chapAuthDiscovery

布尔值

chapAuthDiscovery 定义是否支持 iSCSI Discovery CHAP 身份验证

chapAuthSession

布尔值

chapAuthSession 定义是否支持 iSCSI Session CHAP 身份验证

fsType

字符串

fsType 是要挂载的卷的文件系统类型。提示:确保主机操作系统支持该文件系统类型。示例:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#iscsi

initiatorName

字符串

initiatorName 是自定义的 iSCSI 发起程序名称。如果同时指定了 initiatorName 和 iscsiInterface,则将为连接创建一个新的 iSCSI 接口 <目标门户>:<卷名称>。

iqn

字符串

iqn 是目标 iSCSI 限定名称。

iscsiInterface

字符串

iscsiInterface 是使用 iSCSI 传输的接口名称。默认为“default”(tcp)。

lun

整数

lun 表示 iSCSI 目标 LUN 编号。

portals

数组 (字符串)

portals 是 iSCSI 目标门户列表。门户是 IP 地址或 ip_addr:port(如果端口不是默认端口,通常是 TCP 端口 860 和 3260)。

readOnly

布尔值

readOnly 将强制在 VolumeMounts 中设置 ReadOnly。默认为 false。

secretRef

对象

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

targetPortal

字符串

targetPortal 是 iSCSI 目标门户。门户是 IP 地址或 ip_addr:port(如果端口不是默认端口,通常是 TCP 端口 860 和 3260)。

.spec.volumes[].iscsi.secretRef

描述

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

类型

对象

属性 类型 描述

name

字符串

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

.spec.volumes[].nfs

描述

表示持续 Pod 整个生命周期的 NFS 挂载。NFS 卷不支持所有权管理或 SELinux 重新标记。

类型

对象

必需
  • server

  • 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

字符串

server 是 NFS 服务器的主机名或 IP 地址。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#nfs

.spec.volumes[].persistentVolumeClaim

描述

PersistentVolumeClaimVolumeSource 引用同一命名空间中用户的 PVC。此卷查找绑定的 PV 并为 Pod 挂载该卷。PersistentVolumeClaimVolumeSource 本质上是对由其他人(系统)拥有的另一种卷类型的包装。

类型

对象

必需
  • claimName

属性 类型 描述

claimName

字符串

claimName 是与使用此卷的 Pod 位于同一命名空间中的 PersistentVolumeClaim 的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

readOnly

布尔值

readOnly 将强制在 VolumeMounts 中设置 ReadOnly。默认为 false。

.spec.volumes[].photonPersistentDisk

描述

表示 Photon Controller 持久磁盘资源。

类型

对象

必需
  • pdID

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

pdID

字符串

pdID 是标识 Photon Controller 持久磁盘的 ID

.spec.volumes[].portworxVolume

描述

PortworxVolumeSource 表示 Portworx 卷资源。

类型

对象

必需
  • volumeID

属性 类型 描述

fsType

字符串

fSType 表示要挂载的文件系统类型,必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”。如果未指定,则隐式推断为“ext4”。

readOnly

布尔值

readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

volumeID

字符串

volumeID 唯一标识 Portworx 卷

.spec.volumes[].projected

描述

表示投影卷源

类型

对象

属性 类型 描述

defaultMode

整数

defaultMode 是用于默认设置创建文件的权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 需要十进制模式位值。路径中的目录不受此设置的影响。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

sources

数组

sources 是卷投影的列表

sources[]

对象

可以与其他受支持的卷类型一起投影的投影

.spec.volumes[].projected.sources

描述

sources 是卷投影的列表

类型

数组

.spec.volumes[].projected.sources[]

描述

可以与其他受支持的卷类型一起投影的投影

类型

对象

属性 类型 描述

clusterTrustBundle

对象

ClusterTrustBundleProjection 描述如何选择一组 ClusterTrustBundle 对象并将它们的内容投影到 Pod 文件系统中。

configMap

对象

将 ConfigMap 适配到投影卷中。

目标 ConfigMap 的 Data 字段的内容将作为文件显示在投影卷中,使用 Data 字段中的键作为文件名,除非 items 元素填充了键到路径的特定映射。请注意,这与没有默认模式的 configmap 卷源相同。

downwardAPI

对象

表示将向下 API 信息投影到投影卷中。请注意,这与没有默认模式的 downwardAPI 卷源相同。

secret

对象

将密钥适配到投影卷中。

目标 Secret 的 Data 字段的内容将作为文件显示在投影卷中,使用 Data 字段中的键作为文件名。请注意,这与没有默认模式的 secret 卷源相同。

serviceAccountToken

对象

ServiceAccountTokenProjection 表示投影的服务帐户令牌卷。此投影可用于将服务帐户令牌插入到 Pod 的运行时文件系统中,以便针对 API(Kubernetes API 服务器或其他)使用。

.spec.volumes[].projected.sources[].clusterTrustBundle

描述

ClusterTrustBundleProjection 描述如何选择一组 ClusterTrustBundle 对象并将它们的内容投影到 Pod 文件系统中。

类型

对象

必需
  • path

属性 类型 描述

labelSelector

LabelSelector

选择与该标签选择器匹配的所有 ClusterTrustBundles。只有在设置 signerName 时才有效。与 name 相互排斥。如果未设置,则解释为“不匹配任何内容”。如果设置为空,则解释为“匹配所有内容”。

name

字符串

按对象名称选择单个 ClusterTrustBundle。与 signerName 和 labelSelector 相互排斥。

optional

布尔值

如果为 true,则如果引用的 ClusterTrustBundle(s) 不可用,则不要阻止 Pod 启动。如果使用 name,则允许未命名 ClusterTrustBundle 不存在。如果使用 signerName,则允许 signerName 和 labelSelector 的组合匹配零个 ClusterTrustBundles。

path

字符串

从卷根到写入 bundle 的相对路径。

signerName

字符串

选择与该签名者名称匹配的所有 ClusterTrustBundles。与 name 相互排斥。所有选定 ClusterTrustBundles 的内容将被统一和去重。

.spec.volumes[].projected.sources[].configMap

描述

将 ConfigMap 适配到投影卷中。

目标 ConfigMap 的 Data 字段的内容将作为文件显示在投影卷中,使用 Data 字段中的键作为文件名,除非 items 元素填充了键到路径的特定映射。请注意,这与没有默认模式的 configmap 卷源相同。

类型

对象

属性 类型 描述

items

数组

如果未指定 items,则引用的 ConfigMap 的 Data 字段中的每个键值对都将被投影到卷中,作为一个文件名是键、内容是值的文件。如果指定了 items,则列出的键将被投影到指定的路径中,未列出的键将不会存在。如果指定的键在 ConfigMap 中不存在,除非它被标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

items[]

对象

将字符串键映射到卷内的路径。

name

字符串

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

optional

布尔值

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

.spec.volumes[].projected.sources[].configMap.items

描述

如果未指定 items,则引用的 ConfigMap 的 Data 字段中的每个键值对都将被投影到卷中,作为一个文件名是键、内容是值的文件。如果指定了 items,则列出的键将被投影到指定的路径中,未列出的键将不会存在。如果指定的键在 ConfigMap 中不存在,除非它被标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

类型

数组

.spec.volumes[].projected.sources[].configMap.items[]

描述

将字符串键映射到卷内的路径。

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

mode 为可选参数:用于设置此文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或者 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 仅需要十进制模式位值。如果未指定,则将使用卷的 defaultMode。这可能会与影响文件模式的其他选项(如 fsGroup)冲突,从而导致设置其他模式位。

path

字符串

path 是将键映射到的文件的相对路径。不能是绝对路径。不能包含路径元素“..” 。不能以字符串“..”开头。

.spec.volumes[].projected.sources[].downwardAPI

描述

表示将向下 API 信息投影到投影卷中。请注意,这与没有默认模式的 downwardAPI 卷源相同。

类型

对象

属性 类型 描述

items

数组

Items 是 DownwardAPIVolume 文件的列表

items[]

对象

DownwardAPIVolumeFile 表示包含 Pod 字段的文件创建信息

.spec.volumes[].projected.sources[].downwardAPI.items

描述

Items 是 DownwardAPIVolume 文件的列表

类型

数组

.spec.volumes[].projected.sources[].downwardAPI.items[]

描述

DownwardAPIVolumeFile 表示包含 Pod 字段的文件创建信息

类型

对象

必需
  • path

属性 类型 描述

fieldRef

对象

ObjectFieldSelector 选择对象的 APIVersioned 字段。

mode

整数

可选:用于设置此文件权限的模式位,必须是 0000 到 0777 之间的八进制值,或者 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 仅需要十进制模式位值。如果未指定,则将使用卷的 defaultMode。这可能会与影响文件模式的其他选项(如 fsGroup)冲突,从而导致设置其他模式位。

path

字符串

必填:Path 是要创建的文件的相对路径名。不能是绝对路径,也不能包含“..”路径。必须是 UTF-8 编码。相对路径的第一个项目不能以“..”开头。

resourceFieldRef

对象

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

.spec.volumes[].projected.sources[].downwardAPI.items[].fieldRef

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

FieldPath 以其编写的模式版本,默认为“v1”。

fieldPath

字符串

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

.spec.volumes[].projected.sources[].downwardAPI.items[].resourceFieldRef

描述

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

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

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

divisor

Quantity

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

resource

字符串

必需:要选择的资源

.spec.volumes[].projected.sources[].secret

描述

将密钥适配到投影卷中。

目标 Secret 的 Data 字段的内容将作为文件显示在投影卷中,使用 Data 字段中的键作为文件名。请注意,这与没有默认模式的 secret 卷源相同。

类型

对象

属性 类型 描述

items

数组

items 如果未指定,则引用的 Secret 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 Secret 中不存在的键,则卷设置将出错,除非它被标记为可选。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

items[]

对象

将字符串键映射到卷内的路径。

name

字符串

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

optional

布尔值

optional 字段指定 Secret 或其键是否必须定义

.spec.volumes[].projected.sources[].secret.items

描述

items 如果未指定,则引用的 Secret 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 Secret 中不存在的键,则卷设置将出错,除非它被标记为可选。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

类型

数组

.spec.volumes[].projected.sources[].secret.items[]

描述

将字符串键映射到卷内的路径。

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

mode 为可选参数:用于设置此文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或者 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 仅需要十进制模式位值。如果未指定,则将使用卷的 defaultMode。这可能会与影响文件模式的其他选项(如 fsGroup)冲突,从而导致设置其他模式位。

path

字符串

path 是将键映射到的文件的相对路径。不能是绝对路径。不能包含路径元素“..” 。不能以字符串“..”开头。

.spec.volumes[].projected.sources[].serviceAccountToken

描述

ServiceAccountTokenProjection 表示投影的服务帐户令牌卷。此投影可用于将服务帐户令牌插入到 Pod 的运行时文件系统中,以便针对 API(Kubernetes API 服务器或其他)使用。

类型

对象

必需
  • path

属性 类型 描述

audience

字符串

audience 指的是令牌的目标受众。令牌的接收者必须使用令牌 audience 中指定的标识符标识自身,否则应拒绝该令牌。audience 默认值为 apiserver 的标识符。

expirationSeconds

整数

expirationSeconds 是服务账户令牌请求的有效期时长。当令牌接近过期时,kubelet 卷插件会主动轮换服务账户令牌。如果令牌的剩余有效时间少于其总有效时间的 80%,或者令牌已超过 24 小时,kubelet 将开始尝试轮换令牌。默认为 1 小时,必须至少为 10 分钟。

path

字符串

path 是相对于挂载点的文件路径,用于将令牌投影到该路径。

.spec.volumes[].quobyte

描述

表示持续 Pod 整个生命周期的 Quobyte 挂载。Quobyte 卷不支持所有权管理或 SELinux 重新标记。

类型

对象

必需
  • registry

  • volume

属性 类型 描述

group

字符串

用于映射卷访问权限的组。默认为无组。

readOnly

布尔值

readOnly 将强制以只读权限挂载 Quobyte 卷。默认为 false。

registry

字符串

registry 表示一个或多个 Quobyte 注册服务,以字符串形式指定为 host:port 对(多个条目用逗号分隔),作为卷的中央注册中心。

tenant

字符串

后端中拥有给定 Quobyte 卷的租户。与动态配置的 Quobyte 卷一起使用,值由插件设置。

user

字符串

用于映射卷访问权限的用户。默认为服务账户用户。

volume

字符串

volume 是一个字符串,引用已创建的 Quobyte 卷的名称。

.spec.volumes[].rbd

描述

表示持续 Pod 整个生命周期的 Rados 块设备挂载。RBD 卷支持所有权管理和 SELinux 重新标记。

类型

对象

必需
  • monitors

  • image

属性 类型 描述

fsType

字符串

fsType 是要挂载的卷的文件系统类型。提示:确保主机操作系统支持该文件系统类型。例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#rbd

image

字符串

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.volumes[].rbd.secretRef

描述

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

类型

对象

属性 类型 描述

name

字符串

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

.spec.volumes[].scaleIO

描述

ScaleIOVolumeSource 表示持久的 ScaleIO 卷

类型

对象

必需
  • gateway

  • system

  • secretRef

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如:“ext4”、“xfs”、“ntfs”。默认为“xfs”。

gateway

字符串

gateway 是 ScaleIO API Gateway 的主机地址。

protectionDomain

字符串

protectionDomain 是为已配置存储指定的 ScaleIO 保护域的名称。

readOnly

布尔值

readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

secretRef

对象

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

sslEnabled

布尔值

sslEnabled 标志启用/禁用与 Gateway 的 SSL 通信,默认为 false。

storageMode

字符串

storageMode 指示卷的存储应该是 ThickProvisioned 还是 ThinProvisioned。默认为 ThinProvisioned。

storagePool

字符串

storagePool 是与保护域关联的 ScaleIO 存储池。

system

字符串

system 是在 ScaleIO 中配置的存储系统的名称。

volumeName

字符串

volumeName 是已在与该卷源关联的 ScaleIO 系统中创建的卷的名称。

.spec.volumes[].scaleIO.secretRef

描述

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

类型

对象

属性 类型 描述

name

字符串

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

.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

布尔值

optional 字段指定 Secret 或其键是否必须定义。

secretName

字符串

secretName 是要使用的 pod 命名空间中 secret 的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#secret

.spec.volumes[].secret.items

描述

items 如果未指定,则引用 Secret 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 Secret 中不存在的键,则除非该键被标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

类型

数组

.spec.volumes[].secret.items[]

描述

将字符串键映射到卷内的路径。

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

mode 为可选参数:用于设置此文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或者 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 仅需要十进制模式位值。如果未指定,则将使用卷的 defaultMode。这可能会与影响文件模式的其他选项(如 fsGroup)冲突,从而导致设置其他模式位。

path

字符串

path 是将键映射到的文件的相对路径。不能是绝对路径。不能包含路径元素“..” 。不能以字符串“..”开头。

.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 的命名空间。这允许 Kubernetes 命名范围在 StorageOS 中镜像,以实现更紧密的集成。设置 VolumeName 为任何名称以覆盖默认行为。如果您未在 StorageOS 中使用命名空间,则设置为“default”。StorageOS 中不存在的命名空间将被创建。

.spec.volumes[].storageos.secretRef

描述

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

类型

对象

属性 类型 描述

name

字符串

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

.spec.volumes[].vsphereVolume

描述

表示 vSphere 卷资源。

类型

对象

必需
  • volumePath

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

storagePolicyID

字符串

storagePolicyID 是与 StoragePolicyName 关联的基于存储策略的管理 (SPBM) 配置文件 ID。

storagePolicyName

字符串

storagePolicyName 是基于存储策略的管理 (SPBM) 配置文件名称。

volumePath

字符串

volumePath 是标识 vSphere 卷 vmdk 的路径。

.status

描述

PodStatus 表示有关 Pod 状态的信息。状态可能落后于系统的实际状态,特别是如果托管 Pod 的节点无法联系控制平面。

类型

对象

属性 类型 描述

conditions

数组

Pod 的当前服务状态。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions

conditions[]

对象

PodCondition 包含此 Pod 当前状态的详细信息。

containerStatuses

数组

此列表中每个条目对应清单中的一个容器。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status

containerStatuses[]

对象

ContainerStatus 包含此容器当前状态的详细信息。

ephemeralContainerStatuses

数组

在此 Pod 中运行的任何临时容器的状态。

ephemeralContainerStatuses[]

对象

ContainerStatus 包含此容器当前状态的详细信息。

主机 IP

字符串

hostIP 保存分配给 Pod 的主机的 IP 地址。如果 Pod 尚未启动,则为空。Pod 可能被分配到 kubelet 存在问题的节点,这意味着即使 Pod 已分配到节点,HostIP 也不会更新。

hostIPs

数组

hostIPs 保存分配给主机的 IP 地址。如果指定此字段,则第一个条目必须与 hostIP 字段匹配。如果 Pod 尚未启动,则此列表为空。Pod 可能被分配到 kubelet 存在问题的节点,这意味着即使 Pod 已分配到节点,HostIPs 也不会更新。

hostIPs[]

对象

HostIP 代表分配给主机的单个 IP 地址。

initContainerStatuses

数组

此列表中每个条目对应清单中的一个 init 容器。最近成功的 init 容器将具有 ready = true,最近启动的容器将设置 startTime。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status

initContainerStatuses[]

对象

ContainerStatus 包含此容器当前状态的详细信息。

message

字符串

一条易于理解的消息,指示有关 Pod 处于此状态的原因的详细信息。

nominatedNodeName

字符串

只有当此 Pod 抢占节点上的其他 Pod 但无法立即调度时,才会设置 nominatedNodeName,因为抢占受害者会获得其优雅终止期限。此字段不能保证 Pod 将在此节点上调度。如果其他节点更快地可用,调度程序可能会决定将 Pod 放置在其他位置。调度程序也可能决定将此节点上的资源提供给抢占后创建的更高优先级的 Pod。因此,当 Pod 被调度时,此字段可能与 PodSpec.nodeName 不同。

phase

字符串

Pod 的阶段是对 Pod 在其生命周期中的位置的简单、高级摘要。conditions 数组、reason 和 message 字段以及各个容器状态数组包含有关 Pod 状态的更多详细信息。共有五种可能的阶段值

Pending:Pod 已被 Kubernetes 系统接受,但一个或多个容器镜像尚未创建。这包括调度之前的时间以及通过网络下载镜像所花费的时间,这可能需要一段时间。Running:Pod 已绑定到节点,并且所有容器都已创建。至少一个容器仍在运行,或者正在启动或重新启动过程中。Succeeded:Pod 中的所有容器都已成功终止,并且不会重新启动。Failed:Pod 中的所有容器都已终止,并且至少一个容器已失败终止。容器已退出并返回非零状态或被系统终止。Unknown:由于某种原因,无法获取 Pod 的状态,通常是由于与 Pod 主机通信出错。

更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#pod-phase

可能的枚举值:- "Failed" 表示 Pod 中的所有容器都已终止,并且至少有一个容器以失败终止(退出时返回非零退出代码或被系统停止)。- "Pending" 表示 Pod 已被系统接受,但一个或多个容器尚未启动。这包括绑定到节点之前的时间,以及将镜像拉取到主机上所花费的时间。- "Running" 表示 Pod 已绑定到节点,并且所有容器都已启动。至少一个容器仍在运行或正在重新启动过程中。- "Succeeded" 表示 Pod 中的所有容器都已自愿终止,容器退出代码为 0,并且系统不会重新启动这些容器中的任何一个。- "Unknown" 表示由于某种原因无法获取 Pod 的状态,通常是由于与 Pod 主机通信出错。已弃用:自 2015 年以来 (74da3b14b0c0f658b3bb8d2def5094686d0e9095) 就未设置。

podIP

字符串

分配给 Pod 的 podIP 地址。至少在集群内可路由。如果尚未分配,则为空。

podIPs

数组

podIPs 保存分配给 Pod 的 IP 地址。如果指定此字段,则第 0 个条目必须与 podIP 字段匹配。每个 Pod 最多可以为 IPv4 和 IPv6 分配一个值。如果尚未分配任何 IP,则此列表为空。

podIPs[]

对象

PodIP 代表分配给 Pod 的单个 IP 地址。

qosClass

字符串

基于资源需求分配给 Pod 的服务质量 (QOS) 分类。有关可用的 QOS 类别,请参阅 PodQOSClass 类型。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes

可能的枚举值:- "BestEffort" 是 BestEffort qos 类别。- "Burstable" 是 Burstable qos 类别。- "Guaranteed" 是 Guaranteed qos 类别。

reason

字符串

一条简短的驼峰式命名法消息,指示有关 Pod 处于此状态的原因的详细信息。例如,“Evicted”。

resize

字符串

Pod 容器所需资源调整的状态。如果没有任何资源调整挂起,则为空。对容器资源的任何更改都会自动将其设置为“Proposed”。

resourceClaimStatuses

数组

资源声明的状态。

resourceClaimStatuses[]

对象

PodResourceClaimStatus 存储在 PodStatus 中,用于每个 PodResourceClaim,它引用 ResourceClaimTemplate。它存储相应 ResourceClaim 的生成的名称。

startTime

时间

Kubelet 确认对象的时间(RFC 3339 日期和时间)。这早于 Kubelet 为 Pod 拉取容器镜像的时间。

.status.conditions

描述
类型

数组

.status.conditions[]

描述

PodCondition 包含此 Pod 当前状态的详细信息。

类型

对象

必需
  • 类型

  • status

属性 类型 描述

lastProbeTime

时间

我们上次探测条件的时间。

lastTransitionTime

时间

条件从一种状态转换到另一种状态的最后时间。

message

字符串

指示上次转换详细信息的易于理解的消息。

reason

字符串

条件上次转换的唯一、单字、驼峰式命名法原因。

status

字符串

状态表示条件的状态。可以是 True、False 或 Unknown。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions

类型

字符串

类型表示条件的类型。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions

.status.containerStatuses

描述

此列表中每个条目对应清单中的一个容器。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status

类型

数组

.status.containerStatuses[]

描述

ContainerStatus 包含此容器当前状态的详细信息。

类型

对象

必需
  • name

  • 就绪

  • 重启次数

  • image

  • 镜像ID

属性 类型 描述

已分配资源

对象 (数量)

AllocatedResources 表示节点为该容器分配的计算资源。在成功接收 pod 之后以及成功接收所需 pod 大小调整后,Kubelet 会将此值设置为 Container.Resources.Requests。

容器ID

字符串

ContainerID 是容器的 ID,格式为“<type>://<container_id>” 。其中 type 是容器运行时标识符,来自 CRI API 的 Version 调用(例如,“containerd”)。

image

字符串

镜像是容器正在运行的容器镜像的名称。容器镜像可能与 PodSpec 中使用的镜像不匹配,因为它可能已被运行时解析。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images

镜像ID

字符串

ImageID 是容器镜像的镜像 ID。镜像 ID 可能与 PodSpec 中使用的镜像的镜像 ID 不匹配,因为它可能已被运行时解析。

最后状态

对象

ContainerState 包含容器的可能状态。只能指定其成员之一。如果没有指定任何成员,则默认值为 ContainerStateWaiting。

name

字符串

名称是一个 DNS_LABEL,表示容器的唯一名称。pod 中的每个容器在所有容器类型中都必须具有唯一的名称。不能更新。

就绪

布尔值

Ready 指定容器当前是否通过其就绪检查。随着就绪探针的持续执行,该值将发生变化。如果未指定就绪探针,则一旦容器完全启动(请参见 Started 字段),此字段默认为 true。

此值通常用于确定容器是否已准备好接收流量。

resources

对象

ResourceRequirements 描述计算资源需求。

重启次数

整数

RestartCount 保存容器已重启的次数。Kubelet 努力始终递增该值,但在某些情况下,由于节点重启而可能丢失状态,然后该值可能重置为 0。该值永远不会为负。

已启动

布尔值

Started 指示容器是否已完成其 postStart 生命周期挂钩并通过了其启动探针。初始化为 false,在启动探针被认为成功后变为 true。当容器重启或 kubelet 暂时丢失状态时,重置为 false。在这两种情况下,启动探针都将再次运行。当没有定义 startupProbe 并且容器正在运行并已通过 postStart 生命周期挂钩时,始终为 true。null 值必须与 false 同样对待。

状态

对象

ContainerState 包含容器的可能状态。只能指定其成员之一。如果没有指定任何成员,则默认值为 ContainerStateWaiting。

volumeMounts

数组

卷挂载的状态。

volumeMounts[]

对象

VolumeMountStatus 显示卷挂载的状态。

.status.containerStatuses[].lastState

描述

ContainerState 包含容器的可能状态。只能指定其成员之一。如果没有指定任何成员,则默认值为 ContainerStateWaiting。

类型

对象

属性 类型 描述

运行中

对象

ContainerStateRunning 是容器的运行状态。

已终止

对象

ContainerStateTerminated 是容器的已终止状态。

等待中

对象

ContainerStateWaiting 是容器的等待状态。

.status.containerStatuses[].lastState.running

描述

ContainerStateRunning 是容器的运行状态。

类型

对象

属性 类型 描述

启动时间

时间

容器上次(重新)启动的时间

.status.containerStatuses[].lastState.terminated

描述

ContainerStateTerminated 是容器的已终止状态。

类型

对象

必需
  • 退出代码

属性 类型 描述

容器ID

字符串

容器的 ID,格式为“<type>://<container_id>’

退出代码

整数

容器上次终止的退出状态

完成时间

时间

容器上次终止的时间

message

字符串

关于容器上次终止的消息

reason

字符串

容器上次终止的(简短)原因

信号

整数

容器上次终止的信号

启动时间

时间

容器上次执行启动的时间

.status.containerStatuses[].lastState.waiting

描述

ContainerStateWaiting 是容器的等待状态。

类型

对象

属性 类型 描述

message

字符串

关于容器尚未运行的原因的消息。

reason

字符串

容器尚未运行的(简短)原因。

.status.containerStatuses[].resources

描述

ResourceRequirements 描述计算资源需求。

类型

对象

属性 类型 描述

资源请求

数组

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

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

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

claims[]

对象

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

限制

对象 (数量)

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

请求

对象 (数量)

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

.status.containerStatuses[].resources.claims

描述

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

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

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

类型

数组

.status.containerStatuses[].resources.claims[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

.status.containerStatuses[].state

描述

ContainerState 包含容器的可能状态。只能指定其成员之一。如果没有指定任何成员,则默认值为 ContainerStateWaiting。

类型

对象

属性 类型 描述

运行中

对象

ContainerStateRunning 是容器的运行状态。

已终止

对象

ContainerStateTerminated 是容器的已终止状态。

等待中

对象

ContainerStateWaiting 是容器的等待状态。

.status.containerStatuses[].state.running

描述

ContainerStateRunning 是容器的运行状态。

类型

对象

属性 类型 描述

启动时间

时间

容器上次(重新)启动的时间

.status.containerStatuses[].state.terminated

描述

ContainerStateTerminated 是容器的已终止状态。

类型

对象

必需
  • 退出代码

属性 类型 描述

容器ID

字符串

容器的 ID,格式为“<type>://<container_id>’

退出代码

整数

容器上次终止的退出状态

完成时间

时间

容器上次终止的时间

message

字符串

关于容器上次终止的消息

reason

字符串

容器上次终止的(简短)原因

信号

整数

容器上次终止的信号

启动时间

时间

容器上次执行启动的时间

.status.containerStatuses[].state.waiting

描述

ContainerStateWaiting 是容器的等待状态。

类型

对象

属性 类型 描述

message

字符串

关于容器尚未运行的原因的消息。

reason

字符串

容器尚未运行的(简短)原因。

.status.containerStatuses[].volumeMounts

描述

卷挂载的状态。

类型

数组

.status.containerStatuses[].volumeMounts[]

描述

VolumeMountStatus 显示卷挂载的状态。

类型

对象

必需
  • name

  • mountPath

属性 类型 描述

mountPath

字符串

MountPath 对应于原始 VolumeMount。

name

字符串

Name 对应于原始 VolumeMount 的名称。

readOnly

布尔值

ReadOnly 对应于原始 VolumeMount。

recursiveReadOnly

字符串

RecursiveReadOnly 必须设置为 Disabled、Enabled 或未指定(对于非只读挂载)。原始 VolumeMount 中的 IfPossible 值必须根据挂载结果转换为 Disabled 或 Enabled。

.status.ephemeralContainerStatuses

描述

在此 Pod 中运行的任何临时容器的状态。

类型

数组

.status.ephemeralContainerStatuses[]

描述

ContainerStatus 包含此容器当前状态的详细信息。

类型

对象

必需
  • name

  • 就绪

  • 重启次数

  • image

  • 镜像ID

属性 类型 描述

已分配资源

对象 (数量)

AllocatedResources 表示节点为该容器分配的计算资源。在成功接收 pod 之后以及成功接收所需 pod 大小调整后,Kubelet 会将此值设置为 Container.Resources.Requests。

容器ID

字符串

ContainerID 是容器的 ID,格式为“<type>://<container_id>” 。其中 type 是容器运行时标识符,来自 CRI API 的 Version 调用(例如,“containerd”)。

image

字符串

镜像是容器正在运行的容器镜像的名称。容器镜像可能与 PodSpec 中使用的镜像不匹配,因为它可能已被运行时解析。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images

镜像ID

字符串

ImageID 是容器镜像的镜像 ID。镜像 ID 可能与 PodSpec 中使用的镜像的镜像 ID 不匹配,因为它可能已被运行时解析。

最后状态

对象

ContainerState 包含容器的可能状态。只能指定其成员之一。如果没有指定任何成员,则默认值为 ContainerStateWaiting。

name

字符串

名称是一个 DNS_LABEL,表示容器的唯一名称。pod 中的每个容器在所有容器类型中都必须具有唯一的名称。不能更新。

就绪

布尔值

Ready 指定容器当前是否通过其就绪检查。随着就绪探针的持续执行,该值将发生变化。如果未指定就绪探针,则一旦容器完全启动(请参见 Started 字段),此字段默认为 true。

此值通常用于确定容器是否已准备好接收流量。

resources

对象

ResourceRequirements 描述计算资源需求。

重启次数

整数

RestartCount 保存容器已重启的次数。Kubelet 努力始终递增该值,但在某些情况下,由于节点重启而可能丢失状态,然后该值可能重置为 0。该值永远不会为负。

已启动

布尔值

Started 指示容器是否已完成其 postStart 生命周期挂钩并通过了其启动探针。初始化为 false,在启动探针被认为成功后变为 true。当容器重启或 kubelet 暂时丢失状态时,重置为 false。在这两种情况下,启动探针都将再次运行。当没有定义 startupProbe 并且容器正在运行并已通过 postStart 生命周期挂钩时,始终为 true。null 值必须与 false 同样对待。

状态

对象

ContainerState 包含容器的可能状态。只能指定其成员之一。如果没有指定任何成员,则默认值为 ContainerStateWaiting。

volumeMounts

数组

卷挂载的状态。

volumeMounts[]

对象

VolumeMountStatus 显示卷挂载的状态。

.status.ephemeralContainerStatuses[].lastState

描述

ContainerState 包含容器的可能状态。只能指定其成员之一。如果没有指定任何成员,则默认值为 ContainerStateWaiting。

类型

对象

属性 类型 描述

运行中

对象

ContainerStateRunning 是容器的运行状态。

已终止

对象

ContainerStateTerminated 是容器的已终止状态。

等待中

对象

ContainerStateWaiting 是容器的等待状态。

.status.ephemeralContainerStatuses[].lastState.running

描述

ContainerStateRunning 是容器的运行状态。

类型

对象

属性 类型 描述

启动时间

时间

容器上次(重新)启动的时间

.status.ephemeralContainerStatuses[].lastState.terminated

描述

ContainerStateTerminated 是容器的已终止状态。

类型

对象

必需
  • 退出代码

属性 类型 描述

容器ID

字符串

容器的 ID,格式为“<type>://<container_id>’

退出代码

整数

容器上次终止的退出状态

完成时间

时间

容器上次终止的时间

message

字符串

关于容器上次终止的消息

reason

字符串

容器上次终止的(简短)原因

信号

整数

容器上次终止的信号

启动时间

时间

容器上次执行启动的时间

.status.ephemeralContainerStatuses[].lastState.waiting

描述

ContainerStateWaiting 是容器的等待状态。

类型

对象

属性 类型 描述

message

字符串

关于容器尚未运行的原因的消息。

reason

字符串

容器尚未运行的(简短)原因。

.status.ephemeralContainerStatuses[].resources

描述

ResourceRequirements 描述计算资源需求。

类型

对象

属性 类型 描述

资源请求

数组

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

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

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

claims[]

对象

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

限制

对象 (数量)

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

请求

对象 (数量)

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

.status.ephemeralContainerStatuses[].resources.claims

描述

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

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

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

类型

数组

.status.ephemeralContainerStatuses[].resources.claims[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

.status.ephemeralContainerStatuses[].state

描述

ContainerState 包含容器的可能状态。只能指定其成员之一。如果没有指定任何成员,则默认值为 ContainerStateWaiting。

类型

对象

属性 类型 描述

运行中

对象

ContainerStateRunning 是容器的运行状态。

已终止

对象

ContainerStateTerminated 是容器的已终止状态。

等待中

对象

ContainerStateWaiting 是容器的等待状态。

.status.ephemeralContainerStatuses[].state.running

描述

ContainerStateRunning 是容器的运行状态。

类型

对象

属性 类型 描述

启动时间

时间

容器上次(重新)启动的时间

.status.ephemeralContainerStatuses[].state.terminated

描述

ContainerStateTerminated 是容器的已终止状态。

类型

对象

必需
  • 退出代码

属性 类型 描述

容器ID

字符串

容器的 ID,格式为“<type>://<container_id>’

退出代码

整数

容器上次终止的退出状态

完成时间

时间

容器上次终止的时间

message

字符串

关于容器上次终止的消息

reason

字符串

容器上次终止的(简短)原因

信号

整数

容器上次终止的信号

启动时间

时间

容器上次执行启动的时间

.status.ephemeralContainerStatuses[].state.waiting

描述

ContainerStateWaiting 是容器的等待状态。

类型

对象

属性 类型 描述

message

字符串

关于容器尚未运行的原因的消息。

reason

字符串

容器尚未运行的(简短)原因。

.status.ephemeralContainerStatuses[].volumeMounts

描述

卷挂载的状态。

类型

数组

.status.ephemeralContainerStatuses[].volumeMounts[]

描述

VolumeMountStatus 显示卷挂载的状态。

类型

对象

必需
  • name

  • mountPath

属性 类型 描述

mountPath

字符串

MountPath 对应于原始 VolumeMount。

name

字符串

Name 对应于原始 VolumeMount 的名称。

readOnly

布尔值

ReadOnly 对应于原始 VolumeMount。

recursiveReadOnly

字符串

RecursiveReadOnly 必须设置为 Disabled、Enabled 或未指定(对于非只读挂载)。原始 VolumeMount 中的 IfPossible 值必须根据挂载结果转换为 Disabled 或 Enabled。

.status.hostIPs

描述

hostIPs 保存分配给主机的 IP 地址。如果指定此字段,则第一个条目必须与 hostIP 字段匹配。如果 Pod 尚未启动,则此列表为空。Pod 可能被分配到 kubelet 存在问题的节点,这意味着即使 Pod 已分配到节点,HostIPs 也不会更新。

类型

数组

.status.hostIPs[]

描述

HostIP 代表分配给主机的单个 IP 地址。

类型

对象

必需
  • ip

属性 类型 描述

ip

字符串

IP 是分配给主机的 IP 地址

.status.initContainerStatuses

描述

此列表中每个条目对应清单中的一个 init 容器。最近成功的 init 容器将具有 ready = true,最近启动的容器将设置 startTime。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status

类型

数组

.status.initContainerStatuses[]

描述

ContainerStatus 包含此容器当前状态的详细信息。

类型

对象

必需
  • name

  • 就绪

  • 重启次数

  • image

  • 镜像ID

属性 类型 描述

已分配资源

对象 (数量)

AllocatedResources 表示节点为该容器分配的计算资源。在成功接收 pod 之后以及成功接收所需 pod 大小调整后,Kubelet 会将此值设置为 Container.Resources.Requests。

容器ID

字符串

ContainerID 是容器的 ID,格式为“<type>://<container_id>” 。其中 type 是容器运行时标识符,来自 CRI API 的 Version 调用(例如,“containerd”)。

image

字符串

镜像是容器正在运行的容器镜像的名称。容器镜像可能与 PodSpec 中使用的镜像不匹配,因为它可能已被运行时解析。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images

镜像ID

字符串

ImageID 是容器镜像的镜像 ID。镜像 ID 可能与 PodSpec 中使用的镜像的镜像 ID 不匹配,因为它可能已被运行时解析。

最后状态

对象

ContainerState 包含容器的可能状态。只能指定其成员之一。如果没有指定任何成员,则默认值为 ContainerStateWaiting。

name

字符串

名称是一个 DNS_LABEL,表示容器的唯一名称。pod 中的每个容器在所有容器类型中都必须具有唯一的名称。不能更新。

就绪

布尔值

Ready 指定容器当前是否通过其就绪检查。随着就绪探针的持续执行,该值将发生变化。如果未指定就绪探针,则一旦容器完全启动(请参见 Started 字段),此字段默认为 true。

此值通常用于确定容器是否已准备好接收流量。

resources

对象

ResourceRequirements 描述计算资源需求。

重启次数

整数

RestartCount 保存容器已重启的次数。Kubelet 努力始终递增该值,但在某些情况下,由于节点重启而可能丢失状态,然后该值可能重置为 0。该值永远不会为负。

已启动

布尔值

Started 指示容器是否已完成其 postStart 生命周期挂钩并通过了其启动探针。初始化为 false,在启动探针被认为成功后变为 true。当容器重启或 kubelet 暂时丢失状态时,重置为 false。在这两种情况下,启动探针都将再次运行。当没有定义 startupProbe 并且容器正在运行并已通过 postStart 生命周期挂钩时,始终为 true。null 值必须与 false 同样对待。

状态

对象

ContainerState 包含容器的可能状态。只能指定其成员之一。如果没有指定任何成员,则默认值为 ContainerStateWaiting。

volumeMounts

数组

卷挂载的状态。

volumeMounts[]

对象

VolumeMountStatus 显示卷挂载的状态。

.status.initContainerStatuses[].lastState

描述

ContainerState 包含容器的可能状态。只能指定其成员之一。如果没有指定任何成员,则默认值为 ContainerStateWaiting。

类型

对象

属性 类型 描述

运行中

对象

ContainerStateRunning 是容器的运行状态。

已终止

对象

ContainerStateTerminated 是容器的已终止状态。

等待中

对象

ContainerStateWaiting 是容器的等待状态。

.status.initContainerStatuses[].lastState.running

描述

ContainerStateRunning 是容器的运行状态。

类型

对象

属性 类型 描述

启动时间

时间

容器上次(重新)启动的时间

.status.initContainerStatuses[].lastState.terminated

描述

ContainerStateTerminated 是容器的已终止状态。

类型

对象

必需
  • 退出代码

属性 类型 描述

容器ID

字符串

容器的 ID,格式为“<type>://<container_id>’

退出代码

整数

容器上次终止的退出状态

完成时间

时间

容器上次终止的时间

message

字符串

关于容器上次终止的消息

reason

字符串

容器上次终止的(简短)原因

信号

整数

容器上次终止的信号

启动时间

时间

容器上次执行启动的时间

.status.initContainerStatuses[].lastState.waiting

描述

ContainerStateWaiting 是容器的等待状态。

类型

对象

属性 类型 描述

message

字符串

关于容器尚未运行的原因的消息。

reason

字符串

容器尚未运行的(简短)原因。

.status.initContainerStatuses[].resources

描述

ResourceRequirements 描述计算资源需求。

类型

对象

属性 类型 描述

资源请求

数组

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

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

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

claims[]

对象

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

限制

对象 (数量)

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

请求

对象 (数量)

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

.status.initContainerStatuses[].resources.claims

描述

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

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

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

类型

数组

.status.initContainerStatuses[].resources.claims[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

.status.initContainerStatuses[].state

描述

ContainerState 包含容器的可能状态。只能指定其成员之一。如果没有指定任何成员,则默认值为 ContainerStateWaiting。

类型

对象

属性 类型 描述

运行中

对象

ContainerStateRunning 是容器的运行状态。

已终止

对象

ContainerStateTerminated 是容器的已终止状态。

等待中

对象

ContainerStateWaiting 是容器的等待状态。

.status.initContainerStatuses[].state.running

描述

ContainerStateRunning 是容器的运行状态。

类型

对象

属性 类型 描述

启动时间

时间

容器上次(重新)启动的时间

.status.initContainerStatuses[].state.terminated

描述

ContainerStateTerminated 是容器的已终止状态。

类型

对象

必需
  • 退出代码

属性 类型 描述

容器ID

字符串

容器的 ID,格式为“<type>://<container_id>’

退出代码

整数

容器上次终止的退出状态

完成时间

时间

容器上次终止的时间

message

字符串

关于容器上次终止的消息

reason

字符串

容器上次终止的(简短)原因

信号

整数

容器上次终止的信号

启动时间

时间

容器上次执行启动的时间

.status.initContainerStatuses[].state.waiting

描述

ContainerStateWaiting 是容器的等待状态。

类型

对象

属性 类型 描述

message

字符串

关于容器尚未运行的原因的消息。

reason

字符串

容器尚未运行的(简短)原因。

.status.initContainerStatuses[].volumeMounts

描述

卷挂载的状态。

类型

数组

.status.initContainerStatuses[].volumeMounts[]

描述

VolumeMountStatus 显示卷挂载的状态。

类型

对象

必需
  • name

  • mountPath

属性 类型 描述

mountPath

字符串

MountPath 对应于原始 VolumeMount。

name

字符串

Name 对应于原始 VolumeMount 的名称。

readOnly

布尔值

ReadOnly 对应于原始 VolumeMount。

recursiveReadOnly

字符串

RecursiveReadOnly 必须设置为 Disabled、Enabled 或未指定(对于非只读挂载)。原始 VolumeMount 中的 IfPossible 值必须根据挂载结果转换为 Disabled 或 Enabled。

.status.podIPs

描述

podIPs 保存分配给 Pod 的 IP 地址。如果指定此字段,则第 0 个条目必须与 podIP 字段匹配。每个 Pod 最多可以为 IPv4 和 IPv6 分配一个值。如果尚未分配任何 IP,则此列表为空。

类型

数组

.status.podIPs[]

描述

PodIP 代表分配给 Pod 的单个 IP 地址。

类型

对象

必需
  • ip

属性 类型 描述

ip

字符串

IP 是分配给 pod 的 IP 地址

.status.resourceClaimStatuses

描述

资源声明的状态。

类型

数组

.status.resourceClaimStatuses[]

描述

PodResourceClaimStatus 存储在 PodStatus 中,用于每个 PodResourceClaim,它引用 ResourceClaimTemplate。它存储相应 ResourceClaim 的生成的名称。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

名称唯一标识 Pod 内的此资源声明。这必须与 pod.spec.resourceClaims 中条目的名称匹配,这意味着该字符串必须是 DNS_LABEL。

resourceClaimName

字符串

ResourceClaimName 是为 Pod 在其命名空间中生成的 ResourceClaim 的名称。如果未设置此值,则无需生成 ResourceClaim。在这种情况下,可以忽略 pod.spec.resourceClaims 条目。

API 端点

提供以下 API 端点:

  • /api/v1/pods

    • GET:列出或监听 Pod 类型对象

  • /api/v1/watch/pods

    • GET:监听 Pod 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

  • /api/v1/namespaces/{namespace}/pods

    • DELETE:删除 Pod 集合

    • GET:列出或监听 Pod 类型对象

    • POST:创建 Pod

  • /api/v1/watch/namespaces/{namespace}/pods

    • GET:监听 Pod 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

  • /api/v1/namespaces/{namespace}/pods/{name}

    • DELETE:删除 Pod

    • GET:读取指定的 Pod

    • PATCH:部分更新指定的 Pod

    • PUT:替换指定的 Pod

  • /api/v1/namespaces/{namespace}/pods/{name}/log

    • GET:读取指定的 Pod 日志

  • /api/v1/watch/namespaces/{namespace}/pods/{name}

    • GET:监听 Pod 类型对象的更改。已弃用:请改用列表操作中的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

  • /api/v1/namespaces/{namespace}/pods/{name}/status

    • GET:读取指定的 Pod 状态

    • PATCH:部分更新指定的 Pod 状态

    • PUT:替换指定的 Pod 状态

  • /api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers

    • GET:读取指定的 Pod 的 ephemeralcontainers

    • PATCH:部分更新指定的 Pod 的 ephemeralcontainers

    • PUT:替换指定的 Pod 的 ephemeralcontainers

/api/v1/pods

HTTP 方法

GET

描述

列出或监听 Pod 类型对象

表 1. HTTP 响应
HTTP 代码 响应体

200 - OK

PodList 模式

401 - 未授权

/api/v1/watch/pods

HTTP 方法

GET

描述

监听 Pod 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

表 2. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权

/api/v1/namespaces/{namespace}/pods

HTTP 方法

DELETE

描述

删除 Pod 集合

表 3. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 4. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出或监听 Pod 类型对象

表 5. HTTP 响应
HTTP 代码 响应体

200 - OK

PodList 模式

401 - 未授权

HTTP 方法

POST

描述

创建 Pod

表 6. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 7. 请求体参数
参数 类型 描述

body

Pod 模式

表 8. HTTP 响应
HTTP 代码 响应体

200 - OK

Pod 模式

201 - 已创建

Pod 模式

202 - 已接受

Pod 模式

401 - 未授权

/api/v1/watch/namespaces/{namespace}/pods

HTTP 方法

GET

描述

监听 Pod 列表的单个更改。已弃用:请改用列表操作中的“watch”参数。

表 9. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权

/api/v1/namespaces/{namespace}/pods/{name}

表 10. 全局路径参数
参数 类型 描述

name

字符串

Pod 的名称

HTTP 方法

DELETE

描述

删除 Pod

表 11. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 12. HTTP 响应
HTTP 代码 响应体

200 - OK

Pod 模式

202 - 已接受

Pod 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 Pod

表 13. HTTP 响应
HTTP 代码 响应体

200 - OK

Pod 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 Pod

表 14. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 15. HTTP 响应
HTTP 代码 响应体

200 - OK

Pod 模式

201 - 已创建

Pod 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 Pod

表 16. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 17. 请求体参数
参数 类型 描述

body

Pod 模式

表 18. HTTP 响应
HTTP 代码 响应体

200 - OK

Pod 模式

201 - 已创建

Pod 模式

401 - 未授权

/api/v1/namespaces/{namespace}/pods/{name}/log

表 19. 全局路径参数
参数 类型 描述

name

字符串

Pod 的名称

HTTP 方法

GET

描述

读取指定的 Pod 日志

表 20. HTTP 响应
HTTP 代码 响应体

200 - OK

字符串

401 - 未授权

/api/v1/watch/namespaces/{namespace}/pods/{name}

表 21. 全局路径参数
参数 类型 描述

name

字符串

Pod 的名称

HTTP 方法

GET

描述

监听 Pod 类型对象的更改。已弃用:请改用列表操作中的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

表 22. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权

/api/v1/namespaces/{namespace}/pods/{name}/status

表 23. 全局路径参数
参数 类型 描述

name

字符串

Pod 的名称

HTTP 方法

GET

描述

读取指定的 Pod 状态

表 24. HTTP 响应
HTTP 代码 响应体

200 - OK

Pod 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 Pod 状态

表 25. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 26. HTTP 响应
HTTP 代码 响应体

200 - OK

Pod 模式

201 - 已创建

Pod 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 Pod 状态

表 27. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 28. 请求体参数
参数 类型 描述

body

Pod 模式

表 29. HTTP 响应
HTTP 代码 响应体

200 - OK

Pod 模式

201 - 已创建

Pod 模式

401 - 未授权

/api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers

表 30. 全局路径参数
参数 类型 描述

name

字符串

Pod 的名称

HTTP 方法

GET

描述

读取指定的 Pod 的 ephemeralcontainers

表 31. HTTP 响应
HTTP 代码 响应体

200 - OK

Pod 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 Pod 的 ephemeralcontainers

表 32. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 33. HTTP 响应
HTTP 代码 响应体

200 - OK

Pod 模式

201 - 已创建

Pod 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 Pod 的 ephemeralcontainers

表 34. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 35. 请求体参数
参数 类型 描述

body

Pod 模式

表 36. HTTP 响应
HTTP 代码 响应体

200 - OK

Pod 模式

201 - 已创建

Pod 模式

401 - 未授权