×
描述

PodTemplate 描述了创建预定义 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

template

对象

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

.template

描述

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

类型

对象

属性 类型 描述

metadata

ObjectMeta

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

spec

对象

PodSpec 是 Pod 的描述。

.template.spec

描述

PodSpec 是 Pod 的描述。

类型

对象

必需
  • containers

属性 类型 描述

activeDeadlineSeconds

整数

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

affinity

对象

Affinity 是一组亲和调度规则。

automountServiceAccountToken

布尔值

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

containers

数组

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

containers[]

对象

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

dnsConfig

对象

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

dnsPolicy

字符串

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

可能的枚举值:- "ClusterFirst" 指示 Pod 应首先使用集群 DNS,除非 hostNetwork 为 true,如果可用,则回退到默认 (由 kubelet 确定) DNS 设置。- "ClusterFirstWithHostNet" 指示 Pod 应首先使用集群 DNS,如果可用,则回退到默认 (由 kubelet 确定) DNS 设置。- "Default" 指示 Pod 应使用默认 (由 kubelet 确定) DNS 设置。- "None" 指示 Pod 应使用空的 DNS 设置。诸如 nameservers 和搜索路径之类的 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 创建一个新的 userns。设置为 false 有助于减轻容器逃逸漏洞,即使允许用户以 root 用户身份运行其容器,也不会拥有宿主机上的 root 权限。此字段处于 alpha 级别,只有启用 UserNamespacesSupport 功能的服务器才会考虑它。

hostname

字符串

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

imagePullSecrets

数组

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

imagePullSecrets[]

对象

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

initContainers

数组

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

initContainers[]

对象

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

nodeName

字符串

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

nodeSelector

对象 (字符串)

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

os

对象

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

overhead

对象 (数量)

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。

调度网关只能在 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 都是 AND 关系。

topologySpreadConstraints[]

对象

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

volumes

数组

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

volumes[]

对象

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

.template.spec.affinity

描述

Affinity 是一组亲和调度规则。

类型

对象

属性 类型 描述

nodeAffinity

对象

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

podAffinity

对象

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

podAntiAffinity

对象

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

.template.spec.affinity.nodeAffinity

描述

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

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

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

preferredDuringSchedulingIgnoredDuringExecution[]

对象

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

requiredDuringSchedulingIgnoredDuringExecution

对象

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

.template.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • weight

  • preference

属性 类型 描述

preference

对象

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

weight

整数

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

按节点标签的一组节点选择器要求。

matchExpressions[]

对象

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

matchFields

数组

按节点字段的一组节点选择器要求。

matchFields[]

对象

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

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

描述

按节点标签的一组节点选择器要求。

类型

数组

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

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

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

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

values

数组 (字符串)

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

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

描述

按节点字段的一组节点选择器要求。

类型

数组

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

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

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

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

values

数组 (字符串)

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

.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

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

类型

对象

必需
  • nodeSelectorTerms

属性 类型 描述

nodeSelectorTerms

数组

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

nodeSelectorTerms[]

对象

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

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

描述

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

类型

数组

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

按节点标签的一组节点选择器要求。

matchExpressions[]

对象

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

matchFields

数组

按节点字段的一组节点选择器要求。

matchFields[]

对象

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

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

描述

按节点标签的一组节点选择器要求。

类型

数组

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

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

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

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

values

数组 (字符串)

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

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

描述

按节点字段的一组节点选择器要求。

类型

数组

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

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

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

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

values

数组 (字符串)

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

.template.spec.affinity.podAffinity

描述

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

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

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

preferredDuringSchedulingIgnoredDuringExecution[]

对象

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

requiredDuringSchedulingIgnoredDuringExecution

数组

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

requiredDuringSchedulingIgnoredDuringExecution[]

对象

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

.template.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • weight

  • podAffinityTerm

属性 类型 描述

podAffinityTerm

对象

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

weight

整数

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

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

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

LabelSelector

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

matchLabelKeys

数组 (字符串)

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

mismatchLabelKeys

数组 (字符串)

MismatchLabelKeys 是一组 Pod 标签键,用于选择哪些 Pod 将被考虑在内。这些键用于从传入的 Pod 标签中查找值,这些键值标签与 labelSelector 合并为 key notin (value),以选择将被考虑用于传入 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 共存(亲和性)或不共存(反亲和性),其中共存定义为运行在节点上的 Pod,该节点的标签值(键为 topologyKey)与任何节点上的任何选定 Pod 的标签值匹配。不允许使用空的 topologyKey。

.template.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

LabelSelector

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

matchLabelKeys

数组 (字符串)

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

mismatchLabelKeys

数组 (字符串)

MismatchLabelKeys 是一组 Pod 标签键,用于选择哪些 Pod 将被考虑在内。这些键用于从传入的 Pod 标签中查找值,这些键值标签与 labelSelector 合并为 key notin (value),以选择将被考虑用于传入 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 共存(亲和性)或不共存(反亲和性),其中共存定义为运行在节点上的 Pod,该节点的标签值(键为 topologyKey)与任何节点上的任何选定 Pod 的标签值匹配。不允许使用空的 topologyKey。

.template.spec.affinity.podAntiAffinity

描述

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

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

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

preferredDuringSchedulingIgnoredDuringExecution[]

对象

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

requiredDuringSchedulingIgnoredDuringExecution

数组

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

requiredDuringSchedulingIgnoredDuringExecution[]

对象

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

.template.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • weight

  • podAffinityTerm

属性 类型 描述

podAffinityTerm

对象

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

weight

整数

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

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

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

LabelSelector

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

matchLabelKeys

数组 (字符串)

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

mismatchLabelKeys

数组 (字符串)

MismatchLabelKeys 是一组 Pod 标签键,用于选择哪些 Pod 将被考虑在内。这些键用于从传入的 Pod 标签中查找值,这些键值标签与 labelSelector 合并为 key notin (value),以选择将被考虑用于传入 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 共存(亲和性)或不共存(反亲和性),其中共存定义为运行在节点上的 Pod,该节点的标签值(键为 topologyKey)与任何节点上的任何选定 Pod 的标签值匹配。不允许使用空的 topologyKey。

.template.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

LabelSelector

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

matchLabelKeys

数组 (字符串)

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

mismatchLabelKeys

数组 (字符串)

MismatchLabelKeys 是一组 Pod 标签键,用于选择哪些 Pod 将被考虑在内。这些键用于从传入的 Pod 标签中查找值,这些键值标签与 labelSelector 合并为 key notin (value),以选择将被考虑用于传入 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 共存(亲和性)或不共存(反亲和性),其中共存定义为运行在节点上的 Pod,该节点的标签值(键为 topologyKey)与任何节点上的任何选定 Pod 的标签值匹配。不允许使用空的 topologyKey。

.template.spec.containers

描述

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

类型

数组

.template.spec.containers[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

args

数组 (字符串)

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

命令

数组 (字符串)

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

环境变量

数组

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

env[]

对象

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

环境变量来源

数组

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

envFrom[]

对象

EnvFromSource 表示一组 ConfigMap 的来源。

镜像

字符串

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

镜像拉取策略

字符串

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

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

生命周期

对象

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

存活性探针

对象

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

name

字符串

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

端口

数组

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

ports[]

对象

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

就绪探针

对象

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

调整策略

数组

容器的资源调整策略。

resizePolicy[]

对象

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

资源

对象

ResourceRequirements 描述了计算资源需求。

restartPolicy

字符串

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

securityContext

对象

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

启动探针

对象

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

标准输入

布尔值

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

一次性标准输入

布尔值

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

终止消息路径

字符串

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

终止消息策略

字符串

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

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

TTY

布尔值

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

volumeDevices

数组

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

volumeDevices[]

对象

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

volumeMounts

数组

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

volumeMounts[]

对象

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

workingDir

字符串

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

.template.spec.containers[].env

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

value

字符串

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

valueFrom

对象

EnvVarSource 表示 EnvVar 值的来源。

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

描述

EnvVarSource 表示 EnvVar 值的来源。

类型

对象

属性 类型 描述

configMapKeyRef

对象

从 ConfigMap 中选择一个键。

fieldRef

对象

ObjectFieldSelector 选择对象的 APIVersioned 字段。

resourceFieldRef

对象

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

secretKeyRef

对象

SecretKeySelector 选择 Secret 的一个键。

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

描述

从 ConfigMap 中选择一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

name

字符串

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

optional

布尔值

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

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

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

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

fieldPath

字符串

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

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

描述

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

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

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

divisor

Quantity

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

resource

字符串

必需:要选择的资源。

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

描述

SecretKeySelector 选择 Secret 的一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

name

字符串

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

optional

布尔值

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

.template.spec.containers[].envFrom

描述

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

类型

数组

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

描述

EnvFromSource 表示一组 ConfigMap 的来源。

类型

对象

属性 类型 描述

configMapRef

对象

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

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

prefix

字符串

一个可选标识符,用于预先添加到 ConfigMap 中的每个键。必须是 C_IDENTIFIER。

secretRef

对象

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

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

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

描述

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

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

类型

对象

属性 类型 描述

name

字符串

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

optional

布尔值

指定是否必须定义 ConfigMap。

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

描述

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

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

类型

对象

属性 类型 描述

name

字符串

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

optional

布尔值

指定是否必须定义 Secret。

.template.spec.containers[].lifecycle

描述

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

类型

对象

属性 类型 描述

postStart

对象

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

preStop

对象

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

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

描述

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

类型

对象

属性 类型 描述

exec

对象

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

httpGet

对象

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

sleep

对象

SleepAction 描述了“sleep”操作。

tcpSocket

对象

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

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

描述

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

类型

对象

属性 类型 描述

命令

数组 (字符串)

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

IntOrString

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

scheme

字符串

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

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值。

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

描述

SleepAction 描述了“sleep”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

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

描述

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

类型

对象

属性 类型 描述

exec

对象

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

httpGet

对象

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

sleep

对象

SleepAction 描述了“sleep”操作。

tcpSocket

对象

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

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

描述

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

类型

对象

属性 类型 描述

命令

数组 (字符串)

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

IntOrString

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

scheme

字符串

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

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值。

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

描述

SleepAction 描述了“sleep”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.template.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。

timeoutSeconds

整数

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

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

描述

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

类型

对象

属性 类型 描述

命令

数组 (字符串)

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

port

整数

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

service

字符串

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

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

IntOrString

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

scheme

字符串

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

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.template.spec.containers[].ports

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • containerPort

属性 类型 描述

containerPort

整数

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

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

字符串

hostIP

hostPort

整数

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

name

字符串

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

protocol

字符串

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

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

.template.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。

timeoutSeconds

整数

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

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

描述

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

类型

对象

属性 类型 描述

命令

数组 (字符串)

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

port

整数

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

service

字符串

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

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

IntOrString

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

scheme

字符串

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

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.template.spec.containers[].resizePolicy

描述

容器的资源调整策略。

类型

数组

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

描述

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

类型

对象

必需
  • resourceName

  • restartPolicy

属性 类型 描述

resourceName

字符串

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

restartPolicy

字符串

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

.template.spec.containers[].resources

描述

ResourceRequirements 描述了计算资源需求。

类型

对象

属性 类型 描述

claims

数组

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

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

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

claims[]

对象

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

limits

对象 (数量)

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

requests

对象 (数量)

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

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

描述

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

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

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

类型

数组

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

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

.template.spec.containers[].securityContext

描述

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

类型

对象

属性 类型 描述

allowPrivilegeEscalation

布尔值

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

appArmorProfile

对象

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

capabilities

对象

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

privileged

布尔值

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

procMount

字符串

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

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

readOnlyRootFilesystem

布尔值

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

runAsGroup

整数

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

runAsNonRoot

布尔值

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

runAsUser

整数

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

seLinuxOptions

对象

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

seccompProfile

对象

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

windowsOptions

对象

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

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

描述

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

类型

对象

必需
  • type

属性 类型 描述

localhostProfile

字符串

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

type

字符串

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

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

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

描述

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

类型

对象

属性 类型 描述

add

数组 (字符串)

添加的功能

drop

数组 (字符串)

删除的功能

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

描述

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

类型

对象

属性 类型 描述

level

字符串

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

role

字符串

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

type

字符串

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

user

字符串

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

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

描述

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

类型

对象

必需
  • type

属性 类型 描述

localhostProfile

字符串

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

type

字符串

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

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

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

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

描述

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

类型

对象

属性 类型 描述

gmsaCredentialSpec

字符串

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

gmsaCredentialSpecName

字符串

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

hostProcess

布尔值

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

runAsUserName

字符串

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

.template.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。

timeoutSeconds

整数

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

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

描述

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

类型

对象

属性 类型 描述

命令

数组 (字符串)

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

port

整数

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

service

字符串

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

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

IntOrString

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

scheme

字符串

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

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.template.spec.containers[].volumeDevices

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • devicePath

属性 类型 描述

devicePath

字符串

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

name

字符串

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

.template.spec.containers[].volumeMounts

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • mountPath

属性 类型 描述

mountPath

字符串

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

mountPropagation

字符串

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

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

name

字符串

这必须与卷的名称匹配。

readOnly

布尔值

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

recursiveReadOnly

字符串

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

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

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

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

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

subPath

字符串

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

subPathExpr

字符串

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

.template.spec.dnsConfig

描述

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

类型

对象

属性 类型 描述

nameservers

数组 (字符串)

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

options

数组

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

options[]

对象

PodDNSConfigOption 定义 pod 的 DNS 解析器选项。

searches

数组 (字符串)

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

.template.spec.dnsConfig.options

描述

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

类型

数组

.template.spec.dnsConfig.options[]

描述

PodDNSConfigOption 定义 pod 的 DNS 解析器选项。

类型

对象

属性 类型 描述

name

字符串

必需的。

value

字符串

.template.spec.ephemeralContainers

描述

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

类型

数组

.template.spec.ephemeralContainers[]

描述

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

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

类型

对象

必需
  • name

属性 类型 描述

args

数组 (字符串)

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

命令

数组 (字符串)

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

环境变量

数组

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

env[]

对象

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

环境变量来源

数组

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

envFrom[]

对象

EnvFromSource 表示一组 ConfigMap 的来源。

镜像

字符串

容器镜像名称。

镜像拉取策略

字符串

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

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

生命周期

对象

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

存活性探针

对象

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

name

字符串

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

端口

数组

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

ports[]

对象

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

就绪探针

对象

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

调整策略

数组

容器的资源调整策略。

resizePolicy[]

对象

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

资源

对象

ResourceRequirements 描述了计算资源需求。

restartPolicy

字符串

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

securityContext

对象

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

启动探针

对象

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

标准输入

布尔值

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

一次性标准输入

布尔值

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

targetContainerName

字符串

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

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

终止消息路径

字符串

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

终止消息策略

字符串

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

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

TTY

布尔值

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

volumeDevices

数组

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

volumeDevices[]

对象

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

volumeMounts

数组

要挂载到容器文件系统的 pod 卷。临时容器不允许使用子路径挂载。

volumeMounts[]

对象

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

workingDir

字符串

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

.template.spec.ephemeralContainers[].env

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

value

字符串

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

valueFrom

对象

EnvVarSource 表示 EnvVar 值的来源。

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

描述

EnvVarSource 表示 EnvVar 值的来源。

类型

对象

属性 类型 描述

configMapKeyRef

对象

从 ConfigMap 中选择一个键。

fieldRef

对象

ObjectFieldSelector 选择对象的 APIVersioned 字段。

resourceFieldRef

对象

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

secretKeyRef

对象

SecretKeySelector 选择 Secret 的一个键。

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

描述

从 ConfigMap 中选择一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

name

字符串

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

optional

布尔值

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

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

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

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

fieldPath

字符串

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

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

描述

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

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

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

divisor

Quantity

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

resource

字符串

必需:要选择的资源。

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

描述

SecretKeySelector 选择 Secret 的一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

name

字符串

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

optional

布尔值

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

.template.spec.ephemeralContainers[].envFrom

描述

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

类型

数组

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

描述

EnvFromSource 表示一组 ConfigMap 的来源。

类型

对象

属性 类型 描述

configMapRef

对象

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

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

prefix

字符串

一个可选标识符,用于预先添加到 ConfigMap 中的每个键。必须是 C_IDENTIFIER。

secretRef

对象

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

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

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

描述

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

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

类型

对象

属性 类型 描述

name

字符串

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

optional

布尔值

指定是否必须定义 ConfigMap。

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

描述

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

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

类型

对象

属性 类型 描述

name

字符串

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

optional

布尔值

指定是否必须定义 Secret。

.template.spec.ephemeralContainers[].lifecycle

描述

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

类型

对象

属性 类型 描述

postStart

对象

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

preStop

对象

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

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

描述

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

类型

对象

属性 类型 描述

exec

对象

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

httpGet

对象

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

sleep

对象

SleepAction 描述了“sleep”操作。

tcpSocket

对象

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

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

描述

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

类型

对象

属性 类型 描述

命令

数组 (字符串)

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

IntOrString

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

scheme

字符串

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

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值。

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

描述

SleepAction 描述了“sleep”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

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

描述

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

类型

对象

属性 类型 描述

exec

对象

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

httpGet

对象

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

sleep

对象

SleepAction 描述了“sleep”操作。

tcpSocket

对象

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

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

描述

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

类型

对象

属性 类型 描述

命令

数组 (字符串)

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

IntOrString

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

scheme

字符串

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

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值。

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

描述

SleepAction 描述了“sleep”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.template.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。

timeoutSeconds

整数

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

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

描述

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

类型

对象

属性 类型 描述

命令

数组 (字符串)

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

port

整数

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

service

字符串

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

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

IntOrString

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

scheme

字符串

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

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.template.spec.ephemeralContainers[].ports

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • containerPort

属性 类型 描述

containerPort

整数

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

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

字符串

hostIP

hostPort

整数

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

name

字符串

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

protocol

字符串

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

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

.template.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。

timeoutSeconds

整数

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

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

描述

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

类型

对象

属性 类型 描述

命令

数组 (字符串)

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

port

整数

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

service

字符串

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

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

IntOrString

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

scheme

字符串

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

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.template.spec.ephemeralContainers[].resizePolicy

描述

容器的资源调整策略。

类型

数组

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

描述

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

类型

对象

必需
  • resourceName

  • restartPolicy

属性 类型 描述

resourceName

字符串

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

restartPolicy

字符串

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

.template.spec.ephemeralContainers[].resources

描述

ResourceRequirements 描述了计算资源需求。

类型

对象

属性 类型 描述

claims

数组

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

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

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

claims[]

对象

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

limits

对象 (数量)

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

requests

对象 (数量)

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

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

描述

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

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

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

类型

数组

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

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

.template.spec.ephemeralContainers[].securityContext

描述

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

类型

对象

属性 类型 描述

allowPrivilegeEscalation

布尔值

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

appArmorProfile

对象

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

capabilities

对象

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

privileged

布尔值

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

procMount

字符串

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

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

readOnlyRootFilesystem

布尔值

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

runAsGroup

整数

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

runAsNonRoot

布尔值

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

runAsUser

整数

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

seLinuxOptions

对象

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

seccompProfile

对象

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

windowsOptions

对象

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

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

描述

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

类型

对象

必需
  • type

属性 类型 描述

localhostProfile

字符串

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

type

字符串

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

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

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

描述

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

类型

对象

属性 类型 描述

add

数组 (字符串)

添加的功能

drop

数组 (字符串)

删除的功能

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

描述

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

类型

对象

属性 类型 描述

level

字符串

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

role

字符串

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

type

字符串

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

user

字符串

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

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

描述

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

类型

对象

必需
  • type

属性 类型 描述

localhostProfile

字符串

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

type

字符串

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

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

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

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

描述

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

类型

对象

属性 类型 描述

gmsaCredentialSpec

字符串

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

gmsaCredentialSpecName

字符串

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

hostProcess

布尔值

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

runAsUserName

字符串

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

.template.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。

timeoutSeconds

整数

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

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

描述

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

类型

对象

属性 类型 描述

命令

数组 (字符串)

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

port

整数

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

service

字符串

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

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

IntOrString

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

scheme

字符串

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

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.template.spec.ephemeralContainers[].volumeDevices

描述

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

类型

数组

.template.spec.ephemeralContainers[].volumeDevices[]

描述

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

类型

对象

必需
  • name

  • devicePath

属性 类型 描述

devicePath

字符串

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

name

字符串

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

.template.spec.ephemeralContainers[].volumeMounts

描述

要挂载到容器文件系统的 pod 卷。临时容器不允许使用子路径挂载。

类型

数组

.template.spec.ephemeralContainers[].volumeMounts[]

描述

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

类型

对象

必需
  • name

  • mountPath

属性 类型 描述

mountPath

字符串

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

mountPropagation

字符串

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

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

name

字符串

这必须与卷的名称匹配。

readOnly

布尔值

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

recursiveReadOnly

字符串

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

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

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

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

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

subPath

字符串

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

subPathExpr

字符串

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

.template.spec.hostAliases

描述

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

类型

数组

.template.spec.hostAliases[]

描述

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

类型

对象

必需
  • IP地址

属性 类型 描述

主机名

数组 (字符串)

上述IP地址的主机名。

IP地址

字符串

主机文件条目的IP地址。

.template.spec.imagePullSecrets

描述

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

类型

数组

.template.spec.imagePullSecrets[]

描述

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

类型

对象

属性 类型 描述

name

字符串

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

.template.spec.initContainers

描述

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

类型

数组

.template.spec.initContainers[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

args

数组 (字符串)

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

命令

数组 (字符串)

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

环境变量

数组

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

env[]

对象

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

环境变量来源

数组

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

envFrom[]

对象

EnvFromSource 表示一组 ConfigMap 的来源。

镜像

字符串

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

镜像拉取策略

字符串

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

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

生命周期

对象

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

存活性探针

对象

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

name

字符串

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

端口

数组

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

ports[]

对象

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

就绪探针

对象

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

调整策略

数组

容器的资源调整策略。

resizePolicy[]

对象

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

资源

对象

ResourceRequirements 描述了计算资源需求。

restartPolicy

字符串

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

securityContext

对象

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

启动探针

对象

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

标准输入

布尔值

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

一次性标准输入

布尔值

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

终止消息路径

字符串

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

终止消息策略

字符串

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

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

TTY

布尔值

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

volumeDevices

数组

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

volumeDevices[]

对象

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

volumeMounts

数组

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

volumeMounts[]

对象

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

workingDir

字符串

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

.template.spec.initContainers[].env

描述

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

类型

数组

.template.spec.initContainers[].env[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

value

字符串

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

valueFrom

对象

EnvVarSource 表示 EnvVar 值的来源。

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

描述

EnvVarSource 表示 EnvVar 值的来源。

类型

对象

属性 类型 描述

configMapKeyRef

对象

从 ConfigMap 中选择一个键。

fieldRef

对象

ObjectFieldSelector 选择对象的 APIVersioned 字段。

resourceFieldRef

对象

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

secretKeyRef

对象

SecretKeySelector 选择 Secret 的一个键。

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

描述

从 ConfigMap 中选择一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

name

字符串

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

optional

布尔值

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

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

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

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

fieldPath

字符串

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

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

描述

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

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

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

divisor

Quantity

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

resource

字符串

必需:要选择的资源。

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

描述

SecretKeySelector 选择 Secret 的一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

name

字符串

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

optional

布尔值

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

.template.spec.initContainers[].envFrom

描述

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

类型

数组

.template.spec.initContainers[].envFrom[]

描述

EnvFromSource 表示一组 ConfigMap 的来源。

类型

对象

属性 类型 描述

configMapRef

对象

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

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

prefix

字符串

一个可选标识符,用于预先添加到 ConfigMap 中的每个键。必须是 C_IDENTIFIER。

secretRef

对象

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

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

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

描述

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

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

类型

对象

属性 类型 描述

name

字符串

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

optional

布尔值

指定是否必须定义 ConfigMap。

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

描述

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

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

类型

对象

属性 类型 描述

name

字符串

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

optional

布尔值

指定是否必须定义 Secret。

.template.spec.initContainers[].lifecycle

描述

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

类型

对象

属性 类型 描述

postStart

对象

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

preStop

对象

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

.template.spec.initContainers[].lifecycle.postStart

描述

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

类型

对象

属性 类型 描述

exec

对象

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

httpGet

对象

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

sleep

对象

SleepAction 描述了“sleep”操作。

tcpSocket

对象

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

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

描述

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

类型

对象

属性 类型 描述

命令

数组 (字符串)

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

IntOrString

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

scheme

字符串

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

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值。

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

描述

SleepAction 描述了“sleep”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

IntOrString

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

.template.spec.initContainers[].lifecycle.preStop

描述

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

类型

对象

属性 类型 描述

exec

对象

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

httpGet

对象

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

sleep

对象

SleepAction 描述了“sleep”操作。

tcpSocket

对象

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

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

描述

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

类型

对象

属性 类型 描述

命令

数组 (字符串)

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

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

IntOrString

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

scheme

字符串

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

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

.template.spec.initContainers[].lifecycle.preStop.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.template.spec.initContainers[].lifecycle.preStop.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头。

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

标头字段名称。这将在输出时被规范化,因此大小写不同的名称将被理解为相同的标头。

value

字符串

标头字段值。

.template.spec.initContainers[].lifecycle.preStop.sleep

描述

SleepAction 描述了“sleep”操作。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

.template.spec.initContainers[].lifecycle.preStop.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 Pod IP。

port

IntOrString

要访问容器的端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.template.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。

timeoutSeconds

整数

探测超时之前的秒数。默认为 1 秒。最小值为 1。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

.template.spec.initContainers[].livenessProbe.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

命令

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是被 exec 执行,它不在 shell 内运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,您需要显式调用该 shell。退出状态 0 被视为活动/健康状态,非零状态为不健康状态。

.template.spec.initContainers[].livenessProbe.grpc

描述

GRPC 指定涉及 GRPC 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

port

整数

gRPC 服务的端口号。数字必须在 1 到 65535 的范围内。

service

字符串

Service 是要放入 gRPC HealthCheckRequest 中的服务名称(参见 https://github.com/grpc/grpc/blob/master/doc/health-checking.md)。

如果未指定此项,则默认行为由 gRPC 定义。

.template.spec.initContainers[].livenessProbe.httpGet

描述

HTTPGetAction 描述了基于 HTTP Get 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 Pod IP。您可能想要在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头。

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器的端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- `“HTTP”` 表示使用的方案将是 http:// - `“HTTPS”` 表示使用的方案将是 https://

.template.spec.initContainers[].livenessProbe.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.template.spec.initContainers[].livenessProbe.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头。

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

标头字段名称。这将在输出时被规范化,因此大小写不同的名称将被理解为相同的标头。

value

字符串

标头字段值。

.template.spec.initContainers[].livenessProbe.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 Pod IP。

port

IntOrString

要访问容器的端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.template.spec.initContainers[].ports

描述

要从容器中暴露的端口列表。此处不指定端口并不会阻止该端口被暴露。容器内侦听默认“0.0.0.0”地址的任何端口都将可从网络访问。使用战略合并补丁修改此数组可能会损坏数据。有关更多信息,请参阅 https://github.com/kubernetes/kubernetes/issues/108255。无法更新。

类型

数组

.template.spec.initContainers[].ports[]

描述

ContainerPort 表示单个容器中的网络端口。

类型

对象

必需
  • containerPort

属性 类型 描述

containerPort

整数

要在 Pod 的 IP 地址上公开的端口号。这必须是一个有效的端口号,0 < x < 65536。

将外部端口绑定到的主机 IP。

字符串

hostIP

hostPort

整数

要在主机上公开的端口号。如果指定,这必须是一个有效的端口号,0 < x < 65536。如果指定了 HostNetwork,则这必须与 ContainerPort 匹配。大多数容器不需要这个。

name

字符串

如果指定,这必须是 IANA_SVC_NAME 并且在 Pod 内唯一。Pod 中的每个命名端口必须具有唯一的名称。可以被服务引用的端口名称。

protocol

字符串

端口协议。必须是 UDP、TCP 或 SCTP。默认为“TCP”。

可能的枚举值:- "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

.template.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。

timeoutSeconds

整数

探测超时之前的秒数。默认为 1 秒。最小值为 1。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

.template.spec.initContainers[].readinessProbe.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

命令

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是被 exec 执行,它不在 shell 内运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,您需要显式调用该 shell。退出状态 0 被视为活动/健康状态,非零状态为不健康状态。

.template.spec.initContainers[].readinessProbe.grpc

描述

GRPC 指定涉及 GRPC 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

port

整数

gRPC 服务的端口号。数字必须在 1 到 65535 的范围内。

service

字符串

Service 是要放入 gRPC HealthCheckRequest 中的服务名称(参见 https://github.com/grpc/grpc/blob/master/doc/health-checking.md)。

如果未指定此项,则默认行为由 gRPC 定义。

.template.spec.initContainers[].readinessProbe.httpGet

描述

HTTPGetAction 描述了基于 HTTP Get 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 Pod IP。您可能想要在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头。

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器的端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- `“HTTP”` 表示使用的方案将是 http:// - `“HTTPS”` 表示使用的方案将是 https://

.template.spec.initContainers[].readinessProbe.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.template.spec.initContainers[].readinessProbe.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头。

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

标头字段名称。这将在输出时被规范化,因此大小写不同的名称将被理解为相同的标头。

value

字符串

标头字段值。

.template.spec.initContainers[].readinessProbe.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 Pod IP。

port

IntOrString

要访问容器的端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.template.spec.initContainers[].resizePolicy

描述

容器的资源调整策略。

类型

数组

.template.spec.initContainers[].resizePolicy[]

描述

ContainerResizePolicy 表示容器的资源调整策略。

类型

对象

必需
  • resourceName

  • restartPolicy

属性 类型 描述

resourceName

字符串

此资源大小调整策略适用的资源名称。支持的值:cpu、memory。

restartPolicy

字符串

调整指定资源大小时要应用的重启策略。如果未指定,则默认为 NotRequired。

.template.spec.initContainers[].resources

描述

ResourceRequirements 描述了计算资源需求。

类型

对象

属性 类型 描述

claims

数组

Claims 列出了此容器使用的资源名称,这些资源在 spec.resourceClaims 中定义。

这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能门。

此字段是不可变的。它只能为容器设置。

claims[]

对象

ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。

limits

对象 (数量)

Limits 描述了允许使用的最大计算资源量。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

requests

对象 (数量)

Requests 描述了所需的最小计算资源量。如果容器省略了 Requests,则默认为 Limits(如果明确指定),否则默认为实现定义的值。Requests 不能超过 Limits。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

.template.spec.initContainers[].resources.claims

描述

Claims 列出了此容器使用的资源名称,这些资源在 spec.resourceClaims 中定义。

这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能门。

此字段是不可变的。它只能为容器设置。

类型

数组

.template.spec.initContainers[].resources.claims[]

描述

ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

名称必须与使用此字段的 Pod 的 pod.spec.resourceClaims 中的一个条目的名称匹配。它使该资源在容器内可用。

.template.spec.initContainers[].securityContext

描述

SecurityContext 包含将应用于容器的安全配置。某些字段同时存在于 SecurityContext 和 PodSecurityContext 中。同时设置两者时,SecurityContext 中的值优先。

类型

对象

属性 类型 描述

allowPrivilegeEscalation

布尔值

AllowPrivilegeEscalation 控制进程是否可以获得比其父进程更多的权限。此布尔值直接控制 no_new_privs 标志是否将设置在容器进程上。当容器满足以下条件时,AllowPrivilegeEscalation 始终为 true:1) 作为特权运行 2) 具有 CAP_SYS_ADMIN 请注意,当 spec.os.name 为 windows 时,无法设置此字段。

appArmorProfile

对象

AppArmorProfile 定义 Pod 或容器的 AppArmor 设置。

capabilities

对象

向运行的容器添加和删除 POSIX 功能。

privileged

布尔值

以特权模式运行容器。特权容器中的进程与主机上的 root 权限基本等效。默认为 false。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

procMount

字符串

procMount 表示要用于容器的 proc 挂载类型。默认为 DefaultProcMount,它使用容器运行时对只读路径和屏蔽路径的默认设置。这需要启用 ProcMountType 功能标志。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

可能的枚举值:- "Default" 使用容器运行时对 /proc 的只读路径和屏蔽路径的默认设置。大多数容器运行时都会屏蔽 /proc 中的某些路径,以避免意外地暴露特殊设备或信息的安全风险。- "Unmasked" 会绕过容器运行时的默认屏蔽行为,并确保新创建的 /proc 容器保持不变,没有任何修改。

readOnlyRootFilesystem

布尔值

此容器是否具有只读根文件系统。默认为 false。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

runAsGroup

整数

运行容器进程入口点的 GID。如果未设置,则使用运行时默认值。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

runAsNonRoot

布尔值

指示容器必须以非 root 用户身份运行。如果为 true,则 Kubelet 将在运行时验证镜像以确保其不以 UID 0(root)身份运行,如果以 UID 0 身份运行则会失败启动容器。如果未设置或为 false,则不会执行此类验证。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了该值,则 SecurityContext 中指定的值优先。

runAsUser

整数

运行容器进程入口点的 UID。如果未指定,则默认为镜像元数据中指定的用户。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了该值,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

seLinuxOptions

对象

SELinuxOptions 是要应用于容器的标签。

seccompProfile

对象

SeccompProfile 定义 pod/容器的 seccomp 配置文件设置。只能设置一个配置文件源。

windowsOptions

对象

WindowsSecurityContextOptions 包含 Windows 特定的选项和凭据。

.template.spec.initContainers[].securityContext.appArmorProfile

描述

AppArmorProfile 定义 Pod 或容器的 AppArmor 设置。

类型

对象

必需
  • type

属性 类型 描述

localhostProfile

字符串

localhostProfile 指示应使用节点上加载的配置文件。该配置文件必须预先配置在节点上才能工作。必须与配置文件的加载名称匹配。当且仅当 type 为“Localhost”时才必须设置。

type

字符串

type 指示将应用哪种类型的 AppArmor 配置文件。有效选项包括:Localhost - 节点上预加载的配置文件;RuntimeDefault - 容器运行时的默认配置文件;Unconfined - 没有 AppArmor 限制。

可能的枚举值:- "Localhost" 指示应使用节点上预加载的配置文件。- "RuntimeDefault" 指示应使用容器运行时的默认 AppArmor 配置文件。- "Unconfined" 指示不应强制执行任何 AppArmor 配置文件。

.template.spec.initContainers[].securityContext.capabilities

描述

向运行的容器添加和删除 POSIX 功能。

类型

对象

属性 类型 描述

add

数组 (字符串)

添加的功能

drop

数组 (字符串)

删除的功能

.template.spec.initContainers[].securityContext.seLinuxOptions

描述

SELinuxOptions 是要应用于容器的标签。

类型

对象

属性 类型 描述

level

字符串

Level 是应用于容器的 SELinux 级别标签。

role

字符串

Role 是应用于容器的 SELinux 角色标签。

type

字符串

Type 是应用于容器的 SELinux 类型标签。

user

字符串

User 是应用于容器的 SELinux 用户标签。

.template.spec.initContainers[].securityContext.seccompProfile

描述

SeccompProfile 定义 pod/容器的 seccomp 配置文件设置。只能设置一个配置文件源。

类型

对象

必需
  • type

属性 类型 描述

localhostProfile

字符串

localhostProfile 指示应使用节点上文件中定义的配置文件。该配置文件必须预先配置在节点上才能工作。必须是相对于 kubelet 配置的 seccomp 配置文件位置的递减路径。如果 type 为“Localhost”,则必须设置。对于任何其他类型,都不得设置。

type

字符串

type 指示将应用哪种类型的 seccomp 配置文件。有效选项包括:

Localhost - 应使用节点上文件中定义的配置文件。RuntimeDefault - 应使用容器运行时的默认配置文件。Unconfined - 不应应用任何配置文件。

可能的枚举值:- "Localhost" 指示应使用节点上文件中定义的配置文件。该文件相对于 <kubelet-root-dir>/seccomp。- "RuntimeDefault" 代表默认的容器运行时 seccomp 配置文件。- "Unconfined" 指示不应用任何 seccomp 配置文件(又称无限制)。

.template.spec.initContainers[].securityContext.windowsOptions

描述

WindowsSecurityContextOptions 包含 Windows 特定的选项和凭据。

类型

对象

属性 类型 描述

gmsaCredentialSpec

字符串

GMSACredentialSpec 是 GMSA 准入 Webhook (https://github.com/kubernetes-sigs/windows-gmsa) 内联 GMSACredentialSpecName 字段命名的 GMSA 凭据规范内容的位置。

gmsaCredentialSpecName

字符串

GMSACredentialSpecName 是要使用的 GMSA 凭据规范的名称。

hostProcess

布尔值

HostProcess 确定是否应将容器作为“主机进程”容器运行。Pod 的所有容器都必须具有相同的有效 HostProcess 值(不允许混合使用 HostProcess 容器和非 HostProcess 容器)。此外,如果 HostProcess 为 true,则 HostNetwork 也必须设置为 true。

runAsUserName

字符串

Windows 中运行容器进程入口点的用户名。如果未指定,则默认为镜像元数据中指定的用户。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了该值,则 SecurityContext 中指定的值优先。

.template.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。

timeoutSeconds

整数

探测超时之前的秒数。默认为 1 秒。最小值为 1。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

.template.spec.initContainers[].startupProbe.exec

描述

ExecAction 描述了“在容器中运行”的操作。

类型

对象

属性 类型 描述

命令

数组 (字符串)

Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录('/')。该命令只是被 exec 执行,它不在 shell 内运行,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,您需要显式调用该 shell。退出状态 0 被视为活动/健康状态,非零状态为不健康状态。

.template.spec.initContainers[].startupProbe.grpc

描述

GRPC 指定涉及 GRPC 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

port

整数

gRPC 服务的端口号。数字必须在 1 到 65535 的范围内。

service

字符串

Service 是要放入 gRPC HealthCheckRequest 中的服务名称(参见 https://github.com/grpc/grpc/blob/master/doc/health-checking.md)。

如果未指定此项,则默认行为由 gRPC 定义。

.template.spec.initContainers[].startupProbe.httpGet

描述

HTTPGetAction 描述了基于 HTTP Get 请求的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

要连接到的主机名,默认为 Pod IP。您可能想要在 httpHeaders 中设置“Host”。

httpHeaders

数组

要在请求中设置的自定义标头。HTTP 允许重复标头。

httpHeaders[]

对象

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头。

path

字符串

在 HTTP 服务器上访问的路径。

port

IntOrString

要访问容器的端口的名称或编号。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

scheme

字符串

用于连接到主机的方案。默认为 HTTP。

可能的枚举值:- `“HTTP”` 表示使用的方案将是 http:// - `“HTTPS”` 表示使用的方案将是 https://

.template.spec.initContainers[].startupProbe.httpGet.httpHeaders

描述

要在请求中设置的自定义标头。HTTP 允许重复标头。

类型

数组

.template.spec.initContainers[].startupProbe.httpGet.httpHeaders[]

描述

HTTPHeader 描述了要在 HTTP 探测中使用的自定义标头。

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

标头字段名称。这将在输出时被规范化,因此大小写不同的名称将被理解为相同的标头。

value

字符串

标头字段值。

.template.spec.initContainers[].startupProbe.tcpSocket

描述

TCPSocketAction 描述了基于打开套接字的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

可选:要连接到的主机名,默认为 Pod IP。

port

IntOrString

要访问容器的端口的编号或名称。数字必须在 1 到 65535 的范围内。名称必须是 IANA_SVC_NAME。

.template.spec.initContainers[].volumeDevices

描述

volumeDevices 是容器将要使用的块设备列表。

类型

数组

.template.spec.initContainers[].volumeDevices[]

描述

volumeDevice 描述了容器内原始块设备的映射。

类型

对象

必需
  • name

  • devicePath

属性 类型 描述

devicePath

字符串

devicePath 是容器内设备将映射到的路径。

name

字符串

name 必须与 pod 中的 persistentVolumeClaim 的名称匹配。

.template.spec.initContainers[].volumeMounts

描述

要挂载到容器文件系统的 Pod 卷。无法更新。

类型

数组

.template.spec.initContainers[].volumeMounts[]

描述

VolumeMount 描述了在容器内挂载卷。

类型

对象

必需
  • name

  • mountPath

属性 类型 描述

mountPath

字符串

容器内应挂载卷的路径。不得包含 ':'。

mountPropagation

字符串

mountPropagation 决定如何将挂载从主机传播到容器,反之亦然。未设置时,使用 MountPropagationNone。此字段在 1.10 中为 Beta 版。当 RecursiveReadOnly 设置为 IfPossible 或 Enabled 时,MountPropagation 必须为 None 或未指定(默认为 None)。

可能的枚举值:- "Bidirectional" 表示容器中的卷将接收来自主机或其他容器的新挂载,并且它自己的挂载将从容器传播到主机或其他容器。请注意,此模式递归应用于卷中的所有挂载(在 Linux 术语中为“rshared”)。- "HostToContainer" 表示容器中的卷将接收来自主机或其他容器的新挂载,但容器内挂载的文件系统不会传播到主机或其他容器。请注意,此模式递归应用于卷中的所有挂载(在 Linux 术语中为“rslave”)。- "None" 表示容器中的卷不会接收来自主机或其他容器的新挂载,并且容器内挂载的文件系统不会传播到主机或其他容器。请注意,此模式对应于 Linux 术语中的“private”。

name

字符串

这必须与卷的名称匹配。

readOnly

布尔值

如果为 true,则以只读方式挂载;否则以读写方式挂载(false 或未指定)。默认为 false。

recursiveReadOnly

字符串

RecursiveReadOnly 指定是否应递归处理只读挂载。

如果 ReadOnly 为 false,则此字段无意义且必须未指定。

如果 ReadOnly 为 true,并且此字段设置为 Disabled,则不会递归地将挂载设置为只读。如果此字段设置为 IfPossible,则如果容器运行时支持,则会递归地将挂载设置为只读。如果此字段设置为 Enabled,则如果容器运行时支持,则会递归地将挂载设置为只读;否则,pod 将不会启动,并且会生成错误以指示原因。

如果此字段设置为 IfPossible 或 Enabled,则 MountPropagation 必须设置为 None(或未指定,默认为 None)。

如果未指定此字段,则将其视为与 Disabled 等效。

subPath

字符串

容器卷应从中挂载的卷内的路径。默认为 ""(卷的根目录)。

subPathExpr

字符串

容器卷应从中挂载的卷内的展开路径。其行为类似于 SubPath,但环境变量引用 $(VAR_NAME) 将使用容器的环境进行展开。默认为 ""(卷的根目录)。SubPathExpr 和 SubPath 是互斥的。

.template.spec.os

描述

PodOS 定义 pod 的操作系统参数。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

名称是操作系统的名称。当前支持的值为linux和windows。将来可能会定义其他值,并且可以是以下值之一: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration 客户端应该能够处理其他值,并将此字段中无法识别的值视为os: null

.template.spec.readinessGates

描述

如果指定,则将评估所有就绪门以确定 pod 就绪状态。当所有容器都就绪并且就绪门中指定的所有条件的状态都等于“True”时,pod 就绪。更多信息:https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates

类型

数组

.template.spec.readinessGates[]

描述

PodReadinessGate 包含对 pod 条件的引用。

类型

对象

必需
  • conditionType

属性 类型 描述

conditionType

字符串

ConditionType 指的是 pod 条件列表中类型匹配的条件。

.template.spec.resourceClaims

描述

ResourceClaims 定义了在允许 Pod 启动之前必须分配和保留哪些 ResourceClaims。这些资源将通过名称提供给使用它们的容器。

这是一个 alpha 字段,需要启用 DynamicResourceAllocation 功能门。

此字段是不可变的。

类型

数组

.template.spec.resourceClaims[]

描述

PodResourceClaim 通过 ClaimSource 精确引用一个 ResourceClaim。它向其中添加一个名称,该名称唯一地标识 Pod 内的 ResourceClaim。需要访问 ResourceClaim 的容器使用此名称引用它。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

名称唯一标识 pod 内部的此资源声明。这必须是 DNS_LABEL。

来源

对象

ClaimSource 描述对 ResourceClaim 的引用。

这些字段中应该只设置一个。此类型的使用者必须将空对象视为具有未知值。

.template.spec.resourceClaims[].source

描述

ClaimSource 描述对 ResourceClaim 的引用。

这些字段中应该只设置一个。此类型的使用者必须将空对象视为具有未知值。

类型

对象

属性 类型 描述

resourceClaimName

字符串

ResourceClaimName 是与该 pod 位于同一命名空间中的 ResourceClaim 对象的名称。

resourceClaimTemplateName

字符串

ResourceClaimTemplateName 是与该 pod 位于同一命名空间中的 ResourceClaimTemplate 对象的名称。

该模板将用于创建一个新的 ResourceClaim,该 ResourceClaim 将绑定到此 pod。删除此 pod 时,ResourceClaim 也将被删除。pod 名称和资源名称以及生成的组件将用于为 ResourceClaim 形成一个唯一名称,该名称将记录在 pod.status.resourceClaimStatuses 中。

此字段是不可变的,创建 ResourceClaim 后,控制平面将不会对相应的 ResourceClaim 进行任何更改。

.template.spec.schedulingGates

描述

SchedulingGates 是一个不透明的值列表,如果指定,则会阻止调度 pod。如果 schedulingGates 不为空,则 pod 将保持在 SchedulingGated 状态,并且调度器将不会尝试调度 pod。

调度网关只能在 Pod 创建时设置,之后才能移除。

类型

数组

.template.spec.schedulingGates[]

描述

PodSchedulingGate 与 Pod 关联,用于保护其调度。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

调度门的名称。每个调度门必须具有唯一的名称字段。

.template.spec.securityContext

描述

PodSecurityContext 包含 Pod 级别的安全属性和公共容器设置。某些字段也存在于 container.securityContext 中。container.securityContext 的字段值优先于 PodSecurityContext 的字段值。

类型

对象

属性 类型 描述

appArmorProfile

对象

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" 指示只有当根目录的权限和所有权与卷上的预期权限不匹配时,才会更改卷的所有权和权限。这可以帮助缩短更改卷的所有权和权限所需的时间。

runAsGroup

整数

运行容器进程入口点的 GID。如果未设置,则使用运行时默认值。也可以在 SecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值将优先于该容器。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

runAsNonRoot

布尔值

指示容器必须以非 root 用户身份运行。如果为 true,则 Kubelet 将在运行时验证映像以确保它不以 UID 0(root)身份运行,如果确实如此,则会失败启动容器。如果未设置或为 false,则不会执行此类验证。也可以在 SecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值将优先。

runAsUser

整数

运行容器进程入口点的 UID。如果未指定,则默认为映像元数据中指定的用户。也可以在 SecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值将优先于该容器。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

seLinuxOptions

对象

SELinuxOptions 是要应用于容器的标签。

seccompProfile

对象

SeccompProfile 定义 pod/容器的 seccomp 配置文件设置。只能设置一个配置文件源。

supplementalGroups

数组(整数)

除了容器的主 GID、fsGroup(如果指定)和容器映像中为容器进程的 uid 定义的组成员资格外,应用于每个容器中运行的第一个进程的一组组列表。如果未指定,则不会向任何容器添加其他组。请注意,即使容器映像中为容器进程的 uid 定义的组成员资格未包含在此列表中,它们仍然有效。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

sysctls

数组

Sysctls 保存用于 pod 的命名空间 sysctls 列表。具有不受支持的 sysctls(由容器运行时)的 pod 可能会启动失败。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

sysctls[]

对象

Sysctl 定义要设置的内核参数。

windowsOptions

对象

WindowsSecurityContextOptions 包含 Windows 特定的选项和凭据。

.template.spec.securityContext.appArmorProfile

描述

AppArmorProfile 定义 Pod 或容器的 AppArmor 设置。

类型

对象

必需
  • type

属性 类型 描述

localhostProfile

字符串

localhostProfile 指示应使用节点上加载的配置文件。该配置文件必须预先配置在节点上才能工作。必须与配置文件的加载名称匹配。当且仅当 type 为“Localhost”时才必须设置。

type

字符串

type 指示将应用哪种类型的 AppArmor 配置文件。有效选项包括:Localhost - 节点上预加载的配置文件;RuntimeDefault - 容器运行时的默认配置文件;Unconfined - 没有 AppArmor 限制。

可能的枚举值:- "Localhost" 指示应使用节点上预加载的配置文件。- "RuntimeDefault" 指示应使用容器运行时的默认 AppArmor 配置文件。- "Unconfined" 指示不应强制执行任何 AppArmor 配置文件。

.template.spec.securityContext.seLinuxOptions

描述

SELinuxOptions 是要应用于容器的标签。

类型

对象

属性 类型 描述

level

字符串

Level 是应用于容器的 SELinux 级别标签。

role

字符串

Role 是应用于容器的 SELinux 角色标签。

type

字符串

Type 是应用于容器的 SELinux 类型标签。

user

字符串

User 是应用于容器的 SELinux 用户标签。

.template.spec.securityContext.seccompProfile

描述

SeccompProfile 定义 pod/容器的 seccomp 配置文件设置。只能设置一个配置文件源。

类型

对象

必需
  • type

属性 类型 描述

localhostProfile

字符串

localhostProfile 指示应使用节点上文件中定义的配置文件。该配置文件必须预先配置在节点上才能工作。必须是相对于 kubelet 配置的 seccomp 配置文件位置的递减路径。如果 type 为“Localhost”,则必须设置。对于任何其他类型,都不得设置。

type

字符串

type 指示将应用哪种类型的 seccomp 配置文件。有效选项包括:

Localhost - 应使用节点上文件中定义的配置文件。RuntimeDefault - 应使用容器运行时的默认配置文件。Unconfined - 不应应用任何配置文件。

可能的枚举值:- "Localhost" 指示应使用节点上文件中定义的配置文件。该文件相对于 <kubelet-root-dir>/seccomp。- "RuntimeDefault" 代表默认的容器运行时 seccomp 配置文件。- "Unconfined" 指示不应用任何 seccomp 配置文件(又称无限制)。

.template.spec.securityContext.sysctls

描述

Sysctls 保存用于 pod 的命名空间 sysctls 列表。具有不受支持的 sysctls(由容器运行时)的 pod 可能会启动失败。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

类型

数组

.template.spec.securityContext.sysctls[]

描述

Sysctl 定义要设置的内核参数。

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

要设置的属性名称

value

字符串

要设置的属性值

.template.spec.securityContext.windowsOptions

描述

WindowsSecurityContextOptions 包含 Windows 特定的选项和凭据。

类型

对象

属性 类型 描述

gmsaCredentialSpec

字符串

GMSACredentialSpec 是 GMSA 准入 Webhook (https://github.com/kubernetes-sigs/windows-gmsa) 内联 GMSACredentialSpecName 字段命名的 GMSA 凭据规范内容的位置。

gmsaCredentialSpecName

字符串

GMSACredentialSpecName 是要使用的 GMSA 凭据规范的名称。

hostProcess

布尔值

HostProcess 确定是否应将容器作为“主机进程”容器运行。Pod 的所有容器都必须具有相同的有效 HostProcess 值(不允许混合使用 HostProcess 容器和非 HostProcess 容器)。此外,如果 HostProcess 为 true,则 HostNetwork 也必须设置为 true。

runAsUserName

字符串

Windows 中运行容器进程入口点的用户名。如果未指定,则默认为镜像元数据中指定的用户。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了该值,则 SecurityContext 中指定的值优先。

.template.spec.tolerations

描述

如果指定,则为 Pod 的容忍度。

类型

数组

.template.spec.tolerations[]

描述

此容忍度附加到的 Pod 容忍任何与三元组 <key,value,effect> 匹配的污点,使用匹配运算符 <operator>。

类型

对象

属性 类型 描述

作用

字符串

作用指示要匹配的污点作用。空表示匹配所有污点作用。如果指定,允许的值为NoSchedule、PreferNoSchedule和NoExecute。

可能的枚举值:- "NoExecute" 驱逐任何不宽容该污点的已运行 Pod。目前由 NodeController 强制执行。- "NoSchedule" 除非 Pod 宽容该污点,否则不允许新 Pod 调度到节点上,但允许所有提交给 Kubelet(无需经过调度器)的 Pod 启动,并允许所有已运行的 Pod 继续运行。由调度器强制执行。- "PreferNoSchedule" 类似于 TaintEffectNoSchedule,但调度器尝试不将新 Pod 调度到节点上,而不是完全禁止将新 Pod 调度到节点上。由调度器强制执行。

key

字符串

键是容忍度适用的污点键。空表示匹配所有污点键。如果键为空,则运算符必须为 Exists;此组合表示匹配所有值和所有键。

operator

字符串

运算符表示键与值的关系。有效的运算符为 Exists 和 Equal。默认为 Equal。Exists 等效于值的通配符,因此 Pod 可以容忍特定类别的所有污点。

可能的枚举值:- "Equal" - "Exists"

容忍秒数

整数

TolerationSeconds 表示容忍度(必须为 NoExecute 作用,否则忽略此字段)容忍污点的持续时间。默认情况下,它未设置,这意味着永远容忍污点(不驱逐)。系统将零和负值视为 0(立即驱逐)。

value

字符串

值是容忍度匹配的污点值。如果运算符为 Exists,则值应为空,否则只是一个常规字符串。

.template.spec.topologySpreadConstraints

描述

TopologySpreadConstraints 描述了一组 Pod 如何跨拓扑域分布。调度程序将以遵守这些约束的方式调度 Pod。所有 topologySpreadConstraints 都是 AND 关系。

类型

数组

.template.spec.topologySpreadConstraints[]

描述

TopologySpreadConstraint 指定如何在给定的拓扑中分散匹配的 Pod。

类型

对象

必需
  • 最大偏差

  • topologyKey

  • 无法满足时的处理方式

属性 类型 描述

labelSelector

LabelSelector

LabelSelector 用于查找匹配的 Pod。匹配此标签选择器的 Pod 将被计数以确定其对应拓扑域中的 Pod 数量。

matchLabelKeys

数组 (字符串)

MatchLabelKeys 是一组 Pod 标签键,用于选择将对其计算传播的 Pod。这些键用于从传入的 Pod 标签中查找值,这些键值标签与 labelSelector 进行 AND 运算,以选择将为传入的 Pod 计算传播的现有 Pod 组。相同的键不允许同时存在于 MatchLabelKeys 和 LabelSelector 中。如果 LabelSelector 未设置,则不能设置 MatchLabelKeys。传入的 Pod 标签中不存在的键将被忽略。空列表或 null 列表表示仅与 labelSelector 匹配。

这是一个 Beta 字段,需要启用 MatchLabelKeysInPodTopologySpread 功能门(默认启用)。

最大偏差

整数

MaxSkew 描述了 Pod 分布不均匀的程度。当 whenUnsatisfiable=DoNotSchedule 时,它是目标拓扑中匹配 Pod 数量与全局最小值之间允许的最大差异。全局最小值是在合格域中匹配 Pod 的最小数量,如果合格域的数量小于 MinDomains,则为零。例如,在 3 个区域的集群中,MaxSkew 设置为 1,具有相同 labelSelector 的 Pod 分布为 2/2/1:在这种情况下,全局最小值为 1。| 区域 1 | 区域 2 | 区域 3 | | P P | P P | P | - 如果 MaxSkew 为 1,则传入的 Pod 只能调度到区域 3 以变为 2/2/2;将其调度到区域 1(区域 2)将使区域 1(区域 2)上的 ActualSkew(3-1)违反 MaxSkew(1)。- 如果 MaxSkew 为 2,则传入的 Pod 可以调度到任何区域。当 whenUnsatisfiable=ScheduleAnyway 时,它用于优先考虑满足它的拓扑。这是必需字段。默认值为 1,不允许为 0。

最小域数

整数

MinDomains 指示合格域的最小数量。当具有匹配拓扑键的合格域的数量小于 minDomains 时,Pod 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:| 区域 1 | 区域 2 | 区域 3 | | P P | P P | P P | 域的数量小于 5(MinDomains),因此“全局最小值”被视为 0。在这种情况下,具有相同 labelSelector 的新 Pod 无法调度,因为如果调度新 Pod 到三个区域中的任何一个,计算出的 skew 将为 3(3 - 0),它将违反 MaxSkew。

节点亲和性策略

字符串

NodeAffinityPolicy 指示在计算 Pod 拓扑传播偏差时,我们将如何处理 Pod 的 nodeAffinity/nodeSelector。选项包括:- Honor:仅包含计算中与 nodeAffinity/nodeSelector 匹配的节点。- Ignore:忽略 nodeAffinity/nodeSelector。所有节点都包含在计算中。

如果此值为 nil,则行为等效于 Honor 策略。这是一个默认由 NodeInclusionPolicyInPodTopologySpread 功能标志启用的 Beta 级功能。

可能的枚举值:- "Honor" 表示在计算 Pod 拓扑传播偏差时使用此调度指令。- "Ignore" 表示在计算 Pod 拓扑传播偏差时忽略此调度指令。

节点污点策略

字符串

NodeTaintsPolicy 指示在计算 Pod 拓扑传播偏差时,我们将如何处理节点污点。选项包括:- Honor:包含没有污点的节点以及传入 Pod 具有容忍度的污点节点。- Ignore:忽略节点污点。所有节点都包含在内。

如果此值为 nil,则行为等效于 Ignore 策略。这是一个默认由 NodeInclusionPolicyInPodTopologySpread 功能标志启用的 Beta 级功能。

可能的枚举值:- "Honor" 表示在计算 Pod 拓扑传播偏差时使用此调度指令。- "Ignore" 表示在计算 Pod 拓扑传播偏差时忽略此调度指令。

topologyKey

字符串

TopologyKey 是节点标签的键。具有此键和相同值的标签的节点被认为位于相同的拓扑中。我们将每个 <key, value> 视为一个“桶”,并尝试将均衡数量的 Pod 放入每个桶中。我们将域定义为拓扑的特定实例。此外,我们将合格域定义为其节点满足 nodeAffinityPolicy 和 nodeTaintsPolicy 要求的域。例如,如果 TopologyKey 为“kubernetes.io/hostname”,则每个节点都是该拓扑的域。并且,如果 TopologyKey 为“topology.kubernetes.io/zone”,则每个区域都是该拓扑的域。这是一个必需字段。

无法满足时的处理方式

字符串

WhenUnsatisfiable指示如果Pod不满足扩散约束该如何处理。- DoNotSchedule(默认)告诉调度程序不要调度它。- ScheduleAnyway告诉调度程序在任何位置调度Pod,但优先考虑有助于减少偏差的拓扑结构。当且仅当该Pod的所有可能的节点分配都会违反某个拓扑结构上的“MaxSkew”时,对传入的Pod而言,约束被认为是“Unsatisfiable”。例如,在3个区域的集群中,MaxSkew设置为1,并且具有相同labelSelector的Pod扩散为3/1/1:|区域1|区域2|区域3| | PPP | P | P |如果WhenUnsatisfiable设置为DoNotSchedule,则传入的Pod只能调度到区域2(区域3)以变为3/2/1(3/1/2),因为区域2(区域3)上的ActualSkew(2-1)满足MaxSkew(1)。换句话说,集群仍然可能不平衡,但调度程序不会使其不平衡。这是必需字段。

可能的枚举值:- "DoNotSchedule" 指示调度程序在不满足约束条件时不要调度Pod。- "ScheduleAnyway" 指示调度程序即使不满足约束条件也要调度Pod。

.template.spec.volumes

描述

Pod 中的容器可以挂载的卷列表。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes

类型

数组

.template.spec.volumes[]

描述

Volume 表示 Pod 中的命名卷,Pod 中的任何容器都可以访问它。

类型

对象

必需
  • name

属性 类型 描述

awsElasticBlockStore

对象

表示AWS中的持久性磁盘资源。

必须在挂载到容器之前创建AWS EBS磁盘。该磁盘还必须与kubelet位于同一个AWS区域。AWS EBS磁盘只能以读写方式挂载一次。AWS EBS卷支持所有权管理和SELinux重新标记。

azureDisk

对象

AzureDisk表示主机上的Azure数据磁盘挂载以及与Pod的绑定挂载。

azureFile

对象

AzureFile表示主机上的Azure文件服务挂载以及与Pod的绑定挂载。

cephfs

对象

表示持续Pod生命周期的Ceph文件系统挂载。Cephfs卷不支持所有权管理或SELinux重新标记。

cinder

对象

表示Openstack中的cinder卷资源。必须在挂载到容器之前创建Cinder卷。该卷还必须与kubelet位于同一区域。Cinder卷支持所有权管理和SELinux重新标记。

configMap

对象

将ConfigMap适配到卷中。

目标ConfigMap的Data字段的内容将作为文件显示在卷中,使用Data字段中的键作为文件名,除非items元素填充了键到路径的特定映射。ConfigMap卷支持所有权管理和SELinux重新标记。

csi

对象

表示由外部CSI驱动程序管理的要挂载的卷的源位置

downwardAPI

对象

DownwardAPIVolumeSource表示包含向下API信息的卷。Downward API卷支持所有权管理和SELinux重新标记。

emptyDir

对象

表示Pod的空目录。空目录卷支持所有权管理和SELinux重新标记。

ephemeral

对象

表示由普通存储驱动程序处理的临时卷。

fc

对象

表示光纤通道卷。光纤通道卷只能以读写方式挂载一次。光纤通道卷支持所有权管理和SELinux重新标记。

flexVolume

对象

FlexVolume表示使用基于exec的插件配置/附加的通用卷资源。

flocker

对象

表示由Flocker代理挂载的Flocker卷。datasetName和datasetUUID中只有一个应该设置。Flocker卷不支持所有权管理或SELinux重新标记。

gcePersistentDisk

对象

表示Google Compute Engine中的持久性磁盘资源。

必须在挂载到容器之前创建GCE PD。该磁盘还必须与kubelet位于同一个GCE项目和区域。GCE PD只能以读写方式挂载一次或以只读方式挂载多次。GCE PD支持所有权管理和SELinux重新标记。

gitRepo

对象

表示一个使用git仓库内容填充的卷。Git仓库卷不支持所有权管理。Git仓库卷支持SELinux重新标记。

已弃用:GitRepo已弃用。要使用git仓库配置容器,请将EmptyDir挂载到InitContainer中,使用git克隆仓库,然后将EmptyDir挂载到Pod的容器中。

glusterfs

对象

表示持续Pod生命周期的Glusterfs挂载。Glusterfs卷不支持所有权管理或SELinux重新标记。

hostPath

对象

表示映射到Pod的主机路径。主机路径卷不支持所有权管理或SELinux重新标记。

iscsi

对象

表示ISCSI磁盘。ISCSI卷只能以读写方式挂载一次。ISCSI卷支持所有权管理和SELinux重新标记。

name

字符串

卷的名称。必须是DNS_LABEL,并且在Pod内唯一。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

nfs

对象

表示持续Pod生命周期的NFS挂载。NFS卷不支持所有权管理或SELinux重新标记。

persistentVolumeClaim

对象

PersistentVolumeClaimVolumeSource引用同一命名空间中的用户PVC。此卷查找绑定的PV并为Pod挂载该卷。PersistentVolumeClaimVolumeSource本质上是对另一种由其他人(系统)拥有的卷类型的包装。

photonPersistentDisk

对象

表示Photon Controller持久性磁盘资源。

portworxVolume

对象

PortworxVolumeSource表示Portworx卷资源。

projected

对象

表示投影卷源

quobyte

对象

表示持续Pod生命周期的Quobyte挂载。Quobyte卷不支持所有权管理或SELinux重新标记。

rbd

对象

表示持续Pod生命周期的Rados块设备挂载。RBD卷支持所有权管理和SELinux重新标记。

scaleIO

对象

ScaleIOVolumeSource表示持久性ScaleIO卷

secret

对象

将Secret适配到卷中。

目标Secret的Data字段的内容将作为文件显示在卷中,使用Data字段中的键作为文件名。Secret卷支持所有权管理和SELinux重新标记。

storageos

对象

表示StorageOS持久性卷资源。

vsphereVolume

对象

表示vSphere卷资源。

.template.spec.volumes[].awsElasticBlockStore

描述

表示AWS中的持久性磁盘资源。

必须在挂载到容器之前创建AWS EBS磁盘。该磁盘还必须与kubelet位于同一个AWS区域。AWS EBS磁盘只能以读写方式挂载一次。AWS EBS卷支持所有权管理和SELinux重新标记。

类型

对象

必需
  • volumeID

属性 类型 描述

fsType

字符串

fsType 是您要挂载的卷的文件系统类型。提示:确保文件系统类型受主机操作系统支持。例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

partition

整数

partition 是您要挂载的卷中的分区。如果省略,则默认按卷名挂载。例如:对于卷 /dev/sda1,您将分区指定为“1”。类似地,/dev/sda 的卷分区为“0”(或者您可以留空此属性)。

readOnly

布尔值

readOnly 值为 true 将强制执行 VolumeMounts 中的 readOnly 设置。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

volumeID

字符串

volumeID 是 AWS(Amazon EBS 卷)中持久性磁盘资源的唯一 ID。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

.template.spec.volumes[].azureDisk

描述

AzureDisk表示主机上的Azure数据磁盘挂载以及与Pod的绑定挂载。

类型

对象

必需
  • diskName

  • diskURI

属性 类型 描述

cachingMode

字符串

cachingMode 是主机缓存模式:无、只读、读写。

可能的枚举值:- "None" - "ReadOnly" - "ReadWrite"

diskName

字符串

diskName 是 Blob 存储中数据磁盘的名称。

diskURI

字符串

diskURI 是 Blob 存储中数据磁盘的 URI。

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

kind

字符串

kind 预期值为 Shared:每个存储帐户允许多个 Blob 磁盘 Dedicated:每个存储帐户只有一个 Blob 磁盘 Managed:Azure 托管数据磁盘(仅在托管可用性集中)。默认为 shared

可能的枚举值:- "Dedicated" - "Managed" - "Shared"

readOnly

布尔值

readOnly 默认值为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

.template.spec.volumes[].azureFile

描述

AzureFile表示主机上的Azure文件服务挂载以及与Pod的绑定挂载。

类型

对象

必需
  • secretName

  • shareName

属性 类型 描述

readOnly

布尔值

readOnly 默认值为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

secretName

字符串

secretName 是包含 Azure 存储帐户名称和密钥的密钥的名称。

shareName

字符串

shareName 是 Azure 共享名称。

.template.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

.template.spec.volumes[].cephfs.secretRef

描述

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性允许为空。此处值为空的此类型实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.template.spec.volumes[].cinder

描述

表示Openstack中的cinder卷资源。必须在挂载到容器之前创建Cinder卷。该卷还必须与kubelet位于同一区域。Cinder卷支持所有权管理和SELinux重新标记。

类型

对象

必需
  • volumeID

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

readOnly

布尔值

readOnly 默认值为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

secretRef

对象

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

volumeID

字符串

volumeID 用于在 cinder 中标识卷。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

.template.spec.volumes[].cinder.secretRef

描述

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性允许为空。此处值为空的此类型实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.template.spec.volumes[].configMap

描述

将ConfigMap适配到卷中。

目标ConfigMap的Data字段的内容将作为文件显示在卷中,使用Data字段中的键作为文件名,除非items元素填充了键到路径的特定映射。ConfigMap卷支持所有权管理和SELinux重新标记。

类型

对象

属性 类型 描述

defaultMode

整数

defaultMode 是可选的:默认情况下用于设置创建文件的权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 需要模式位的十进制值。默认为 0644。路径中的目录不受此设置的影响。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

items

数组

items 如果未指定,则引用的 ConfigMap 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 ConfigMap 中不存在的键,则除非该键被标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

items[]

对象

将字符串键映射到卷中的路径。

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性允许为空。此处值为空的此类型实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

optional

布尔值

optional 指定 ConfigMap 或其键是否必须定义。

.template.spec.volumes[].configMap.items

描述

items 如果未指定,则引用的 ConfigMap 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 ConfigMap 中不存在的键,则除非该键被标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

类型

数组

.template.spec.volumes[].configMap.items[]

描述

将字符串键映射到卷中的路径。

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

mode 是可选的:用于设置此文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 需要模式位的十进制值。如果未指定,则将使用卷 defaultMode。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

path

字符串

path 是将键映射到的文件的相对路径。不能是绝对路径。不能包含路径元素“..” 。不能以字符串“..”开头。

.template.spec.volumes[].csi

描述

表示由外部CSI驱动程序管理的要挂载的卷的源位置

类型

对象

必需
  • driver

属性 类型 描述

driver

字符串

driver 是处理此卷的 CSI 驱动程序的名称。请咨询您的管理员以获取在集群中注册的正确名称。

fsType

字符串

fsType 要挂载。例如,“ext4”、“xfs”、“ntfs”。如果未提供,则空值将传递给关联的 CSI 驱动程序,该驱动程序将确定要应用的默认文件系统。

nodePublishSecretRef

对象

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

readOnly

布尔值

readOnly 指定卷的只读配置。默认为 false(读/写)。

volumeAttributes

对象 (字符串)

volumeAttributes 存储传递给 CSI 驱动程序的驱动程序特定属性。请参阅驱动程序的文档以了解受支持的值。

.template.spec.volumes[].csi.nodePublishSecretRef

描述

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性允许为空。此处值为空的此类型实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.template.spec.volumes[].downwardAPI

描述

DownwardAPIVolumeSource表示包含向下API信息的卷。Downward API卷支持所有权管理和SELinux重新标记。

类型

对象

属性 类型 描述

defaultMode

整数

可选:默认情况下为创建的文件使用的模式位。必须是可选的:默认情况下用于设置创建文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 要求模式位使用十进制值。默认为 0644。路径中的目录不受此设置的影响。这可能会与影响文件模式的其他选项(如 fsGroup)冲突,结果可能会设置其他模式位。

items

数组

Items 是向下 API 卷文件的列表

items[]

对象

DownwardAPIVolumeFile 表示包含 Pod 字段的文件创建信息

.template.spec.volumes[].downwardAPI.items

描述

Items 是向下 API 卷文件的列表

类型

数组

.template.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,内存)及其输出格式。

.template.spec.volumes[].downwardAPI.items[].fieldRef

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

FieldPath 以其编写的模式版本,默认为“v1”。

fieldPath

字符串

在指定的 API 版本中选择的字段的路径。

.template.spec.volumes[].downwardAPI.items[].resourceFieldRef

描述

ResourceFieldSelector 表示容器资源(cpu,内存)及其输出格式。

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

容器名称:卷必需,环境变量可选。

divisor

Quantity

指定公开资源的输出格式,默认为“1”。

resource

字符串

必需:要选择的资源。

.template.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

.template.spec.volumes[].ephemeral

描述

表示由普通存储驱动程序处理的临时卷。

类型

对象

属性 类型 描述

volumeClaimTemplate

对象

PersistentVolumeClaimTemplate 用于作为 EphemeralVolumeSource 的一部分生成 PersistentVolumeClaim 对象。

.template.spec.volumes[].ephemeral.volumeClaimTemplate

描述

PersistentVolumeClaimTemplate 用于作为 EphemeralVolumeSource 的一部分生成 PersistentVolumeClaim 对象。

类型

对象

必需
  • spec

属性 类型 描述

metadata

ObjectMeta

可以包含在创建 PVC 时将复制到其中的标签和注释。不允许使用其他字段,并在验证期间予以拒绝。

spec

对象

PersistentVolumeClaimSpec 描述了存储设备的常见属性,并允许为特定于提供程序的属性提供源。

.template.spec.volumes[].ephemeral.volumeClaimTemplate.spec

描述

PersistentVolumeClaimSpec 描述了存储设备的常见属性,并允许为特定于提供程序的属性提供源。

类型

对象

属性 类型 描述

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 的 namespace 字段需要启用 CrossNamespaceVolumeDataSource 功能网关。

资源

对象

VolumeResourceRequirements 描述卷的存储资源需求。

selector

LabelSelector

selector 是要考虑用于绑定的卷上的标签查询。

storageClassName

字符串

storageClassName 是声明所需的 StorageClass 的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassName

字符串

volumeAttributesClassName 可用于设置此声明使用的 VolumeAttributesClass。如果指定,CSI 驱动程序将使用相应 VolumeAttributesClass 中定义的属性创建或更新卷。这与 storageClassName 的目的不同,它可以在声明创建后更改。空字符串值表示不会将任何 VolumeAttributesClass 应用于声明,但一旦设置,不允许将此字段重置为空字符串。如果未指定并且 PersistentVolumeClaim 未绑定,则如果存在,持久卷控制器将设置默认的 VolumeAttributesClass。如果 volumeAttributesClass 引用的资源不存在,则此 PersistentVolumeClaim 将设置为 Pending 状态(如 modifyVolumeStatus 字段所示),直到此类资源存在为止。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volume-attributes-classes/ (Alpha) 使用此字段需要启用 VolumeAttributesClass 功能网关。

volumeMode

字符串

volumeMode 定义声明所需的卷类型。如果未包含在声明规范中,则暗示 Filesystem 值。

可能的枚举值:- "Block" 表示卷不会使用文件系统进行格式化,并将保留为原始块设备。- "Filesystem" 表示卷将使用文件系统进行格式化或已使用文件系统进行格式化。

volumeName

字符串

volumeName 是对支持此声明的 PersistentVolume 的绑定引用。

.template.spec.volumes[].ephemeral.volumeClaimTemplate.spec.dataSource

描述

TypedLocalObjectReference 包含足够的信息,可让您在同一命名空间中找到引用的类型化对象。

类型

对象

必需
  • kind

  • name

属性 类型 描述

apiGroup

字符串

APIGroup 是正在引用的资源的组。如果未指定 APIGroup,则指定的 Kind 必须位于核心 API 组中。对于任何其他第三方类型,都需要 APIGroup。

kind

字符串

Kind 是正在引用的资源的类型

name

字符串

Name 是正在引用的资源的名称

.template.spec.volumes[].ephemeral.volumeClaimTemplate.spec.dataSourceRef

描述

dataSourceRef 指定要从中使用数据填充卷的对象(如果需要非空卷)。这可以是来自非空 API 组(非核心对象)的任何对象或 PersistentVolumeClaim 对象。如果指定了此字段,则只有在指定对象的类型与某些已安装的卷填充程序或动态供应程序匹配时,卷绑定才会成功。此字段将替换 dataSource 字段的功能,因此,如果两个字段都非空,则它们必须具有相同的值。为了向后兼容,如果其中一个字段为空而另一个字段非空,则在 dataSourceRef 中未指定命名空间时,这两个字段 (dataSource 和 dataSourceRef) 将自动设置为相同的值。如果在 dataSourceRef 中指定了命名空间,则 dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间存在三个重要区别:* 虽然 dataSource 只允许两种特定类型的对象,但 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* 虽然 dataSource 会忽略不允许的值(将其删除),但 dataSourceRef 会保留所有值,并在指定不允许的值时生成错误。* 虽然 dataSource 只允许本地对象,但 dataSourceRef 允许任何命名空间中的对象。(Beta) 使用此字段需要启用 AnyVolumeDataSource 功能网关。(Alpha) 使用 dataSourceRef 的 namespace 字段需要启用 CrossNamespaceVolumeDataSource 功能网关。

类型

对象

必需
  • kind

  • name

属性 类型 描述

apiGroup

字符串

APIGroup 是正在引用的资源的组。如果未指定 APIGroup,则指定的 Kind 必须位于核心 API 组中。对于任何其他第三方类型,都需要 APIGroup。

kind

字符串

Kind 是正在引用的资源的类型

name

字符串

Name 是正在引用的资源的名称

namespace

字符串

Namespace 是正在引用的资源的命名空间。请注意,当指定命名空间时,需要在被引用命名空间中使用 gateway.networking.k8s.io/ReferenceGrant 对象,以允许该命名空间的所有者接受引用。有关详细信息,请参阅 ReferenceGrant 文档。(Alpha) 此字段需要启用 CrossNamespaceVolumeDataSource 功能网关。

.template.spec.volumes[].ephemeral.volumeClaimTemplate.spec.resources

描述

VolumeResourceRequirements 描述卷的存储资源需求。

类型

对象

属性 类型 描述

limits

对象 (数量)

Limits 描述了允许使用的最大计算资源量。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

requests

对象 (数量)

Requests 描述了所需的最小计算资源量。如果容器省略了 Requests,则默认为 Limits(如果明确指定),否则默认为实现定义的值。Requests 不能超过 Limits。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

.template.spec.volumes[].fc

描述

表示光纤通道卷。光纤通道卷只能以读写方式挂载一次。光纤通道卷支持所有权管理和SELinux重新标记。

类型

对象

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

lun

整数

lun 可选:FC 目标 LUN 编号

readOnly

布尔值

readOnly 可选:默认为 false(读写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

targetWWNs

数组 (字符串)

targetWWNs 可选:FC 目标全球名称 (WWN)

wwids

数组 (字符串)

wwids 可选:FC 卷全球标识符 (wwids)。必须设置 wwids 或 targetWWNs 和 lun 的组合,但不能同时设置两者。

.template.spec.volumes[].flexVolume

描述

FlexVolume表示使用基于exec的插件配置/附加的通用卷资源。

类型

对象

必需
  • driver

属性 类型 描述

driver

字符串

driver 是此卷要使用的驱动程序的名称。

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。默认文件系统取决于 FlexVolume 脚本。

options

对象 (字符串)

options 可选:此字段包含任何额外的命令选项。

readOnly

布尔值

readOnly 可选:默认为 false(读写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

secretRef

对象

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

.template.spec.volumes[].flexVolume.secretRef

描述

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性允许为空。此处值为空的此类型实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.template.spec.volumes[].flocker

描述

表示由Flocker代理挂载的Flocker卷。datasetName和datasetUUID中只有一个应该设置。Flocker卷不支持所有权管理或SELinux重新标记。

类型

对象

属性 类型 描述

datasetName

字符串

datasetName 是数据集的名称,存储为元数据→Flocker 数据集上的名称应视为已弃用

datasetUUID

字符串

datasetUUID 是数据集的 UUID。这是 Flocker 数据集的唯一标识符

.template.spec.volumes[].gcePersistentDisk

描述

表示Google Compute Engine中的持久性磁盘资源。

必须在挂载到容器之前创建GCE PD。该磁盘还必须与kubelet位于同一个GCE项目和区域。GCE PD只能以读写方式挂载一次或以只读方式挂载多次。GCE PD支持所有权管理和SELinux重新标记。

类型

对象

必需
  • pdName

属性 类型 描述

fsType

字符串

fsType 是您想要挂载的卷的文件系统类型。提示:确保主机操作系统支持该文件系统类型。示例:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

partition

整数

partition 是您想要挂载的卷中的分区。如果省略,则默认按卷名挂载。示例:对于卷 /dev/sda1,您将分区指定为“1”。类似地,/dev/sda 的卷分区为“0”(或者您可以保留属性为空)。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

pdName

字符串

pdName 是 GCE 中 PD 资源的唯一名称。用于标识 GCE 中的磁盘。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

readOnly

布尔值

readOnly 将在此处强制执行 VolumeMounts 中的 ReadOnly 设置。默认为 false。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

.template.spec.volumes[].gitRepo

描述

表示一个使用git仓库内容填充的卷。Git仓库卷不支持所有权管理。Git仓库卷支持SELinux重新标记。

已弃用:GitRepo已弃用。要使用git仓库配置容器,请将EmptyDir挂载到InitContainer中,使用git克隆仓库,然后将EmptyDir挂载到Pod的容器中。

类型

对象

必需
  • repository

属性 类型 描述

directory

字符串

directory 是目标目录名称。不得包含或以“..”开头。如果提供“.”,则卷目录将是 git 存储库。否则,如果指定,则卷将包含具有给定名称的子目录中的 git 存储库。

repository

字符串

repository 是 URL

revision

字符串

revision 是指定修订版本的提交哈希。

.template.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

.template.spec.volumes[].hostPath

描述

表示映射到Pod的主机路径。主机路径卷不支持所有权管理或SELinux重新标记。

类型

对象

必需
  • path

属性 类型 描述

path

字符串

主机上目录的路径。如果路径是符号链接,它将跟踪链接到实际路径。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#hostpath

type

字符串

HostPath 卷的类型,默认为 "" 更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#hostpath

可能的枚举值:- "" 为了向后兼容,如果未设置,请将其保留为空 - "BlockDevice" 给定路径必须存在块设备 - "CharDevice" 给定路径必须存在字符设备 - "Directory" 给定路径必须存在目录 - "DirectoryOrCreate" 如果给定路径不存在任何内容,则根据需要在其中创建一个空目录,文件模式为 0755,具有与 Kubelet 相同的组和所有权。 - "File" 给定路径必须存在文件 - "FileOrCreate" 如果给定路径不存在任何内容,则根据需要在其中创建一个空文件,文件模式为 0644,具有与 Kubelet 相同的组和所有权。 - "Socket" 给定路径必须存在 UNIX 套接字

.template.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 接口 <target portal>:<volume name>。

iqn

字符串

iqn 是目标 iSCSI 限定名称。

iscsiInterface

字符串

iscsiInterface 是使用 iSCSI 传输的接口名称。默认为“default”(tcp)。

lun

整数

lun 表示 iSCSI 目标 LUN 编号。

portals

数组 (字符串)

portals 是 iSCSI 目标 Portal 列表。Portal 是 IP 或 ip_addr:port(如果端口不是默认端口(通常是 TCP 端口 860 和 3260))。

readOnly

布尔值

readOnly 将在此处强制执行 VolumeMounts 中的 ReadOnly 设置。默认为 false。

secretRef

对象

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

targetPortal

字符串

targetPortal 是 iSCSI 目标 Portal。Portal 是 IP 或 ip_addr:port(如果端口不是默认端口(通常是 TCP 端口 860 和 3260))。

.template.spec.volumes[].iscsi.secretRef

描述

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性允许为空。此处值为空的此类型实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.template.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

.template.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。

.template.spec.volumes[].photonPersistentDisk

描述

表示Photon Controller持久性磁盘资源。

类型

对象

必需
  • pdID

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

pdID

字符串

pdID 是标识 Photon Controller 持久性磁盘的 ID。

.template.spec.volumes[].portworxVolume

描述

PortworxVolumeSource表示Portworx卷资源。

类型

对象

必需
  • volumeID

属性 类型 描述

fsType

字符串

fSType 表示要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”。如果未指定,则隐式推断为“ext4”。

readOnly

布尔值

readOnly 默认值为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

volumeID

字符串

volumeID 唯一标识一个 Portworx 卷。

.template.spec.volumes[].projected

描述

表示投影卷源

类型

对象

属性 类型 描述

defaultMode

整数

defaultMode 是用于默认设置创建文件的权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 要求模式位使用十进制值。路径中的目录不受此设置的影响。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能设置其他模式位。

sources

数组

sources 是卷投影的列表。

sources[]

对象

可以与其他受支持的卷类型一起投影的投影。

.template.spec.volumes[].projected.sources

描述

sources 是卷投影的列表。

类型

数组

.template.spec.volumes[].projected.sources[]

描述

可以与其他受支持的卷类型一起投影的投影。

类型

对象

属性 类型 描述

clusterTrustBundle

对象

ClusterTrustBundleProjection 描述如何选择一组 ClusterTrustBundle 对象并将它们的内容投影到 Pod 文件系统中。

configMap

对象

将 ConfigMap 适配到投影卷中。

目标 ConfigMap 的 Data 字段的内容将作为文件显示在投影卷中,使用 Data 字段中的键作为文件名,除非 items 元素填充了键到路径的特定映射。请注意,这与没有默认模式的 configmap 卷源相同。

downwardAPI

对象

表示用于投影到投影卷中的向下 API 信息。请注意,这与没有默认模式的 downwardAPI 卷源相同。

secret

对象

将密钥适配到投影卷中。

目标 Secret 的 Data 字段的内容将作为文件显示在投影卷中,使用 Data 字段中的键作为文件名。请注意,这与没有默认模式的密钥卷源相同。

serviceAccountToken

对象

ServiceAccountTokenProjection 表示一个投影的服务帐户令牌卷。此投影可用于将服务帐户令牌插入到 Pod 运行时文件系统中,以用于针对 API(Kubernetes API 服务器或其他)。

.template.spec.volumes[].projected.sources[].clusterTrustBundle

描述

ClusterTrustBundleProjection 描述如何选择一组 ClusterTrustBundle 对象并将它们的内容投影到 Pod 文件系统中。

类型

对象

必需
  • path

属性 类型 描述

labelSelector

LabelSelector

选择与该标签选择器匹配的所有 ClusterTrustBundles。只有在设置 signerName 时才有效。与 name 相互排斥。如果未设置,则解释为“不匹配任何内容”。如果设置为空,则解释为“匹配所有内容”。

name

字符串

通过对象名称选择单个 ClusterTrustBundle。与 signerName 和 labelSelector 相互排斥。

optional

布尔值

如果为 true,则如果引用的 ClusterTrustBundle(s) 不可用,则不要阻止 Pod 启动。如果使用名称,则允许命名 ClusterTrustBundle 不存在。如果使用 signerName,则允许 signerName 和 labelSelector 的组合匹配零个 ClusterTrustBundles。

path

字符串

从卷根目录到写入 bundle 的相对路径。

signerName

字符串

选择与该签名者名称匹配的所有 ClusterTrustBundles。与 name 相互排斥。所有选定 ClusterTrustBundles 的内容将被统一和去重。

.template.spec.volumes[].projected.sources[].configMap

描述

将 ConfigMap 适配到投影卷中。

目标 ConfigMap 的 Data 字段的内容将作为文件显示在投影卷中,使用 Data 字段中的键作为文件名,除非 items 元素填充了键到路径的特定映射。请注意,这与没有默认模式的 configmap 卷源相同。

类型

对象

属性 类型 描述

items

数组

items 如果未指定,则引用的 ConfigMap 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 ConfigMap 中不存在的键,则除非该键被标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

items[]

对象

将字符串键映射到卷中的路径。

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性允许为空。此处值为空的此类型实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

optional

布尔值

optional 指定 ConfigMap 或其键是否必须定义。

.template.spec.volumes[].projected.sources[].configMap.items

描述

items 如果未指定,则引用的 ConfigMap 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 ConfigMap 中不存在的键,则除非该键被标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

类型

数组

.template.spec.volumes[].projected.sources[].configMap.items[]

描述

将字符串键映射到卷中的路径。

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

mode 是可选的:用于设置此文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 需要模式位的十进制值。如果未指定,则将使用卷 defaultMode。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

path

字符串

path 是将键映射到的文件的相对路径。不能是绝对路径。不能包含路径元素“..” 。不能以字符串“..”开头。

.template.spec.volumes[].projected.sources[].downwardAPI

描述

表示用于投影到投影卷中的向下 API 信息。请注意,这与没有默认模式的 downwardAPI 卷源相同。

类型

对象

属性 类型 描述

items

数组

Items 是 DownwardAPIVolume 文件的列表。

items[]

对象

DownwardAPIVolumeFile 表示包含 Pod 字段的文件创建信息

.template.spec.volumes[].projected.sources[].downwardAPI.items

描述

Items 是 DownwardAPIVolume 文件的列表。

类型

数组

.template.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,内存)及其输出格式。

.template.spec.volumes[].projected.sources[].downwardAPI.items[].fieldRef

描述

ObjectFieldSelector 选择对象的 APIVersioned 字段。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

FieldPath 以其编写的模式版本,默认为“v1”。

fieldPath

字符串

在指定的 API 版本中选择的字段的路径。

.template.spec.volumes[].projected.sources[].downwardAPI.items[].resourceFieldRef

描述

ResourceFieldSelector 表示容器资源(cpu,内存)及其输出格式。

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

容器名称:卷必需,环境变量可选。

divisor

Quantity

指定公开资源的输出格式,默认为“1”。

resource

字符串

必需:要选择的资源。

.template.spec.volumes[].projected.sources[].secret

描述

将密钥适配到投影卷中。

目标 Secret 的 Data 字段的内容将作为文件显示在投影卷中,使用 Data 字段中的键作为文件名。请注意,这与没有默认模式的密钥卷源相同。

类型

对象

属性 类型 描述

items

数组

items 如果未指定,则引用的 Secret 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 Secret 中不存在的键,则除非将其标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

items[]

对象

将字符串键映射到卷中的路径。

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性允许为空。此处值为空的此类型实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

optional

布尔值

optional 字段指定 Secret 或其键是否必须定义。

.template.spec.volumes[].projected.sources[].secret.items

描述

items 如果未指定,则引用的 Secret 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 Secret 中不存在的键,则除非将其标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

类型

数组

.template.spec.volumes[].projected.sources[].secret.items[]

描述

将字符串键映射到卷中的路径。

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

mode 是可选的:用于设置此文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 需要模式位的十进制值。如果未指定,则将使用卷 defaultMode。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

path

字符串

path 是将键映射到的文件的相对路径。不能是绝对路径。不能包含路径元素“..” 。不能以字符串“..”开头。

.template.spec.volumes[].projected.sources[].serviceAccountToken

描述

ServiceAccountTokenProjection 表示一个投影的服务帐户令牌卷。此投影可用于将服务帐户令牌插入到 Pod 运行时文件系统中,以用于针对 API(Kubernetes API 服务器或其他)。

类型

对象

必需
  • path

属性 类型 描述

audience

字符串

audience 是令牌的目标受众。令牌的接收者必须使用令牌受众中指定的标识符识别自己,否则应拒绝令牌。受众默认为 apiserver 的标识符。

expirationSeconds

整数

expirationSeconds 是请求的服务帐户令牌的有效期。当令牌接近过期时,kubelet 卷插件将主动轮换服务帐户令牌。如果令牌的剩余时间小于其生存时间的 80%,或者令牌的剩余时间超过 24 小时,则 kubelet 将开始尝试轮换令牌。默认为 1 小时,至少必须为 10 分钟。

path

字符串

path 是相对于挂载点的文件的路径,用于将令牌投影到其中。

.template.spec.volumes[].quobyte

描述

表示持续Pod生命周期的Quobyte挂载。Quobyte卷不支持所有权管理或SELinux重新标记。

类型

对象

必需
  • registry

  • volume

属性 类型 描述

group

字符串

将卷访问映射到的组。默认为无组。

readOnly

布尔值

readOnly 将强制 Quobyte 卷以只读权限挂载。默认为 false。

registry

字符串

registry 表示指定为字符串的主机:端口对(多个条目用逗号分隔)的一个或多个 Quobyte Registry 服务,它充当卷的中央注册表。

tenant

字符串

后端中拥有给定 Quobyte 卷的租户。与动态预配的 Quobyte 卷一起使用,值由插件设置。

user

字符串

将卷访问映射到的用户。默认为服务帐户用户。

volume

字符串

volume 是一个字符串,它通过名称引用一个已创建的 Quobyte 卷。

.template.spec.volumes[].rbd

描述

表示持续Pod生命周期的Rados块设备挂载。RBD卷支持所有权管理和SELinux重新标记。

类型

对象

必需
  • monitors

  • 镜像

属性 类型 描述

fsType

字符串

fsType 是您要挂载的卷的文件系统类型。提示:确保文件系统类型受主机操作系统支持。示例:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#rbd

镜像

字符串

image 是 rados 镜像名称。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

keyring

字符串

keyring 是 RBDUser 的密钥环路径。默认为 /etc/ceph/keyring。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

monitors

数组 (字符串)

monitors 是 Ceph 监控器的集合。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

pool

字符串

pool 是 rados 池名称。默认为 rbd。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

readOnly

布尔值

readOnly 将强制在 VolumeMounts 中设置 ReadOnly。默认为 false。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

secretRef

对象

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

user

字符串

user 是 rados 用户名。默认为 admin。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

.template.spec.volumes[].rbd.secretRef

描述

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性允许为空。此处值为空的此类型实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.template.spec.volumes[].scaleIO

描述

ScaleIOVolumeSource表示持久性ScaleIO卷

类型

对象

必需
  • gateway

  • system

  • secretRef

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。默认为“xfs”。

gateway

字符串

gateway 是 ScaleIO API 网关的主机地址。

protectionDomain

字符串

protectionDomain 是为配置的存储指定的 ScaleIO 保护域的名称。

readOnly

布尔值

readOnly 默认值为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

secretRef

对象

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

sslEnabled

布尔值

sslEnabled 标志启用/禁用与网关的 SSL 通信,默认为 false。

storageMode

字符串

storageMode 指示卷的存储应该是厚置备还是薄置备。默认为 ThinProvisioned(薄置备)。

storagePool

字符串

storagePool 是与保护域关联的 ScaleIO 存储池。

system

字符串

system 是在 ScaleIO 中配置的存储系统的名称。

volumeName

字符串

volumeName 是已在与该卷源关联的 ScaleIO 系统中创建的卷的名称。

.template.spec.volumes[].scaleIO.secretRef

描述

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性允许为空。此处值为空的此类型实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.template.spec.volumes[].secret

描述

将Secret适配到卷中。

目标Secret的Data字段的内容将作为文件显示在卷中,使用Data字段中的键作为文件名。Secret卷支持所有权管理和SELinux重新标记。

类型

对象

属性 类型 描述

defaultMode

整数

defaultMode 可选:默认情况下用于设置创建文件的权限的模式位。必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。YAML 接受八进制值和十进制值,JSON 要求模式位使用十进制值。默认为 0644。路径中的目录不受此设置的影响。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

items

数组

items 如果未指定,则引用的 Secret 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了密钥,但在 Secret 中不存在,则除非该密钥被标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

items[]

对象

将字符串键映射到卷中的路径。

optional

布尔值

optional 字段指定是否必须定义 Secret 或其密钥。

secretName

字符串

secretName 是要使用的 pod 命名空间中 secret 的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#secret

.template.spec.volumes[].secret.items

描述

items 如果未指定,则引用的 Secret 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了密钥,但在 Secret 中不存在,则除非该密钥被标记为可选,否则卷设置将出错。路径必须是相对路径,并且不能包含“..”路径或以“..”开头。

类型

数组

.template.spec.volumes[].secret.items[]

描述

将字符串键映射到卷中的路径。

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

mode 是可选的:用于设置此文件权限的模式位。必须是 0000 到 0777 之间的八进制值,或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 需要模式位的十进制值。如果未指定,则将使用卷 defaultMode。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

path

字符串

path 是将键映射到的文件的相对路径。不能是绝对路径。不能包含路径元素“..” 。不能以字符串“..”开头。

.template.spec.volumes[].storageos

描述

表示StorageOS持久性卷资源。

类型

对象

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

readOnly

布尔值

readOnly 默认值为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。

secretRef

对象

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

volumeName

字符串

volumeName 是 StorageOS 卷的可读名称。卷名仅在一个命名空间内唯一。

volumeNamespace

字符串

volumeNamespace 指定 StorageOS 中卷的范围。如果未指定命名空间,则将使用 Pod 的命名空间。这允许在 StorageOS 中镜像 Kubernetes 名称范围,以实现更紧密的集成。设置 VolumeName 为任何名称以覆盖默认行为。如果您不在 StorageOS 中使用命名空间,则设置为“default”。StorageOS 中不存在的命名空间将被创建。

.template.spec.volumes[].storageos.secretRef

描述

LocalObjectReference 包含足够的信息,使您可以找到相同命名空间中引用的对象。

类型

对象

属性 类型 描述

name

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性允许为空。此处值为空的此类型实例几乎肯定是不正确的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

.template.spec.volumes[].vsphereVolume

描述

表示vSphere卷资源。

类型

对象

必需
  • volumePath

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

storagePolicyID

字符串

storagePolicyID 是与 StoragePolicyName 关联的基于存储策略的管理 (SPBM) 配置文件 ID。

storagePolicyName

字符串

storagePolicyName 是基于存储策略的管理 (SPBM) 配置文件名称。

volumePath

字符串

volumePath 是标识 vSphere 卷 vmdk 的路径。

API 端点

提供以下 API 端点

  • /api/v1/podtemplates

    • GET:列出或监视 PodTemplate 类型对象

  • /api/v1/watch/podtemplates

    • GET:监视对 PodTemplate 列表的单个更改。已弃用:改为使用列表操作的“watch”参数。

  • /api/v1/namespaces/{namespace}/podtemplates

    • DELETE:删除 PodTemplate 集合

    • GET:列出或监视 PodTemplate 类型对象

    • POST:创建 PodTemplate

  • /api/v1/watch/namespaces/{namespace}/podtemplates

    • GET:监视对 PodTemplate 列表的单个更改。已弃用:改为使用列表操作的“watch”参数。

  • /api/v1/namespaces/{namespace}/podtemplates/{name}

    • DELETE:删除 PodTemplate

    • GET:读取指定的 PodTemplate

    • PATCH:部分更新指定的 PodTemplate

    • PUT:替换指定的 PodTemplate

  • /api/v1/watch/namespaces/{namespace}/podtemplates/{name}

    • GET:监视 PodTemplate 类型对象的更改。已弃用:改为使用列表操作的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

/api/v1/podtemplates

HTTP 方法

GET

描述

列出或监视 PodTemplate 类型对象

表 1. HTTP 响应
HTTP 代码 响应体

200 - OK

PodTemplateList 模式

401 - Unauthorized

/api/v1/watch/podtemplates

HTTP 方法

GET

描述

监视对 PodTemplate 列表的单个更改。已弃用:改为使用列表操作的“watch”参数。

表 2. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - Unauthorized

/api/v1/namespaces/{namespace}/podtemplates

HTTP 方法

DELETE

描述

删除 PodTemplate 集合

表 3. 查询参数
参数 类型 描述

dryRun

字符串

出现时,表示不应保存修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 4. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

401 - Unauthorized

HTTP 方法

GET

描述

列出或监视 PodTemplate 类型对象

表 5. HTTP 响应
HTTP 代码 响应体

200 - OK

PodTemplateList 模式

401 - Unauthorized

HTTP 方法

POST

描述

创建 PodTemplate

表 6. 查询参数
参数 类型 描述

dryRun

字符串

出现时,表示不应保存修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

字段验证

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- 忽略:这将忽略任何未知字段,这些字段将从对象中静默删除,并且将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- 警告:这将通过标准警告响应报头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认设置。- 严格:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 7. 请求体参数
参数 类型 描述

请求体

PodTemplate 模式

表 8. HTTP 响应
HTTP 代码 响应体

200 - OK

PodTemplate 模式

201 - 已创建

PodTemplate 模式

202 - 已接受

PodTemplate 模式

401 - Unauthorized

/api/v1/watch/namespaces/{namespace}/podtemplates

HTTP 方法

GET

描述

监视对 PodTemplate 列表的单个更改。已弃用:改为使用列表操作的“watch”参数。

表 9. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - Unauthorized

/api/v1/namespaces/{namespace}/podtemplates/{name}

表 10. 全局路径参数
参数 类型 描述

name

字符串

PodTemplate 的名称

HTTP 方法

DELETE

描述

删除 PodTemplate

表 11. 查询参数
参数 类型 描述

dryRun

字符串

出现时,表示不应保存修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 12. HTTP 响应
HTTP 代码 响应体

200 - OK

PodTemplate 模式

202 - 已接受

PodTemplate 模式

401 - Unauthorized

HTTP 方法

GET

描述

读取指定的 PodTemplate

表 13. HTTP 响应
HTTP 代码 响应体

200 - OK

PodTemplate 模式

401 - Unauthorized

HTTP 方法

PATCH

描述

部分更新指定的 PodTemplate

表 14. 查询参数
参数 类型 描述

dryRun

字符串

出现时,表示不应保存修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

字段验证

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- 忽略:这将忽略任何未知字段,这些字段将从对象中静默删除,并且将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- 警告:这将通过标准警告响应报头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认设置。- 严格:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 15. HTTP 响应
HTTP 代码 响应体

200 - OK

PodTemplate 模式

201 - 已创建

PodTemplate 模式

401 - Unauthorized

HTTP 方法

PUT

描述

替换指定的 PodTemplate

表 16. 查询参数
参数 类型 描述

dryRun

字符串

出现时,表示不应保存修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

字段验证

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- 忽略:这将忽略任何未知字段,这些字段将从对象中静默删除,并且将忽略解码器遇到的所有重复字段,只保留最后一个。这是 v1.23 之前的默认行为。- 警告:这将通过标准警告响应报头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认设置。- 严格:如果任何未知字段将从对象中删除,或者存在任何重复字段,则这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 17. 请求体参数
参数 类型 描述

请求体

PodTemplate 模式

表 18. HTTP 响应
HTTP 代码 响应体

200 - OK

PodTemplate 模式

201 - 已创建

PodTemplate 模式

401 - Unauthorized

/api/v1/watch/namespaces/{namespace}/podtemplates/{name}

表 19. 全局路径参数
参数 类型 描述

name

字符串

PodTemplate 的名称

HTTP 方法

GET

描述

监控 PodTemplate 对象的更改。已弃用:请改用列表操作中的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

表 20. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - Unauthorized