apiVersion: v1
import "k8s.io/api/core/v1"
Pod 是可以在主机上运行的容器集合。该资源由客户端创建并调度到主机上。
apiVersion: v1
kind: Pod
metadata (ObjectMeta)
标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (PodSpec)
Pod 所需行为的规范。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
status (PodStatus)
Pod 最近观察到的状态。此数据可能不是最新的。由系统填充。只读。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
PodSpec 是 Pod 的描述。
containers ([]Container),必填
补丁策略:在 key name 上合并
映射:在合并期间将保留 key name 上的唯一值
属于 Pod 的容器列表。当前无法添加或删除容器。Pod 中必须至少包含一个容器。不可更新。
initContainers ([]Container)
补丁策略:在 key name 上合并
映射:在合并期间将保留 key name 上的唯一值
属于 Pod 的初始化容器列表。初始化容器会在普通容器启动前按顺序执行。如果任何初始化容器失败,则认为 Pod 失败,并根据其 restartPolicy 进行处理。初始化容器或普通容器的名称在所有容器中必须是唯一的。初始化容器不能拥有生命周期动作、就绪探针、存活探针或启动探针。初始化容器的资源要求会在调度期间被考虑,即针对每种资源类型找到最高请求/限制,然后使用该值或普通容器总和的最大值。限制以类似方式应用于初始化容器。当前无法添加或删除初始化容器。不可更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/init-containers/
ephemeralContainers ([]EphemeralContainer)
补丁策略:在 key name 上合并
映射:在合并期间将保留 key name 上的唯一值
此 Pod 中运行的临时容器列表。临时容器可以在现有 Pod 中运行,以执行用户发起的操作,例如调试。在创建 Pod 时不能指定此列表,且无法通过更新 Pod 规范来修改它。要向现有 Pod 添加临时容器,请使用 Pod 的 ephemeralcontainers 子资源。
imagePullSecrets ([]LocalObjectReference)
补丁策略:在 key name 上合并
映射:在合并期间将保留 key name 上的唯一值
ImagePullSecrets 是一个可选列表,包含指向同一命名空间中 Secret 的引用,用于拉取此 PodSpec 使用的任何镜像。如果指定,这些 Secret 将传递给各个拉取器实现以供使用。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
enableServiceLinks (boolean)
EnableServiceLinks 指示是否应将有关服务的信息注入到 Pod 的环境变量中,匹配 Docker 链接的语法。可选:默认值为 true。
os (PodOS)
指定 Pod 中容器的操作系统。如果设置此项,某些 Pod 和容器字段会受到限制。
如果 OS 字段设置为 linux,则以下字段必须取消设置:-securityContext.windowsOptions
如果 OS 字段设置为 windows,则以下字段必须取消设置:- spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[].securityContext.appArmorProfile - spec.containers[].securityContext.seLinuxOptions - spec.containers[].securityContext.seccompProfile - spec.containers[].securityContext.capabilities - spec.containers[].securityContext.readOnlyRootFilesystem - spec.containers[].securityContext.privileged - spec.containers[].securityContext.allowPrivilegeEscalation - spec.containers[].securityContext.procMount - spec.containers[].securityContext.runAsUser - spec.containers[].securityContext.runAsGroup
os.name (string),必填
Name 是操作系统的名称。当前支持的值为 linux 和 windows。未来可能会定义其他值,可以是:https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration 客户端应预期处理其他值,并将此字段中的未识别值视为 os: null
volumes ([]Volume)
补丁策略:retainKeys,基于键 name 合并
映射:在合并期间将保留 key name 上的唯一值
可由属于 Pod 的容器挂载的卷列表。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes
nodeSelector (map[string]string)
NodeSelector 是一个选择器,必须为真才能使 Pod 适合在节点上运行。该选择器必须匹配节点的标签,Pod 才能被调度到该节点上。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/assign-pod-node/
nodeName (string)
NodeName 指示此 Pod 被调度到哪个节点。如果为空,则该 Pod 是由 schedulerName 定义的调度器的候选者。一旦设置此字段,该节点的 kubelet 将负责此 Pod 的生命周期。不应使用此字段来表达将 Pod 调度到特定节点的愿望。https://kubernetes.ac.cn/docs/concepts/scheduling-eviction/assign-pod-node/#nodename
affinity (Affinity)
如果指定,则为 Pod 的调度约束
affinity.nodeAffinity (NodeAffinity)
描述 Pod 的节点亲和性调度规则。
affinity.podAffinity (PodAffinity)
描述 Pod 亲和性调度规则(例如,将此 Pod 与其他某些 Pod 放置在同一节点、区域等)。
affinity.podAntiAffinity (PodAntiAffinity)
描述 Pod 反亲和性调度规则(例如,避免将此 Pod 与其他某些 Pod 放置在同一节点、区域等)。
tolerations ([]Toleration)
原子:将在合并期间被替换
如果指定,则为 Pod 的容忍度。
此 Toleration 所附加到的 Pod 可以容忍任何使用匹配运算符
tolerations.key (string)
Key 是容忍度适用的污点键。为空表示匹配所有污点键。如果 key 为空,operator 必须为 Exists;这种组合意味着匹配所有值和所有键。
tolerations.operator (string)
Operator 表示键与值的关系。有效的运算符为 Exists、Equal、Lt 和 Gt。默认为 Equal。Exists 等同于值的通配符,以便 Pod 可以容忍特定类别的所有污点。Lt 和 Gt 执行数值比较(需要功能门 TaintTolerationComparisonOperators)。
可能的枚举值
"Equal""Exists""Gt""Lt"tolerations.value (string)
Value 是容忍度匹配的污点值。如果运算符为 Exists,则 value 应为空,否则仅为一个普通字符串。
tolerations.effect (string)
Effect 指示要匹配的污点效果。为空表示匹配所有污点效果。指定时,允许的值为 NoSchedule、PreferNoSchedule 和 NoExecute。
可能的枚举值
"NoExecute" 驱逐任何不容忍该污点的已运行 Pod。目前由 NodeController 执行。"NoSchedule" 除非 Pod 容忍该污点,否则不允许新的 Pod 调度到该节点,但允许所有未经调度器提交给 Kubelet 的 Pod 启动,并允许所有已运行的 Pod 继续运行。由调度器执行。"PreferNoSchedule" 类似于 TaintEffectNoSchedule,但调度器会尽量不将新的 Pod 调度到该节点,而不是完全禁止新的 Pod 调度到该节点。由调度器执行。tolerations.tolerationSeconds (int64)
TolerationSeconds 表示容忍度(必须具有 NoExecute 效果,否则忽略此字段)容忍污点的时间段。默认情况下未设置,意味着永久容忍污点(不驱逐)。零和负值将被系统视为 0(立即驱逐)。
schedulerName (string)
如果指定,Pod 将由指定的调度器调度。如果未指定,Pod 将由默认调度器调度。
runtimeClassName (string)
RuntimeClassName 引用 node.k8s.io 组中的 RuntimeClass 对象,该对象应用于运行此 Pod。如果没有 RuntimeClass 资源匹配该名称的类,Pod 将不会运行。如果未设置或为空,则将使用“遗留 (legacy)”RuntimeClass,这是一个带有空定义的隐式类,使用默认的运行时处理程序。更多信息:https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
priorityClassName (string)
如果指定,则指示 Pod 的优先级。“system-node-critical”和“system-cluster-critical”是两个特殊关键字,指示最高优先级,前者优先级最高。任何其他名称都必须通过创建具有该名称的 PriorityClass 对象来定义。如果未指定,Pod 优先级将为默认值,如果没有默认值则为零。
priority (int32)
优先级值。各种系统组件使用此字段来查找 Pod 的优先级。当启用优先级准入控制器时,它会阻止用户设置此字段。准入控制器会从 PriorityClassName 填充此字段。值越高,优先级越高。
preemptionPolicy (string)
PreemptionPolicy 是抢占低优先级 Pod 的策略。取值为 Never 或 PreemptLowerPriority 之一。如果未设置,默认为 PreemptLowerPriority。
可能的枚举值
"Never" 表示该 Pod 永远不会抢占优先级较低的其他 Pod。"PreemptLowerPriority" 表示该 Pod 可以抢占优先级较低的其他 Pod。topologySpreadConstraints ([]TopologySpreadConstraint)
补丁策略:基于键 topologyKey 合并
映射:合并期间将保留键 topologyKey, whenUnsatisfiable 的唯一值
TopologySpreadConstraints 描述了一组 Pod 应如何跨拓扑域分布。调度器将以符合约束的方式调度 Pod。所有 topologySpreadConstraints 均进行逻辑“与”运算。
TopologySpreadConstraint 指定了如何将匹配的 Pod 分布在给定的拓扑中。
topologySpreadConstraints.maxSkew (int32),必填
MaxSkew 描述了 Pod 分布不均匀的程度。当 whenUnsatisfiable=DoNotSchedule 时,它是目标拓扑中匹配 Pod 数量与全局最小值之间允许的最大差异。全局最小值是合格域中匹配 Pod 的最小数量,如果合格域的数量少于 MinDomains,则为零。例如,在 3 区集群中,MaxSkew 设置为 1,具有相同 labelSelector 的 Pod 分布为 2/2/1:在这种情况下,全局最小值为 1。| zone1 | zone2 | zone3 | | P P | P P | P | - 如果 MaxSkew 为 1,传入的 Pod 只能调度到 zone3 变成 2/2/2;将其调度到 zone1(zone2) 会使 zone1(zone2) 上的 ActualSkew(3-1) 违反 MaxSkew(1)。 - 如果 MaxSkew 为 2,传入的 Pod 可以调度到任何区域。当 whenUnsatisfiable=ScheduleAnyway 时,它用于给予满足条件的拓扑更高的优先级。这是一个必填字段。默认值为 1,不允许为 0。
topologySpreadConstraints.topologyKey (string),必填
TopologyKey 是节点标签的键。具有该键且值相同的节点被认为处于同一拓扑中。我们将每个 <key, value> 视为一个“桶”,并尝试将均衡数量的 Pod 放入每个桶中。我们将域定义为拓扑的特定实例。此外,我们将合格域定义为节点满足 nodeAffinityPolicy 和 nodeTaintsPolicy 要求的域。例如,如果 TopologyKey 是“kubernetes.io/hostname”,则每个节点都是该拓扑的一个域。如果 TopologyKey 是“topology.kubernetes.io/zone”,则每个区域都是该拓扑的一个域。这是一个必填字段。
topologySpreadConstraints.whenUnsatisfiable (string),必填
WhenUnsatisfiable 指示如果不满足传播约束,该如何处理 Pod。 - DoNotSchedule(默认)告诉调度器不要对其进行调度。 - ScheduleAnyway 告诉调度器在任何位置调度 Pod,但给予有助于减少偏差的拓扑更高的优先级。当且仅当该 Pod 的所有可能的节点分配都会违反某个拓扑上的“MaxSkew”时,约束才被视为对传入的 Pod “不可满足”。例如,在 3 区集群中,MaxSkew 设置为 1,具有相同 labelSelector 的 Pod 分布为 3/1/1:| zone1 | zone2 | zone3 | | P P P | P | P | 如果 WhenUnsatisfiable 设置为 DoNotSchedule,传入的 Pod 只能调度到 zone2(zone3) 变成 3/2/1(3/1/2),因为 zone2(zone3) 上的 ActualSkew(2-1) 满足 MaxSkew(1)。换句话说,集群可能仍然不平衡,但调度器不会让它变得更不平衡。这是一个必填字段。
可能的枚举值
"DoNotSchedule" 指示当约束不满足时,调度器不要调度 Pod。"ScheduleAnyway" 指示即使约束不满足,调度器也要调度 Pod。topologySpreadConstraints.labelSelector (LabelSelector)
LabelSelector 用于查找匹配的 Pod。匹配此标签选择器的 Pod 将被计数,以确定其对应拓扑域中的 Pod 数量。
topologySpreadConstraints.matchLabelKeys ([]string)
原子:将在合并期间被替换
MatchLabelKeys 是一组 Pod 标签键,用于选择计算分布的 Pod。这些键用于从传入的 Pod 标签中查找值,这些键值标签与 labelSelector 进行逻辑“与”运算,以选择一组现有的 Pod,用于为传入的 Pod 计算分布。禁止在 MatchLabelKeys 和 LabelSelector 中同时存在相同的键。当未设置 LabelSelector 时,不能设置 MatchLabelKeys。传入 Pod 标签中不存在的键将被忽略。空列表或 null 表示仅根据 labelSelector 进行匹配。
这是一个 beta 字段,需要启用 MatchLabelKeysInPodTopologySpread 功能门(默认启用)。
topologySpreadConstraints.minDomains (int32)
MinDomains 指示合格域的最小数量。当具有匹配拓扑键的合格域数量少于 minDomains 时,Pod 拓扑分布将“全局最小值”视为 0,然后执行偏差计算。当具有匹配拓扑键的合格域数量等于或大于 minDomains 时,此值对调度没有影响。因此,当合格域数量少于 minDomains 时,调度器不会将超过 maxSkew 个 Pod 调度到这些域中。如果值为 nil,则约束的行为就像 MinDomains 等于 1 一样。有效值为大于 0 的整数。当值不为 nil 时,WhenUnsatisfiable 必须为 DoNotSchedule。
例如,在 3 区集群中,MaxSkew 设置为 2,MinDomains 设置为 5,具有相同 labelSelector 的 Pod 分布为 2/2/2:| zone1 | zone2 | zone3 | | P P | P P | P P | 域的数量少于 5(MinDomains),因此“全局最小值”被视为 0。在这种情况下,具有相同 labelSelector 的新 Pod 无法调度,因为如果新 Pod 调度到三个区域中的任何一个,计算出的偏差将为 3(3 - 0),它将违反 MaxSkew。
topologySpreadConstraints.nodeAffinityPolicy (string)
NodeAffinityPolicy 指示我们在计算 Pod 拓扑分布偏差时如何处理 Pod 的 nodeAffinity/nodeSelector。选项包括: - Honor:仅将匹配 nodeAffinity/nodeSelector 的节点包括在计算中。 - Ignore:忽略 nodeAffinity/nodeSelector。所有节点都包括在计算中。
如果此值为 nil,则行为等同于 Honor 策略。
可能的枚举值
"Honor" 表示在计算 Pod 拓扑分布偏差时使用此调度指令。"Ignore" 表示在计算 Pod 拓扑分布偏差时忽略此调度指令。topologySpreadConstraints.nodeTaintsPolicy (string)
NodeTaintsPolicy 指示我们在计算 Pod 拓扑分布偏差时如何处理节点污点。选项包括: - Honor:包括没有污点的节点,以及传入的 Pod 具有容忍度的污点节点。 - Ignore:忽略节点污点。所有节点都包括在内。
如果此值为 nil,则行为等同于 Ignore 策略。
可能的枚举值
"Honor" 表示在计算 Pod 拓扑分布偏差时使用此调度指令。"Ignore" 表示在计算 Pod 拓扑分布偏差时忽略此调度指令。overhead (map[string]Quantity)
Overhead 表示与运行给定 RuntimeClass 的 Pod 相关的资源开销。此字段将在准入时由 RuntimeClass 准入控制器自动填充。如果启用了 RuntimeClass 准入控制器,则在 Pod 创建请求中不得设置 overhead。RuntimeClass 准入控制器将拒绝已设置 overhead 的 Pod 创建请求。如果配置了 RuntimeClass 并在 PodSpec 中进行了选择,Overhead 将设置为相应 RuntimeClass 中定义的值,否则它将保持未设置状态并视为零。更多信息:https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md
activeDeadlineSeconds (int64)
Pod 在节点上相对于 StartTime 保持活动状态的可选时长(以秒为单位),超过该时长后系统将主动尝试将其标记为失败并终止相关容器。值必须是正整数。
readinessGates ([]PodReadinessGate)
原子:将在合并期间被替换
如果指定,所有就绪门 (readiness gates) 将被评估以确定 Pod 就绪状态。当其所有容器均就绪 且 就绪门中指定的所有条件的状态等于“True”时,Pod 即为就绪。更多信息:https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates
PodReadinessGate 包含对 Pod 条件的引用
readinessGates.conditionType (string),必填
ConditionType 引用 Pod 条件列表中具有匹配类型的条件。
restartPolicy (string)
Pod 中所有容器的重启策略。取值为 Always、OnFailure、Never 之一。在某些上下文中,可能只允许这些值的子集。默认为 Always。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
可能的枚举值
"Always""Never""OnFailure"terminationGracePeriodSeconds (int64)
Pod 需要优雅终止的可选时长(以秒为单位)。在删除请求中可能会减小。值必须是非负整数。值零表示通过 kill 信号立即停止(没有关闭机会)。如果此值为 nil,则将使用默认宽限期。宽限期是 Pod 中运行的进程被发送终止信号到进程被 kill 信号强制停止之间的时间段。将此值设置得长于进程预期的清理时间。默认为 30 秒。
workloadRef (WorkloadReference)
WorkloadRef 提供了对该 Pod 所属 Workload 对象的引用。此字段由调度器用于识别 PodGroup 并应用正确的组调度策略。此字段引用的 Workload 对象在创建 Pod 时可能不存在。此字段是不可变的,但具有相同名称的 Workload 对象可能会以不同的策略重新创建。在 Pod 调度期间执行此操作可能导致放置不符合预期的策略。
WorkloadReference 标识 Pod 所属的 Workload 对象和 PodGroup 成员关系。调度器使用此信息来应用感知工作负载的调度语义。
workloadRef.name (string),必填
Name 定义了该 Pod 所属 Workload 对象的名称。Workload 必须与 Pod 位于同一命名空间中。如果它不匹配任何现有的 Workload,Pod 将保持不可调度状态,直到创建并观察到 Workload 对象为止。它必须是 DNS 子域名。
workloadRef.podGroup (string),必填
PodGroup 是该 Pod 所属的 Workload 中 PodGroup 的名称。如果它不匹配 Workload 中的任何现有 PodGroup,Pod 将保持不可调度状态,直到重新创建并由 kube-scheduler 观察到 Workload 对象为止。它必须是 DNS 标签。
workloadRef.podGroupReplicaKey (string)
PodGroupReplicaKey 指定此 Pod 所属 PodGroup 的副本键。它用于区分属于同一 Pod 组不同副本的 Pod。Pod 组策略分别应用于每个副本。设置时,它必须是 DNS 标签。
hostname (string)
指定 Pod 的主机名。如果未指定,Pod 的主机名将设置为系统定义的值。
hostnameOverride (string)
HostnameOverride 指定了 Pod 感知到的主机名的显式覆盖。此字段仅指定 Pod 的主机名,不影响其 DNS 记录。当此字段设置为非空字符串时: - 它优先于 hostname 和 subdomain 中设置的值。 - Pod 的主机名将设置为此值。 - setHostnameAsFQDN 必须为 nil 或设置为 false。 - hostNetwork 必须设置为 false。
此字段必须是 RFC 1123 定义的有效 DNS 子域名,并且最多包含 64 个字符。需要启用 HostnameOverride 功能门。
setHostnameAsFQDN (boolean)
如果为 true,Pod 的主机名将配置为 Pod 的 FQDN,而不是叶名称(默认值)。在 Linux 容器中,这意味着在内核的 hostname 字段(struct utsname 的 nodename 字段)中设置 FQDN。在 Windows 容器中,这意味着将注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 的 hostname 注册表值设置为 FQDN。如果 Pod 没有 FQDN,则此操作无效。默认为 false。
subdomain (string)
如果指定,完全限定的 Pod 主机名将为 "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>"。如果未指定,Pod 将完全没有域名。
hostAliases ([]HostAlias)
补丁策略:基于键 ip 合并
映射:合并期间将保留键 ip 的唯一值
HostAliases 是一个可选列表,包含主机和 IP,如果指定,它们将被注入到 Pod 的 hosts 文件中。
HostAlias 包含 IP 和主机名之间的映射,这些映射将作为条目注入到 Pod 的 hosts 文件中。
hostAliases.ip (string),必填
hosts 文件条目的 IP 地址。
hostAliases.hostnames ([]string)
原子:将在合并期间被替换
上述 IP 地址对应的主机名。
dnsConfig (PodDNSConfig)
指定 Pod 的 DNS 参数。在此指定的参数将根据 DNSPolicy 合并到生成的 DNS 配置中。
PodDNSConfig 定义了除 DNSPolicy 生成的参数之外的 Pod DNS 参数。
dnsConfig.nameservers ([]string)
原子:将在合并期间被替换
DNS 名称服务器 IP 地址列表。这将附加到根据 DNSPolicy 生成的基础名称服务器中。重复的名称服务器将被删除。
dnsConfig.options ([]PodDNSConfigOption)
原子:将在合并期间被替换
DNS 解析器选项列表。这将与根据 DNSPolicy 生成的基础选项合并。重复的条目将被删除。Options 中给出的解析选项将覆盖出现在基础 DNSPolicy 中的选项。
PodDNSConfigOption 定义了 Pod 的 DNS 解析器选项。
dnsConfig.options.name (string)
Name 是此 DNS 解析器选项的名称。必填。
dnsConfig.options.value (string)
Value 是此 DNS 解析器选项的值。
dnsConfig.searches ([]string)
原子:将在合并期间被替换
用于主机名查找的 DNS 搜索域列表。这将附加到根据 DNSPolicy 生成的基础搜索路径中。重复的搜索路径将被删除。
dnsPolicy (string)
设置 Pod 的 DNS 策略。默认为 "ClusterFirst"。有效值为 'ClusterFirstWithHostNet'、'ClusterFirst'、'Default' 或 'None'。DNSConfig 中给出的 DNS 参数将与 DNSPolicy 选择的策略合并。要与 hostNetwork 一起设置 DNS 选项,您必须明确指定 DNS 策略为 'ClusterFirstWithHostNet'。
可能的枚举值
"ClusterFirst" 表示除非 hostNetwork 为 true,否则 Pod 应首先使用集群 DNS(如果可用),然后回退到默认(由 kubelet 确定)的 DNS 设置。"ClusterFirstWithHostNet" 表示 Pod 应首先使用集群 DNS(如果可用),然后回退到默认(由 kubelet 确定)的 DNS 设置。"Default" 表示 Pod 应使用默认(由 kubelet 确定)的 DNS 设置。"None" 表示 Pod 应使用空 DNS 设置。nameservers 和搜索路径等 DNS 参数应通过 DNSConfig 定义。hostNetwork (boolean)
此 Pod 请求主机网络。使用主机的网络命名空间。使用 HostNetwork 时,您应该指定端口,以便调度器知道。当 hostNetwork 为 true 时,端口定义中指定的 hostPort 字段必须匹配 containerPort,且端口定义中未指定的 hostPort 字段默认为匹配 containerPort。默认为 false。
hostPID (boolean)
使用主机的 PID 命名空间。可选:默认为 false。
hostIPC (boolean)
使用主机的 IPC 命名空间。可选:默认为 false。
shareProcessNamespace (boolean)
在 Pod 中的所有容器之间共享单个进程命名空间。设置此项后,容器将能够查看和向同一 Pod 中的其他容器发送信号,并且每个容器中的第一个进程将不会被分配 PID 1。HostPID 和 ShareProcessNamespace 不能同时设置。可选:默认为 false。
serviceAccountName (string)
ServiceAccountName 是用于运行此 Pod 的 ServiceAccount 名称。更多信息:https://kubernetes.ac.cn/docs/tasks/configure-pod-container/configure-service-account/
automountServiceAccountToken (boolean)
AutomountServiceAccountToken 指示是否应自动挂载服务账号令牌。
securityContext (PodSecurityContext)
SecurityContext 包含 Pod 级别的安全属性和通用容器设置。可选:默认为空。有关每个字段的默认值,请参阅类型说明。
PodSecurityContext 包含 Pod 级别的安全属性和通用容器设置。某些字段也存在于 container.securityContext 中。container.securityContext 的字段值优先于 PodSecurityContext 的字段值。
securityContext.appArmorProfile (AppArmorProfile)
appArmorProfile 是此 Pod 中容器要使用的 AppArmor 选项。注意,当 spec.os.name 为 windows 时,不能设置此字段。
AppArmorProfile 定义了 Pod 或容器的 AppArmor 设置。
securityContext.appArmorProfile.type (string),必填
type 指示将应用哪种 AppArmor 配置文件。有效选项为:Localhost - 预加载在节点上的配置文件。RuntimeDefault - 容器运行时的默认配置文件。Unconfined - 无 AppArmor 执行。
可能的枚举值
"Localhost" 表示应使用预加载在节点上的配置文件。"RuntimeDefault" 表示应使用容器运行时的默认 AppArmor 配置文件。"Unconfined" 表示不应执行任何 AppArmor 配置文件。securityContext.appArmorProfile.localhostProfile (string)
localhostProfile 指示应使用加载在节点上的配置文件。要使此功能生效,配置文件必须预先配置在节点上。必须匹配加载的配置文件名称。仅当 type 为 "Localhost" 时才必须设置。
securityContext.fsGroup (int64)
应用于 Pod 中所有容器的特殊补充组。某些卷类型允许 Kubelet 将该卷的所有权更改为归 Pod 所有
如果未设置,Kubelet 不会修改任何卷的所有权和权限。注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.fsGroupChangePolicy (string)
fsGroupChangePolicy 定义了在 Pod 内部公开卷之前更改卷所有权和权限的行为。此字段仅适用于支持基于 fsGroup 的所有权(和权限)的卷类型。它对诸如 secret、configmaps 和 emptydir 等临时卷类型无效。有效值为 "OnRootMismatch" 和 "Always"。如果未指定,则使用 "Always"。注意,当 spec.os.name 为 windows 时,不能设置此字段。
可能的枚举值
"Always" 表示只要卷被挂载到 Pod 中,就应始终更改卷的所有权和权限。这是默认行为。"OnRootMismatch" 表示仅当根目录的权限和所有权与卷上的预期权限不匹配时,才会更改卷的所有权和权限。这有助于缩短更改卷所有权和权限所需的时间。securityContext.runAsUser (int64)
运行容器进程入口点的 UID。如果未指定,则默认为镜像元数据中指定的用户。也可以在 SecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值对于该容器具有优先权。注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.runAsNonRoot (boolean)
指示容器必须以非 root 用户身份运行。如果为 true,Kubelet 将在运行时验证镜像,以确保它不以 UID 0(root)运行,如果不符合,则启动容器失败。如果未设置或为 false,则不执行此类验证。也可以在 SecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值具有优先权。
securityContext.runAsGroup (int64)
运行容器进程入口点的 GID。如果未设置,则使用运行时默认值。也可以在 SecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值对于该容器具有优先权。注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.seccompProfile (SeccompProfile)
此 Pod 中容器要使用的 seccomp 选项。注意,当 spec.os.name 为 windows 时,不能设置此字段。
SeccompProfile 定义了 Pod/容器的 seccomp 配置文件设置。只能设置一个配置文件源。
securityContext.seccompProfile.type (string),必填
type 指示将应用哪种 seccomp 配置文件。有效选项为:
Localhost - 应使用在节点上文件中定义的配置文件。RuntimeDefault - 应使用容器运行时默认配置文件。Unconfined - 不应应用任何配置文件。
可能的枚举值
"Localhost" 表示应使用在节点上文件中定义的配置文件。相对于 <kubelet-root-dir>/seccomp 的文件位置。"RuntimeDefault" 代表默认的容器运行时 seccomp 配置文件。"Unconfined" 表示不应用任何 seccomp 配置文件(又称无约束)。securityContext.seccompProfile.localhostProfile (string)
localhostProfile 指示应使用在节点上文件中定义的配置文件。要使此功能生效,配置文件必须预先配置在节点上。必须是相对于 kubelet 配置的 seccomp 配置文件位置的后代路径。如果 type 为 "Localhost",则必须设置。对于任何其他类型,则不得设置。
securityContext.seLinuxChangePolicy (string)
seLinuxChangePolicy 定义了如何将容器的 SELinux 标签应用于 Pod 使用的所有卷。它对不支持 SELinux 的节点或不支持 SELinux 的卷无效。有效值为 "MountOption" 和 "Recursive"。
"Recursive" 表示容器运行时对所有 Pod 卷上的所有文件进行重新标记。对于大型卷,这可能很慢,但允许在同一节点上共享同一卷的特权 Pod 和非特权 Pod 进行混合。
"MountOption" 使用 -o context 挂载选项挂载所有合格的 Pod 卷。这要求共享同一卷的所有 Pod 使用相同的 SELinux 标签。无法在特权和非特权 Pod 之间共享同一卷。合格的卷是树内 FibreChannel 和 iSCSI 卷,以及所有 CSI 驱动程序通过在 CSIDriver 实例中将 spec.seLinuxMount 设置为 true 来宣告支持 SELinux 的 CSI 卷。其他卷总是递归重新标记。仅当启用 SELinuxMount 功能门时,才允许使用 "MountOption" 值。
如果未指定且启用了 SELinuxMount 功能门,则使用 "MountOption"。如果未指定且禁用了 SELinuxMount 功能门,则对 ReadWriteOncePod 卷使用 "MountOption",对所有其他卷使用 "Recursive"。
此字段仅影响在 PodSecurityContext 或所有容器的 SecurityContext 中设置了 SELinux 标签的 Pod。
使用同一卷的所有 Pod 应使用相同的 seLinuxChangePolicy,否则某些 Pod 可能会卡在 ContainerCreating 状态。注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.seLinuxOptions (SELinuxOptions)
应用于所有容器的 SELinux 上下文。如果未指定,容器运行时将为每个容器分配一个随机的 SELinux 上下文。也可以在 SecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值对于该容器具有优先权。注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.seLinuxOptions.level (string)
Level 是应用于容器的 SELinux 级别标签。
securityContext.seLinuxOptions.role (string)
Role 是应用于容器的 SELinux 角色标签。
securityContext.seLinuxOptions.type (string)
Type 是应用于容器的 SELinux 类型标签。
securityContext.seLinuxOptions.user (string)
User 是应用于容器的 SELinux 用户标签。
securityContext.supplementalGroups ([]int64)
原子:将在合并期间被替换
应用于每个容器中运行的第一个进程的组列表,除容器的主要 GID 和 fsGroup(如果指定)外。如果启用了 SupplementalGroupsPolicy 功能,supplementalGroupsPolicy 字段决定这些是添加到容器镜像中定义的组成员资格,还是替代它们。如果未指定,则不会添加额外组,尽管根据 supplementalGroupsPolicy 字段,容器镜像中定义的组成员资格可能仍会被使用。注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.supplementalGroupsPolicy (string)
定义如何计算第一个容器进程的补充组。有效值为 "Merge" 和 "Strict"。如果未指定,则使用 "Merge"。(Alpha)使用此字段需要启用 SupplementalGroupsPolicy 功能门,并且容器运行时必须实现对此功能的支持。注意,当 spec.os.name 为 windows 时,不能设置此字段。
可能的枚举值
"Merge" 表示容器提供的 SupplementalGroups 和 FsGroup(在 SecurityContext 中指定)将与容器镜像(在 /etc/group 中)中定义的主要用户组进行合并。"Strict" 表示将使用容器提供的 SupplementalGroups 和 FsGroup(在 SecurityContext 中指定),而不是镜像中定义的任何组。securityContext.sysctls ([]Sysctl)
原子:将在合并期间被替换
Sysctls 包含用于 Pod 的命名空间 sysctls 列表。具有不受支持的 sysctls(由容器运行时)的 Pod 可能无法启动。注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.sysctls.name (string),必填
要设置的属性名称
securityContext.sysctls.value (string),必填
要设置的属性值
securityContext.windowsOptions (WindowsSecurityContextOptions)
应用于所有容器的 Windows 特定设置。如果未指定,将使用容器 SecurityContext 中的选项。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值具有优先权。注意,当 spec.os.name 为 linux 时,不能设置此字段。
WindowsSecurityContextOptions 包含 Windows 特定的选项和凭据。
securityContext.windowsOptions.gmsaCredentialSpec (string)
GMSACredentialSpec 是 GMSA 准入 Webhook (https://github.com/kubernetes-sigs/windows-gmsa) 内联 GMSACredentialSpecName 字段命名的 GMSA 凭据规范内容的地方。
securityContext.windowsOptions.gmsaCredentialSpecName (string)
GMSACredentialSpecName 是要使用的 GMSA 凭据规范的名称。
securityContext.windowsOptions.hostProcess (boolean)
HostProcess 确定容器是否应作为“主机进程 (Host Process)”容器运行。Pod 的所有容器必须具有相同的有效 HostProcess 值(不允许混合 HostProcess 容器和非 HostProcess 容器)。此外,如果 HostProcess 为 true,则 HostNetwork 也必须设置为 true。
securityContext.windowsOptions.runAsUserName (string)
Windows 中运行容器进程入口点的用户名。如果未指定,则默认为镜像元数据中指定的用户。也可以在 PodSecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值具有优先权。
hostUsers (boolean)
使用主机的用户命名空间。可选:默认为 true。如果设置为 true 或未显示,Pod 将在主机用户命名空间中运行,这对于 Pod 需要仅对主机用户命名空间可用的功能(例如使用 CAP_SYS_MODULE 加载内核模块)很有用。当设置为 false 时,会为 Pod 创建一个新的 userns。设置为 false 对于减轻容器逃逸漏洞很有用,甚至允许用户以 root 身份运行容器,而无需在主机上实际拥有 root 权限。此字段处于 Alpha 级别,仅被启用了 UserNamespacesSupport 功能的服务器认可。
resources (ResourceRequirements)
Resources 是 Pod 中所有容器所需的 CPU 和内存资源总量。它仅支持为 "cpu"、"memory" 和 "hugepages-" 资源名称指定 Requests 和 Limits。不支持 ResourceClaims。
此字段能够对整个 Pod 进行细粒度的资源分配控制,允许在 Pod 中的容器之间共享资源。
这是一个 Alpha 字段,需要启用 PodLevelResources 功能门。
ResourceRequirements 描述了计算资源要求。
resources.claims ([]ResourceClaim)
映射:在合并期间将保留 key name 上的唯一值
Claims 列出了此容器使用的在 spec.resourceClaims 中定义的资源名称。
此字段取决于 DynamicResourceAllocation 功能门。
此字段是不可变的。只能为容器设置。
ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。
resources.claims.name (string),必填
Name 必须与使用此字段的 Pod 的 pod.spec.resourceClaims 中的一个条目名称匹配。它使该资源在容器内可用。
resources.claims.request (string)
Request 是为引用的声明中请求所选择的名称。如果为空,则声明中的所有内容都可用,否则仅提供此请求的结果。
resources.limits (map[string]Quantity)
Limits 描述了允许的最大计算资源量。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
resources.requests (map[string]Quantity)
Requests 描述了所需的最小计算资源量。如果容器省略了 Requests,则在显式指定 Limits 时,它默认为 Limits,否则为实现定义的值。Requests 不能超过 Limits。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
resourceClaims ([]PodResourceClaim)
补丁策略:retainKeys,基于键 name 合并
映射:在合并期间将保留 key name 上的唯一值
ResourceClaims 定义了在允许 Pod 启动之前必须分配和保留哪些 ResourceClaims。资源将按名称提供给消耗它们的容器。
这是一个稳定字段,但需要启用 DynamicResourceAllocation 功能门。
此字段是不可变的。
*PodResourceClaim 引用一个 ResourceClaim,可以通过直接引用,也可以通过命名一个 ResourceClaimTemplate(然后将其转换为 Pod 的 ResourceClaim)。
它为其添加了一个名称,用于唯一标识 Pod 内部的 ResourceClaim。需要访问该 ResourceClaim 的容器使用此名称引用它。*
resourceClaims.name (string),必填
Name 唯一标识 Pod 内部的此资源声明。这必须是一个 DNS_LABEL。
resourceClaims.resourceClaimName (string)
ResourceClaimName 是与此 Pod 位于同一命名空间中的 ResourceClaim 对象的名称。
ResourceClaimName 和 ResourceClaimTemplateName 必须且仅能设置其中一个。
resourceClaims.resourceClaimTemplateName (string)
ResourceClaimTemplateName 是与此 Pod 位于同一命名空间中的 ResourceClaimTemplate 对象的名称。
该模板将用于创建一个新的 ResourceClaim,该声明将绑定到此 Pod。删除此 Pod 时,ResourceClaim 也将被删除。Pod 名称和资源名称,连同一个生成的组件,将用于为 ResourceClaim 形成唯一名称,该名称将记录在 pod.status.resourceClaimStatuses 中。
此字段是不可变的,在创建 ResourceClaim 后,控制平面不会对相应的 ResourceClaim 进行任何更改。
ResourceClaimName 和 ResourceClaimTemplateName 必须且仅能设置其中一个。
schedulingGates ([]PodSchedulingGate)
补丁策略:在 key name 上合并
映射:在合并期间将保留 key name 上的唯一值
SchedulingGates 是一个不透明的值列表,如果指定,将阻止 Pod 调度。如果 schedulingGates 不为空,Pod 将保持 SchedulingGated 状态,调度器将不会尝试调度该 Pod。
SchedulingGates 只能在 Pod 创建时设置,且之后只能移除。
PodSchedulingGate 与 Pod 相关联,用于保护其调度。
schedulingGates.name (string),必填
调度门的名称。每个调度门都必须有一个唯一的名称字段。
serviceAccount (string)
DeprecatedServiceAccount 是 ServiceAccountName 的弃用别名。已弃用:请改用 serviceAccountName。
您想要在 Pod 内运行的单个应用程序容器。
name (string), required
指定为 DNS_LABEL 的容器名称。Pod 中的每个容器都必须具有唯一的名称(DNS_LABEL)。不可更新。
image (string)
容器镜像名称。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images 此字段为可选,允许更高级别的配置管理在工作负载控制器(如 Deployments 和 StatefulSets)中设置默认值或覆盖容器镜像。
imagePullPolicy (string)
镜像拉取策略。Always、Never、IfNotPresent 之一。如果指定了 :latest 标签,则默认为 Always,否则默认为 IfNotPresent。不可更新。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images#updating-images
可能的枚举值
"Always" 表示 kubelet 始终尝试拉取最新镜像。如果拉取失败,容器将失败。"IfNotPresent" 表示如果磁盘上不存在镜像,kubelet 将进行拉取。如果镜像不存在且拉取失败,容器将失败。"Never" 表示 kubelet 从不拉取镜像,仅使用本地镜像。如果镜像不存在,容器将失败command ([]string)
原子:将在合并期间被替换
入口点数组。不在 shell 中执行。如果未提供此项,则使用容器镜像的 ENTRYPOINT。变量引用 $(VAR_NAME) 使用容器的环境变量进行扩展。如果无法解析变量,则输入字符串中的引用将保持不变。双 $$ 简化为单个 $,这允许转义 $(VAR_NAME) 语法:例如 "$$(VAR_NAME)" 将产生字符串字面量 "$(VAR_NAME)"。无论变量是否存在,转义的引用都不会被扩展。不可更新。更多信息:https://kubernetes.ac.cn/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
args ([]string)
原子:将在合并期间被替换
入口点的参数。如果未提供此参数,将使用容器镜像的 CMD。变量引用 $(VAR_NAME) 将使用容器的环境变量进行展开。如果无法解析变量,则输入字符串中的引用将保持不变。双 $$ 会缩减为单个 $,这允许对 $(VAR_NAME) 语法进行转义:例如 "$$(VAR_NAME)" 将生成字符串字面量 "$(VAR_NAME)"。无论变量是否存在,转义后的引用都不会被展开。不可更新。更多信息:https://kubernetes.ac.cn/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
workingDir (string)
容器的工作目录。如果未指定,将使用容器运行时的默认值,该默认值可能在容器镜像中配置。不可更新。
ports ([]ContainerPort)
补丁策略:按 containerPort 键合并
映射:合并期间将保留键 containerPort, protocol 的唯一值
要从容器公开的端口列表。在此处不指定端口并不会阻止该端口被公开。容器内监听默认 "0.0.0.0" 地址的任何端口都将可以从网络访问。使用战略合并补丁修改此数组可能会损坏数据。有关更多信息,请参见 https://github.com/kubernetes/kubernetes/issues/108255。不可更新。
ports.containerPort (int32),必需
要在 Pod IP 地址上公开的端口号。这必须是有效的端口号,0 < x < 65536。
ports.hostIP (string)
将外部端口绑定到的主机 IP。
ports.hostPort (int32)
要在主机上公开的端口号。如果指定,则必须是有效的端口号,0 < x < 65536。如果指定了 HostNetwork,则此值必须与 ContainerPort 匹配。大多数容器不需要此项。
ports.name (string)
如果指定,这必须是 IANA_SVC_NAME 且在 Pod 内唯一。Pod 中的每个命名端口必须具有唯一的名称。可由服务引用的端口名称。
ports.protocol (string)
端口协议。必须是 UDP、TCP 或 SCTP。默认为 "TCP"。
可能的枚举值
"SCTP" 表示 SCTP 协议。"TCP" 表示 TCP 协议。"UDP" 表示 UDP 协议。env ([]EnvVar)
补丁策略:在 key name 上合并
映射:在合并期间将保留 key name 上的唯一值
要在容器中设置的环境变量列表。不可更新。
env.name (string),必需
环境变量的名称。可以由除 '=' 之外的任何可打印 ASCII 字符组成。
env.value (string)
变量引用 $(VAR_NAME) 将使用容器中先前定义的环境变量和任何服务环境变量进行展开。如果无法解析变量,则输入字符串中的引用将保持不变。双 $$ 会缩减为单个 $,这允许对 $(VAR_NAME) 语法进行转义:例如 "$$(VAR_NAME)" 将生成字符串字面量 "$(VAR_NAME)"。无论变量是否存在,转义后的引用都不会被展开。默认为 ""。
env.valueFrom (EnvVarSource)
环境变量值的来源。如果 value 不为空,则不能使用此字段。
env.valueFrom.configMapKeyRef (ConfigMapKeySelector)
选择 ConfigMap 的一个键。
env.valueFrom.configMapKeyRef.key (string),必需
要选择的键。
env.valueFrom.configMapKeyRef.name (string)
所引用对象的名称。此字段实际上是必需的,但出于向后兼容性考虑允许为空。此处值为空的此类实例几乎肯定是错误的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names
env.valueFrom.configMapKeyRef.optional (boolean)
指定是否必须定义 ConfigMap 或其键
env.valueFrom.fieldRef (ObjectFieldSelector)
选择 Pod 的字段:支持 metadata.name, metadata.namespace, metadata.labels['\<KEY>'], metadata.annotations['\<KEY>'], spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs。
env.valueFrom.fileKeyRef (FileKeySelector)
FileKeyRef 选择 env 文件的键。需要启用 EnvFiles 特性门控。
env.valueFrom.fileKeyRef.key (string),必需
env 文件内的键。无效的键将阻止 Pod 启动。源中定义的键可以由除 '=' 之外的任何可打印 ASCII 字符组成。在 EnvFiles 特性门控处于 Alpha 阶段期间,键的大小限制为 128 个字符。
env.valueFrom.fileKeyRef.path (string),必需
卷内要从中选择文件的路径。必须是相对路径,不得包含 '..' 路径或以 '..' 开头。
env.valueFrom.fileKeyRef.volumeName (string),必需
包含 env 文件的卷挂载名称。
env.valueFrom.fileKeyRef.optional (boolean)
指定是否必须定义文件或其键。如果文件或键不存在,则不会发布环境变量。如果 optional 设置为 true 且指定的键不存在,则 Pod 的容器中不会设置该环境变量。
如果 optional 设置为 false 且指定的键不存在,则在 Pod 创建期间将返回错误。
env.valueFrom.resourceFieldRef (ResourceFieldSelector)
选择容器的资源:目前仅支持资源限制和请求(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory 和 requests.ephemeral-storage)。
env.valueFrom.secretKeyRef (SecretKeySelector)
选择 Pod 命名空间中 Secret 的一个键
SecretKeySelector 选择 Secret 的一个键。
env.valueFrom.secretKeyRef.key (string),必需
要从中选择的 Secret 键。必须是有效的 secret 键。
env.valueFrom.secretKeyRef.name (string)
所引用对象的名称。此字段实际上是必需的,但出于向后兼容性考虑允许为空。此处值为空的此类实例几乎肯定是错误的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names
env.valueFrom.secretKeyRef.optional (boolean)
指定是否必须定义 Secret 或其键
envFrom ([]EnvFromSource)
原子:将在合并期间被替换
用于填充容器中环境变量的源列表。源中定义的键可以由除 '=' 之外的任何可打印 ASCII 字符组成。当多个源中存在相同的键时,与最后一个源关联的值将优先。由具有重复键的 Env 定义的值将优先。不可更新。
EnvFromSource 表示一组 ConfigMap 或 Secret 的来源
envFrom.configMapRef (ConfigMapEnvSource)
要从中选择的 ConfigMap
*ConfigMapEnvSource 选择一个 ConfigMap 来填充环境变量。
目标 ConfigMap 的 Data 字段内容将表示为环境变量的键值对。*
envFrom.configMapRef.name (string)
所引用对象的名称。此字段实际上是必需的,但出于向后兼容性考虑允许为空。此处值为空的此类实例几乎肯定是错误的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names
envFrom.configMapRef.optional (boolean)
指定是否必须定义 ConfigMap
envFrom.prefix (string)
可选文本,将作为前缀添加到每个环境变量的名称前。可以由除 '=' 之外的任何可打印 ASCII 字符组成。
envFrom.secretRef (SecretEnvSource)
要从中选择的 Secret
*SecretEnvSource 选择一个 Secret 来填充环境变量。
目标 Secret 的 Data 字段内容将表示为环境变量的键值对。*
envFrom.secretRef.name (string)
所引用对象的名称。此字段实际上是必需的,但出于向后兼容性考虑允许为空。此处值为空的此类实例几乎肯定是错误的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names
envFrom.secretRef.optional (boolean)
指定是否必须定义 Secret
volumeMounts ([]VolumeMount)
补丁策略:按 mountPath 键合并
映射:合并期间将保留键 mountPath 的唯一值
挂载到容器文件系统中的 Pod 卷。不可更新。
volumeMounts.mountPath (string),必需
容器内应挂载卷的路径。不得包含 ':'。
volumeMounts.name (string),必需
这必须与卷的名称匹配。
volumeMounts.mountPropagation (string)
mountPropagation 确定挂载如何从主机传播到容器,反之亦然。如果未设置,则使用 MountPropagationNone。此字段在 1.10 版本中为 beta。当 RecursiveReadOnly 设置为 IfPossible 或 Enabled 时,MountPropagation 必须为 None 或未指定(默认为 None)。
可能的枚举值
"Bidirectional" 表示容器中的卷将接收来自主机或其他容器的新挂载,并且其自身的挂载也将从容器传播到主机或其他容器。请注意,此模式递归应用于卷中的所有挂载(Linux 术语中为 "rshared")。"HostToContainer" 表示容器中的卷将接收来自主机或其他容器的新挂载,但挂载在容器内部的文件系统不会传播到主机或其他容器。请注意,此模式递归应用于卷中的所有挂载(Linux 术语中为 "rslave")。"None" 表示容器中的卷不会接收来自主机或其他容器的新挂载,且挂载在容器内部的文件系统也不会传播到主机或其他容器。请注意,此模式对应于 Linux 术语中的 "private"。volumeMounts.readOnly (boolean)
如果为 true,则以只读方式挂载,否则(false 或未指定)为读写。默认为 false。
volumeMounts.recursiveReadOnly (string)
RecursiveReadOnly 指定是否应递归处理只读挂载。
如果 ReadOnly 为 false,则此字段无意义且必须未指定。
如果 ReadOnly 为 true 且此字段设置为 Disabled,则挂载不会递归为只读。如果此字段设置为 IfPossible,则在容器运行时支持的情况下,挂载将递归为只读。如果此字段设置为 Enabled,则在容器运行时支持的情况下,挂载将递归为只读,否则将不会启动 Pod 并生成错误以指示原因。
如果此字段设置为 IfPossible 或 Enabled,则 MountPropagation 必须设置为 None(或未指定,默认为 None)。
如果未指定此字段,则视为等同于 Disabled。
volumeMounts.subPath (string)
卷内应从中挂载容器卷的路径。默认为 ""(卷的根目录)。
volumeMounts.subPathExpr (string)
卷内应从中挂载容器卷的展开路径。行为类似于 SubPath,但环境变量引用 $(VAR_NAME) 使用容器的环境变量进行展开。默认为 ""(卷的根目录)。SubPathExpr 和 SubPath 是互斥的。
volumeDevices ([]VolumeDevice)
补丁策略:按 devicePath 键合并
映射:合并期间将保留键 devicePath 的唯一值
volumeDevices 是容器要使用的块设备列表。
volumeDevices.devicePath (string),必需
devicePath 是容器内将映射设备到的路径。
volumeDevices.name (string),必需
name 必须与 Pod 中 persistentVolumeClaim 的名称匹配
resources (ResourceRequirements)
此容器所需的计算资源。不可更新。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
ResourceRequirements 描述了计算资源要求。
resources.claims ([]ResourceClaim)
映射:在合并期间将保留 key name 上的唯一值
Claims 列出了此容器使用的在 spec.resourceClaims 中定义的资源名称。
此字段取决于 DynamicResourceAllocation 功能门。
此字段是不可变的。只能为容器设置。
ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。
resources.claims.name (string),必填
Name 必须与使用此字段的 Pod 的 pod.spec.resourceClaims 中的一个条目名称匹配。它使该资源在容器内可用。
resources.claims.request (string)
Request 是为引用的声明中请求所选择的名称。如果为空,则声明中的所有内容都可用,否则仅提供此请求的结果。
resources.limits (map[string]Quantity)
Limits 描述了允许的最大计算资源量。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
resources.requests (map[string]Quantity)
Requests 描述了所需的最小计算资源量。如果容器省略了 Requests,则在显式指定 Limits 时,它默认为 Limits,否则为实现定义的值。Requests 不能超过 Limits。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
resizePolicy ([]ContainerResizePolicy)
原子:将在合并期间被替换
容器的资源调整策略。此字段不能在临时容器上设置。
ContainerResizePolicy 表示容器的资源调整策略。
resizePolicy.resourceName (string),必需
此资源调整策略适用的资源名称。支持的值:cpu, memory。
resizePolicy.restartPolicy (string),必需
调整指定资源时应用的重启策略。如果未指定,默认为 NotRequired。
lifecycle (Lifecycle)
管理系统应响应容器生命周期事件而采取的操作。不可更新。
Lifecycle 描述了管理系统应响应容器生命周期事件而采取的操作。对于 PostStart 和 PreStop 生命周期处理程序,容器的管理会阻塞直到操作完成,除非容器进程失败,在这种情况下处理程序会中止。
lifecycle.postStart (LifecycleHandler)
PostStart 在容器创建后立即调用。如果处理程序失败,容器将根据其重启策略终止并重启。在钩子完成之前,对容器的其他管理将被阻塞。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
lifecycle.preStop (LifecycleHandler)
PreStop 在容器由于 API 请求或管理事件(如存活/启动探针失败、抢占、资源争用等)而终止之前立即调用。如果容器崩溃或退出,则不会调用处理程序。Pod 的终止宽限期倒计时在执行 PreStop 钩子之前开始。无论处理程序的结果如何,容器最终都将在 Pod 的终止宽限期内终止(除非被终结器延迟)。在钩子完成或达到终止宽限期之前,对容器的其他管理将被阻塞。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
lifecycle.stopSignal (string)
StopSignal 定义了容器停止时将发送给容器的信号。如果未指定,默认值由所使用的容器运行时定义。StopSignal 只能为 .spec.os.name 非空的 Pod 设置。
可能的枚举值
"SIGABRT""SIGALRM""SIGBUS""SIGCHLD""SIGCLD""SIGCONT""SIGFPE""SIGHUP""SIGILL""SIGINT""SIGIO""SIGIOT""SIGKILL""SIGPIPE""SIGPOLL""SIGPROF""SIGPWR""SIGQUIT""SIGRTMAX""SIGRTMAX-1""SIGRTMAX-10""SIGRTMAX-11""SIGRTMAX-12""SIGRTMAX-13""SIGRTMAX-14""SIGRTMAX-2""SIGRTMAX-3""SIGRTMAX-4""SIGRTMAX-5""SIGRTMAX-6""SIGRTMAX-7""SIGRTMAX-8""SIGRTMAX-9""SIGRTMIN""SIGRTMIN+1""SIGRTMIN+10""SIGRTMIN+11""SIGRTMIN+12""SIGRTMIN+13""SIGRTMIN+14""SIGRTMIN+15""SIGRTMIN+2""SIGRTMIN+3""SIGRTMIN+4""SIGRTMIN+5""SIGRTMIN+6""SIGRTMIN+7""SIGRTMIN+8""SIGRTMIN+9""SIGSEGV""SIGSTKFLT""SIGSTOP""SIGSYS""SIGTERM""SIGTRAP""SIGTSTP""SIGTTIN""SIGTTOU""SIGURG""SIGUSR1""SIGUSR2""SIGVTALRM""SIGWINCH""SIGXCPU""SIGXFSZ"terminationMessagePath (string)
可选:容器终止消息将写入的文件的挂载路径。该消息旨在作为简短的最终状态,例如断言失败消息。如果大于 4096 字节,将被节点截断。所有容器的总消息长度将限制为 12kb。默认为 /dev/termination-log。不可更新。
terminationMessagePolicy (string)
指示应如何填充终止消息。File 将使用 terminationMessagePath 的内容来填充成功和失败时的容器状态消息。FallbackToLogsOnError 将在终止消息文件为空且容器因错误退出时使用容器日志输出的最后一部分。日志输出限制为 2048 字节或 80 行(以较小者为准)。默认为 File。不可更新。
可能的枚举值
"FallbackToLogsOnError" 将在容器因错误退出且 terminationMessagePath 无内容时,读取最近的容器日志内容作为容器状态消息。"File" 是默认行为,并将在容器退出时将容器状态消息设置为容器 terminationMessagePath 的内容。livenessProbe (Probe)
定期探测容器存活性。如果探针失败,容器将重启。不可更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes
readinessProbe (Probe)
定期探测容器服务就绪性。如果探针失败,容器将从服务终端节点中移除。不可更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes
startupProbe (Probe)
StartupProbe 指示 Pod 已成功初始化。如果指定,在探针成功完成之前不会执行其他探针。如果此探针失败,Pod 将重启,就像 livenessProbe 失败一样。这可用于在 Pod 生命周期的开始(此时可能需要很长时间来加载数据或预热缓存)提供与稳定运行期间不同的探针参数。此项不可更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes
restartPolicy (string)
RestartPolicy 定义了 Pod 中各个容器的重启行为。这将覆盖 Pod 级别的重启策略。如果未指定此字段,则重启行为由 Pod 的重启策略和容器类型决定。此外,为 init 容器设置 RestartPolicy 为 "Always" 将产生以下效果:该 init 容器将在退出时持续重启,直到所有常规容器都已终止。一旦所有常规容器完成,所有 restartPolicy 为 "Always" 的 init 容器都将关闭。这种生命周期与正常的 init 容器不同,通常被称为“边车 (sidecar)”容器。尽管此 init 容器仍按 init 容器顺序启动,但在进入下一个 init 容器之前,它不会等待容器完成。相反,下一个 init 容器在启动此 init 容器后或在任何 startupProbe 成功完成后立即启动。
restartPolicyRules ([]ContainerRestartRule)
原子:将在合并期间被替换
表示一组用于确定容器在退出时是否应重启的检查规则。这些规则按顺序进行评估。一旦规则匹配容器退出条件,剩余规则将被忽略。如果没有规则匹配容器退出条件,则容器级别的重启策略将决定是否重启容器。规则限制:- 最多允许 20 条规则。- 规则可以具有相同的操作。- 验证中不禁止相同的规则。指定规则时,即使容器符合 Pod 的 RestartPolicy,容器也必须显式设置 RestartPolicy。
ContainerRestartRule 描述了如何处理容器退出。
restartPolicyRules.action (string),必需
指定如果满足要求,在容器退出时采取的操作。唯一可能的值是 "Restart"(重启容器)。
restartPolicyRules.exitCodes (ContainerRestartRuleOnExitCodes)
表示容器退出时要检查的退出代码。
ContainerRestartRuleOnExitCodes 描述了基于退出代码处理已退出容器的条件。
restartPolicyRules.exitCodes.operator (string),必需
表示容器退出代码与指定值之间的关系。可能的值:- In:如果容器退出代码在指定值集合中,则满足要求。
restartPolicyRules.exitCodes.values ([]int32)
集合:合并期间将保留唯一值
指定要检查的容器退出代码集合。最多允许 255 个元素。
securityContext (SecurityContext)
SecurityContext 定义了容器应运行的安全选项。如果设置,SecurityContext 的字段将覆盖 PodSecurityContext 的等效字段。更多信息:https://kubernetes.ac.cn/docs/tasks/configure-pod-container/security-context/
SecurityContext 包含将应用于容器的安全配置。某些字段同时存在于 SecurityContext 和 PodSecurityContext 中。当同时设置两者时,SecurityContext 中的值优先。
securityContext.allowPrivilegeEscalation (boolean)
AllowPrivilegeEscalation 控制进程是否可以获得比其父进程更多的权限。此布尔值直接控制是否会在容器进程上设置 no_new_privs 标志。在以下情况下,AllowPrivilegeEscalation 始终为 true:1) 以特权方式运行 2) 具有 CAP_SYS_ADMIN。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.appArmorProfile (AppArmorProfile)
appArmorProfile 是此容器使用的 AppArmor 选项。如果设置,此配置文件将覆盖 Pod 的 appArmorProfile。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
AppArmorProfile 定义了 Pod 或容器的 AppArmor 设置。
securityContext.appArmorProfile.type (string),必填
type 指示将应用哪种 AppArmor 配置文件。有效选项为:Localhost - 预加载在节点上的配置文件。RuntimeDefault - 容器运行时的默认配置文件。Unconfined - 无 AppArmor 执行。
可能的枚举值
"Localhost" 表示应使用预加载在节点上的配置文件。"RuntimeDefault" 表示应使用容器运行时的默认 AppArmor 配置文件。"Unconfined" 表示不应执行任何 AppArmor 配置文件。securityContext.appArmorProfile.localhostProfile (string)
localhostProfile 指示应使用加载在节点上的配置文件。要使此功能生效,配置文件必须预先配置在节点上。必须匹配加载的配置文件名称。仅当 type 为 "Localhost" 时才必须设置。
securityContext.capabilities (Capabilities)
运行容器时要添加/删除的功能。默认为容器运行时授予的默认功能集。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.capabilities.add ([]string)
原子:将在合并期间被替换
添加的功能
securityContext.capabilities.drop ([]string)
原子:将在合并期间被替换
移除的功能
securityContext.procMount (string)
procMount 表示用于容器的 proc 挂载类型。默认值为 Default,它使用容器运行时针对只读路径和屏蔽路径的默认设置。这需要启用 ProcMountType 特性标志。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
可能的枚举值
"Default" 使用容器运行时针对 /proc 的只读和屏蔽路径的默认设置。大多数容器运行时会屏蔽 /proc 中的某些路径,以避免意外暴露特殊设备或信息。"Unmasked" 绕过容器运行时的默认屏蔽行为,并确保新创建的 /proc 在容器中保持完整,不进行任何修改。securityContext.privileged (boolean)
以特权模式运行容器。特权容器中的进程在本质上等同于主机上的 root 用户。默认为 false。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.readOnlyRootFilesystem (boolean)
此容器是否具有只读根文件系统。默认为 false。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.runAsUser (int64)
运行容器进程入口点的 UID。如果未指定,则默认为镜像元数据中指定的用户。也可以在 PodSecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.runAsNonRoot (boolean)
指示容器必须以非 root 用户身份运行。如果为 true,Kubelet 将在运行时验证镜像以确保其不以 UID 0(root)运行,如果以 root 运行则无法启动容器。如果未设置或为 false,则不执行此类验证。也可以在 PodSecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值优先。
securityContext.runAsGroup (int64)
运行容器进程入口点的 GID。如果未设置,则使用运行时默认值。也可以在 PodSecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.seLinuxOptions (SELinuxOptions)
应用于容器的 SELinux 上下文。如果未指定,容器运行时将为每个容器分配一个随机的 SELinux 上下文。也可以在 PodSecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.seLinuxOptions.level (string)
Level 是应用于容器的 SELinux 级别标签。
securityContext.seLinuxOptions.role (string)
Role 是应用于容器的 SELinux 角色标签。
securityContext.seLinuxOptions.type (string)
Type 是应用于容器的 SELinux 类型标签。
securityContext.seLinuxOptions.user (string)
User 是应用于容器的 SELinux 用户标签。
securityContext.seccompProfile (SeccompProfile)
此容器使用的 seccomp 选项。如果在 Pod 和容器级别都提供了 seccomp 选项,则容器选项将覆盖 Pod 选项。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
SeccompProfile 定义了 Pod/容器的 seccomp 配置文件设置。只能设置一个配置文件源。
securityContext.seccompProfile.type (string),必填
type 指示将应用哪种 seccomp 配置文件。有效选项为:
Localhost - 应使用在节点上文件中定义的配置文件。RuntimeDefault - 应使用容器运行时默认配置文件。Unconfined - 不应应用任何配置文件。
可能的枚举值
"Localhost" 表示应使用在节点上文件中定义的配置文件。相对于 <kubelet-root-dir>/seccomp 的文件位置。"RuntimeDefault" 代表默认的容器运行时 seccomp 配置文件。"Unconfined" 表示不应用任何 seccomp 配置文件(又称无约束)。securityContext.seccompProfile.localhostProfile (string)
localhostProfile 指示应使用在节点上文件中定义的配置文件。要使此功能生效,配置文件必须预先配置在节点上。必须是相对于 kubelet 配置的 seccomp 配置文件位置的后代路径。如果 type 为 "Localhost",则必须设置。对于任何其他类型,则不得设置。
securityContext.windowsOptions (WindowsSecurityContextOptions)
应用于所有容器的 Windows 特定设置。如果未指定,将使用 PodSecurityContext 中的选项。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 linux 时,不能设置此字段。
WindowsSecurityContextOptions 包含 Windows 特定的选项和凭据。
securityContext.windowsOptions.gmsaCredentialSpec (string)
GMSACredentialSpec 是 GMSA 准入 Webhook (https://github.com/kubernetes-sigs/windows-gmsa) 内联 GMSACredentialSpecName 字段命名的 GMSA 凭据规范内容的地方。
securityContext.windowsOptions.gmsaCredentialSpecName (string)
GMSACredentialSpecName 是要使用的 GMSA 凭据规范的名称。
securityContext.windowsOptions.hostProcess (boolean)
HostProcess 确定容器是否应作为“主机进程 (Host Process)”容器运行。Pod 的所有容器必须具有相同的有效 HostProcess 值(不允许混合 HostProcess 容器和非 HostProcess 容器)。此外,如果 HostProcess 为 true,则 HostNetwork 也必须设置为 true。
securityContext.windowsOptions.runAsUserName (string)
Windows 中运行容器进程入口点的用户名。如果未指定,则默认为镜像元数据中指定的用户。也可以在 PodSecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值具有优先权。
stdin (boolean)
容器运行时是否应为容器内的 stdin 分配缓冲区。如果未设置,容器中对 stdin 的读取将始终导致 EOF。默认为 false。
stdinOnce (boolean)
容器运行时在单次 attach 打开 stdin 通道后是否应关闭它。当 stdin 为 true 时,stdin 流将在多次 attach 会话中保持打开状态。如果 stdinOnce 设置为 true,则在容器启动时打开 stdin,在第一个客户端 attach 到 stdin 之前为空,然后保持打开并接受数据直到客户端断开连接,此时 stdin 关闭并在容器重启前保持关闭。如果此标志为 false,则从 stdin 读取的容器进程将永远不会收到 EOF。默认为 false。
tty (boolean)
此容器是否应为自己分配 TTY,这还需要 'stdin' 为 true。默认为 false。
EphemeralContainer 是一个临时容器,您可以将其添加到现有的 Pod 中以进行用户发起的活动,例如调试。临时容器没有任何资源或调度保证,当它们退出或 Pod 被删除或重启时,它们不会被重启。如果临时容器导致 Pod 超出其资源分配,kubelet 可能会驱逐 Pod。
要添加临时容器,请使用现有 Pod 的 ephemeralcontainers 子资源。临时容器不可被删除或重启。
name (string), required
指定为 DNS_LABEL 的临时容器名称。此名称在所有容器、init 容器和临时容器中必须是唯一的。
targetContainerName (string)
如果设置,则为 PodSpec 中此临时容器所针对的容器名称。临时容器将在该容器的命名空间(IPC、PID 等)中运行。如果未设置,则临时容器使用 Pod 规范中配置的命名空间。
容器运行时必须实现对此特性的支持。如果运行时不支持命名空间定位,则设置此字段的结果未定义。
image (string)
容器镜像名称。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images
imagePullPolicy (string)
镜像拉取策略。Always、Never、IfNotPresent 之一。如果指定了 :latest 标签,则默认为 Always,否则默认为 IfNotPresent。不可更新。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images#updating-images
可能的枚举值
"Always" 表示 kubelet 始终尝试拉取最新镜像。如果拉取失败,容器将失败。"IfNotPresent" 表示如果磁盘上不存在镜像,kubelet 将进行拉取。如果镜像不存在且拉取失败,容器将失败。"Never" 表示 kubelet 从不拉取镜像,仅使用本地镜像。如果镜像不存在,容器将失败command ([]string)
原子:将在合并期间被替换
入口点数组。不会在 shell 内执行。如果未提供,则使用镜像的 ENTRYPOINT。变量引用 $(VAR_NAME) 使用容器的环境变量进行展开。如果无法解析变量,则输入字符串中的引用将保持不变。双 $$ 会缩减为单个 $,这允许对 $(VAR_NAME) 语法进行转义:例如 "$$(VAR_NAME)" 将生成字符串字面量 "$(VAR_NAME)"。无论变量是否存在,转义后的引用都不会被展开。不可更新。更多信息:https://kubernetes.ac.cn/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
args ([]string)
原子:将在合并期间被替换
入口点的参数。如果未提供,则使用镜像的 CMD。变量引用 $(VAR_NAME) 使用容器的环境变量进行展开。如果无法解析变量,则输入字符串中的引用将保持不变。双 $$ 会缩减为单个 $,这允许对 $(VAR_NAME) 语法进行转义:例如 "$$(VAR_NAME)" 将生成字符串字面量 "$(VAR_NAME)"。无论变量是否存在,转义后的引用都不会被展开。不可更新。更多信息:https://kubernetes.ac.cn/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
workingDir (string)
容器的工作目录。如果未指定,将使用容器运行时的默认值,该默认值可能在容器镜像中配置。不可更新。
env ([]EnvVar)
补丁策略:在 key name 上合并
映射:在合并期间将保留 key name 上的唯一值
要在容器中设置的环境变量列表。不可更新。
env.name (string),必需
环境变量的名称。可以由除 '=' 之外的任何可打印 ASCII 字符组成。
env.value (string)
变量引用 $(VAR_NAME) 将使用容器中先前定义的环境变量和任何服务环境变量进行展开。如果无法解析变量,则输入字符串中的引用将保持不变。双 $$ 会缩减为单个 $,这允许对 $(VAR_NAME) 语法进行转义:例如 "$$(VAR_NAME)" 将生成字符串字面量 "$(VAR_NAME)"。无论变量是否存在,转义后的引用都不会被展开。默认为 ""。
env.valueFrom (EnvVarSource)
环境变量值的来源。如果 value 不为空,则不能使用此字段。
env.valueFrom.configMapKeyRef (ConfigMapKeySelector)
选择 ConfigMap 的一个键。
env.valueFrom.configMapKeyRef.key (string),必需
要选择的键。
env.valueFrom.configMapKeyRef.name (string)
所引用对象的名称。此字段实际上是必需的,但出于向后兼容性考虑允许为空。此处值为空的此类实例几乎肯定是错误的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names
env.valueFrom.configMapKeyRef.optional (boolean)
指定是否必须定义 ConfigMap 或其键
env.valueFrom.fieldRef (ObjectFieldSelector)
选择 Pod 的字段:支持 metadata.name, metadata.namespace, metadata.labels['\<KEY>'], metadata.annotations['\<KEY>'], spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs。
env.valueFrom.fileKeyRef (FileKeySelector)
FileKeyRef 选择 env 文件的键。需要启用 EnvFiles 特性门控。
env.valueFrom.fileKeyRef.key (string),必需
env 文件内的键。无效的键将阻止 Pod 启动。源中定义的键可以由除 '=' 之外的任何可打印 ASCII 字符组成。在 EnvFiles 特性门控处于 Alpha 阶段期间,键的大小限制为 128 个字符。
env.valueFrom.fileKeyRef.path (string),必需
卷内要从中选择文件的路径。必须是相对路径,不得包含 '..' 路径或以 '..' 开头。
env.valueFrom.fileKeyRef.volumeName (string),必需
包含 env 文件的卷挂载名称。
env.valueFrom.fileKeyRef.optional (boolean)
指定是否必须定义文件或其键。如果文件或键不存在,则不会发布环境变量。如果 optional 设置为 true 且指定的键不存在,则 Pod 的容器中不会设置该环境变量。
如果 optional 设置为 false 且指定的键不存在,则在 Pod 创建期间将返回错误。
env.valueFrom.resourceFieldRef (ResourceFieldSelector)
选择容器的资源:目前仅支持资源限制和请求(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory 和 requests.ephemeral-storage)。
env.valueFrom.secretKeyRef (SecretKeySelector)
选择 Pod 命名空间中 Secret 的一个键
SecretKeySelector 选择 Secret 的一个键。
env.valueFrom.secretKeyRef.key (string),必需
要从中选择的 Secret 键。必须是有效的 secret 键。
env.valueFrom.secretKeyRef.name (string)
所引用对象的名称。此字段实际上是必需的,但出于向后兼容性考虑允许为空。此处值为空的此类实例几乎肯定是错误的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names
env.valueFrom.secretKeyRef.optional (boolean)
指定是否必须定义 Secret 或其键
envFrom ([]EnvFromSource)
原子:将在合并期间被替换
用于填充容器中环境变量的源列表。源中定义的键可以由除 '=' 之外的任何可打印 ASCII 字符组成。当多个源中存在相同的键时,与最后一个源关联的值将优先。由具有重复键的 Env 定义的值将优先。不可更新。
EnvFromSource 表示一组 ConfigMap 或 Secret 的来源
envFrom.configMapRef (ConfigMapEnvSource)
要从中选择的 ConfigMap
*ConfigMapEnvSource 选择一个 ConfigMap 来填充环境变量。
目标 ConfigMap 的 Data 字段内容将表示为环境变量的键值对。*
envFrom.configMapRef.name (string)
所引用对象的名称。此字段实际上是必需的,但出于向后兼容性考虑允许为空。此处值为空的此类实例几乎肯定是错误的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names
envFrom.configMapRef.optional (boolean)
指定是否必须定义 ConfigMap
envFrom.prefix (string)
可选文本,将作为前缀添加到每个环境变量的名称前。可以由除 '=' 之外的任何可打印 ASCII 字符组成。
envFrom.secretRef (SecretEnvSource)
要从中选择的 Secret
*SecretEnvSource 选择一个 Secret 来填充环境变量。
目标 Secret 的 Data 字段内容将表示为环境变量的键值对。*
envFrom.secretRef.name (string)
所引用对象的名称。此字段实际上是必需的,但出于向后兼容性考虑允许为空。此处值为空的此类实例几乎肯定是错误的。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names
envFrom.secretRef.optional (boolean)
指定是否必须定义 Secret
volumeMounts ([]VolumeMount)
补丁策略:按 mountPath 键合并
映射:合并期间将保留键 mountPath 的唯一值
挂载到容器文件系统中的 Pod 卷。临时容器不允许子路径挂载。不可更新。
volumeMounts.mountPath (string),必需
容器内应挂载卷的路径。不得包含 ':'。
volumeMounts.name (string),必需
这必须与卷的名称匹配。
volumeMounts.mountPropagation (string)
mountPropagation 确定挂载如何从主机传播到容器,反之亦然。如果未设置,则使用 MountPropagationNone。此字段在 1.10 版本中为 beta。当 RecursiveReadOnly 设置为 IfPossible 或 Enabled 时,MountPropagation 必须为 None 或未指定(默认为 None)。
可能的枚举值
"Bidirectional" 表示容器中的卷将接收来自主机或其他容器的新挂载,并且其自身的挂载也将从容器传播到主机或其他容器。请注意,此模式递归应用于卷中的所有挂载(Linux 术语中为 "rshared")。"HostToContainer" 表示容器中的卷将接收来自主机或其他容器的新挂载,但挂载在容器内部的文件系统不会传播到主机或其他容器。请注意,此模式递归应用于卷中的所有挂载(Linux 术语中为 "rslave")。"None" 表示容器中的卷不会接收来自主机或其他容器的新挂载,且挂载在容器内部的文件系统也不会传播到主机或其他容器。请注意,此模式对应于 Linux 术语中的 "private"。volumeMounts.readOnly (boolean)
如果为 true,则以只读方式挂载,否则(false 或未指定)为读写。默认为 false。
volumeMounts.recursiveReadOnly (string)
RecursiveReadOnly 指定是否应递归处理只读挂载。
如果 ReadOnly 为 false,则此字段无意义且必须未指定。
如果 ReadOnly 为 true 且此字段设置为 Disabled,则挂载不会递归为只读。如果此字段设置为 IfPossible,则在容器运行时支持的情况下,挂载将递归为只读。如果此字段设置为 Enabled,则在容器运行时支持的情况下,挂载将递归为只读,否则将不会启动 Pod 并生成错误以指示原因。
如果此字段设置为 IfPossible 或 Enabled,则 MountPropagation 必须设置为 None(或未指定,默认为 None)。
如果未指定此字段,则视为等同于 Disabled。
volumeMounts.subPath (string)
卷内应从中挂载容器卷的路径。默认为 ""(卷的根目录)。
volumeMounts.subPathExpr (string)
卷内应从中挂载容器卷的展开路径。行为类似于 SubPath,但环境变量引用 $(VAR_NAME) 使用容器的环境变量进行展开。默认为 ""(卷的根目录)。SubPathExpr 和 SubPath 是互斥的。
volumeDevices ([]VolumeDevice)
补丁策略:按 devicePath 键合并
映射:合并期间将保留键 devicePath 的唯一值
volumeDevices 是容器要使用的块设备列表。
volumeDevices.devicePath (string),必需
devicePath 是容器内将映射设备到的路径。
volumeDevices.name (string),必需
name 必须与 Pod 中 persistentVolumeClaim 的名称匹配
resizePolicy ([]ContainerResizePolicy)
原子:将在合并期间被替换
容器的资源调整策略。
ContainerResizePolicy 表示容器的资源调整策略。
resizePolicy.resourceName (string),必需
此资源调整策略适用的资源名称。支持的值:cpu, memory。
resizePolicy.restartPolicy (string),必需
调整指定资源时应用的重启策略。如果未指定,默认为 NotRequired。
terminationMessagePath (string)
可选:容器终止消息将写入的文件的挂载路径。该消息旨在作为简短的最终状态,例如断言失败消息。如果大于 4096 字节,将被节点截断。所有容器的总消息长度将限制为 12kb。默认为 /dev/termination-log。不可更新。
terminationMessagePolicy (string)
指示应如何填充终止消息。File 将使用 terminationMessagePath 的内容来填充成功和失败时的容器状态消息。FallbackToLogsOnError 将在终止消息文件为空且容器因错误退出时使用容器日志输出的最后一部分。日志输出限制为 2048 字节或 80 行(以较小者为准)。默认为 File。不可更新。
可能的枚举值
"FallbackToLogsOnError" 将在容器因错误退出且 terminationMessagePath 无内容时,读取最近的容器日志内容作为容器状态消息。"File" 是默认行为,并将在容器退出时将容器状态消息设置为容器 terminationMessagePath 的内容。restartPolicy (string)
用于管理 Pod 中每个容器重启行为的容器重启策略。您不能在临时容器上设置此字段。
restartPolicyRules ([]ContainerRestartRule)
原子:将在合并期间被替换
表示一组用于确定容器在退出时是否应重启的检查规则。您不能在临时容器上设置此字段。
ContainerRestartRule 描述了如何处理容器退出。
restartPolicyRules.action (string),必需
指定如果满足要求,在容器退出时采取的操作。唯一可能的值是 "Restart"(重启容器)。
restartPolicyRules.exitCodes (ContainerRestartRuleOnExitCodes)
表示容器退出时要检查的退出代码。
ContainerRestartRuleOnExitCodes 描述了基于退出代码处理已退出容器的条件。
restartPolicyRules.exitCodes.operator (string),必需
表示容器退出代码与指定值之间的关系。可能的值:- In:如果容器退出代码在指定值集合中,则满足要求。
restartPolicyRules.exitCodes.values ([]int32)
集合:合并期间将保留唯一值
指定要检查的容器退出代码集合。最多允许 255 个元素。
stdin (boolean)
容器运行时是否应为容器内的 stdin 分配缓冲区。如果未设置,容器中对 stdin 的读取将始终导致 EOF。默认为 false。
stdinOnce (boolean)
容器运行时在单次 attach 打开 stdin 通道后是否应关闭它。当 stdin 为 true 时,stdin 流将在多次 attach 会话中保持打开状态。如果 stdinOnce 设置为 true,则在容器启动时打开 stdin,在第一个客户端 attach 到 stdin 之前为空,然后保持打开并接受数据直到客户端断开连接,此时 stdin 关闭并在容器重启前保持关闭。如果此标志为 false,则从 stdin 读取的容器进程将永远不会收到 EOF。默认为 false。
tty (boolean)
此容器是否应为自己分配 TTY,这还需要 'stdin' 为 true。默认为 false。
securityContext (SecurityContext)
可选:SecurityContext 定义了临时容器应运行的安全选项。如果设置,SecurityContext 的字段将覆盖 PodSecurityContext 的等效字段。
SecurityContext 包含将应用于容器的安全配置。某些字段同时存在于 SecurityContext 和 PodSecurityContext 中。当同时设置两者时,SecurityContext 中的值优先。
securityContext.allowPrivilegeEscalation (boolean)
AllowPrivilegeEscalation 控制进程是否可以获得比其父进程更多的权限。此布尔值直接控制是否会在容器进程上设置 no_new_privs 标志。在以下情况下,AllowPrivilegeEscalation 始终为 true:1) 以特权方式运行 2) 具有 CAP_SYS_ADMIN。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.appArmorProfile (AppArmorProfile)
appArmorProfile 是此容器使用的 AppArmor 选项。如果设置,此配置文件将覆盖 Pod 的 appArmorProfile。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
AppArmorProfile 定义了 Pod 或容器的 AppArmor 设置。
securityContext.appArmorProfile.type (string),必填
type 指示将应用哪种 AppArmor 配置文件。有效选项为:Localhost - 预加载在节点上的配置文件。RuntimeDefault - 容器运行时的默认配置文件。Unconfined - 无 AppArmor 执行。
可能的枚举值
"Localhost" 表示应使用预加载在节点上的配置文件。"RuntimeDefault" 表示应使用容器运行时的默认 AppArmor 配置文件。"Unconfined" 表示不应执行任何 AppArmor 配置文件。securityContext.appArmorProfile.localhostProfile (string)
localhostProfile 指示应使用加载在节点上的配置文件。要使此功能生效,配置文件必须预先配置在节点上。必须匹配加载的配置文件名称。仅当 type 为 "Localhost" 时才必须设置。
securityContext.capabilities (Capabilities)
运行容器时要添加/删除的功能。默认为容器运行时授予的默认功能集。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.capabilities.add ([]string)
原子:将在合并期间被替换
添加的功能
securityContext.capabilities.drop ([]string)
原子:将在合并期间被替换
移除的功能
securityContext.procMount (string)
procMount 表示用于容器的 proc 挂载类型。默认值为 Default,它使用容器运行时针对只读路径和屏蔽路径的默认设置。这需要启用 ProcMountType 特性标志。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
可能的枚举值
"Default" 使用容器运行时针对 /proc 的只读和屏蔽路径的默认设置。大多数容器运行时会屏蔽 /proc 中的某些路径,以避免意外暴露特殊设备或信息。"Unmasked" 绕过容器运行时的默认屏蔽行为,并确保新创建的 /proc 在容器中保持完整,不进行任何修改。securityContext.privileged (boolean)
以特权模式运行容器。特权容器中的进程在本质上等同于主机上的 root 用户。默认为 false。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.readOnlyRootFilesystem (boolean)
此容器是否具有只读根文件系统。默认为 false。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.runAsUser (int64)
运行容器进程入口点的 UID。如果未指定,则默认为镜像元数据中指定的用户。也可以在 PodSecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.runAsNonRoot (boolean)
指示容器必须以非 root 用户身份运行。如果为 true,Kubelet 将在运行时验证镜像以确保其不以 UID 0(root)运行,如果以 root 运行则无法启动容器。如果未设置或为 false,则不执行此类验证。也可以在 PodSecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值优先。
securityContext.runAsGroup (int64)
运行容器进程入口点的 GID。如果未设置,则使用运行时默认值。也可以在 PodSecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.seLinuxOptions (SELinuxOptions)
应用于容器的 SELinux 上下文。如果未指定,容器运行时将为每个容器分配一个随机的 SELinux 上下文。也可以在 PodSecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
securityContext.seLinuxOptions.level (string)
Level 是应用于容器的 SELinux 级别标签。
securityContext.seLinuxOptions.role (string)
Role 是应用于容器的 SELinux 角色标签。
securityContext.seLinuxOptions.type (string)
Type 是应用于容器的 SELinux 类型标签。
securityContext.seLinuxOptions.user (string)
User 是应用于容器的 SELinux 用户标签。
securityContext.seccompProfile (SeccompProfile)
此容器使用的 seccomp 选项。如果在 Pod 和容器级别都提供了 seccomp 选项,则容器选项将覆盖 Pod 选项。请注意,当 spec.os.name 为 windows 时,不能设置此字段。
SeccompProfile 定义了 Pod/容器的 seccomp 配置文件设置。只能设置一个配置文件源。
securityContext.seccompProfile.type (string),必填
type 指示将应用哪种 seccomp 配置文件。有效选项为:
Localhost - 应使用在节点上文件中定义的配置文件。RuntimeDefault - 应使用容器运行时默认配置文件。Unconfined - 不应应用任何配置文件。
可能的枚举值
"Localhost" 表示应使用在节点上文件中定义的配置文件。相对于 <kubelet-root-dir>/seccomp 的文件位置。"RuntimeDefault" 代表默认的容器运行时 seccomp 配置文件。"Unconfined" 表示不应用任何 seccomp 配置文件(又称无约束)。securityContext.seccompProfile.localhostProfile (string)
localhostProfile 指示应使用在节点上文件中定义的配置文件。要使此功能生效,配置文件必须预先配置在节点上。必须是相对于 kubelet 配置的 seccomp 配置文件位置的后代路径。如果 type 为 "Localhost",则必须设置。对于任何其他类型,则不得设置。
securityContext.windowsOptions (WindowsSecurityContextOptions)
应用于所有容器的 Windows 特定设置。如果未指定,将使用 PodSecurityContext 中的选项。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 linux 时,不能设置此字段。
WindowsSecurityContextOptions 包含 Windows 特定的选项和凭据。
securityContext.windowsOptions.gmsaCredentialSpec (string)
GMSACredentialSpec 是 GMSA 准入 Webhook (https://github.com/kubernetes-sigs/windows-gmsa) 内联 GMSACredentialSpecName 字段命名的 GMSA 凭据规范内容的地方。
securityContext.windowsOptions.gmsaCredentialSpecName (string)
GMSACredentialSpecName 是要使用的 GMSA 凭据规范的名称。
securityContext.windowsOptions.hostProcess (boolean)
HostProcess 确定容器是否应作为“主机进程 (Host Process)”容器运行。Pod 的所有容器必须具有相同的有效 HostProcess 值(不允许混合 HostProcess 容器和非 HostProcess 容器)。此外,如果 HostProcess 为 true,则 HostNetwork 也必须设置为 true。
securityContext.windowsOptions.runAsUserName (string)
Windows 中运行容器进程入口点的用户名。如果未指定,则默认为镜像元数据中指定的用户。也可以在 PodSecurityContext 中设置。如果同时在 SecurityContext 和 PodSecurityContext 中设置,则 SecurityContext 中指定的值具有优先权。
ports ([]ContainerPort)
补丁策略:按 containerPort 键合并
映射:合并期间将保留键 containerPort, protocol 的唯一值
临时容器不允许使用端口。
ports.containerPort (int32),必需
要在 Pod IP 地址上公开的端口号。这必须是有效的端口号,0 < x < 65536。
ports.hostIP (string)
将外部端口绑定到的主机 IP。
ports.hostPort (int32)
要在主机上公开的端口号。如果指定,则必须是有效的端口号,0 < x < 65536。如果指定了 HostNetwork,则此值必须与 ContainerPort 匹配。大多数容器不需要此项。
ports.name (string)
如果指定,这必须是 IANA_SVC_NAME 且在 Pod 内唯一。Pod 中的每个命名端口必须具有唯一的名称。可由服务引用的端口名称。
ports.protocol (string)
端口协议。必须是 UDP、TCP 或 SCTP。默认为 "TCP"。
可能的枚举值
"SCTP" 表示 SCTP 协议。"TCP" 表示 TCP 协议。"UDP" 表示 UDP 协议。resources (ResourceRequirements)
临时容器不允许使用资源。临时容器使用已分配给 Pod 的空闲资源。
ResourceRequirements 描述了计算资源要求。
resources.claims ([]ResourceClaim)
映射:在合并期间将保留 key name 上的唯一值
Claims 列出了此容器使用的在 spec.resourceClaims 中定义的资源名称。
此字段取决于 DynamicResourceAllocation 功能门。
此字段是不可变的。只能为容器设置。
ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。
resources.claims.name (string),必填
Name 必须与使用此字段的 Pod 的 pod.spec.resourceClaims 中的一个条目名称匹配。它使该资源在容器内可用。
resources.claims.request (string)
Request 是为引用的声明中请求所选择的名称。如果为空,则声明中的所有内容都可用,否则仅提供此请求的结果。
resources.limits (map[string]Quantity)
Limits 描述了允许的最大计算资源量。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
resources.requests (map[string]Quantity)
Requests 描述了所需的最小计算资源量。如果容器省略了 Requests,则在显式指定 Limits 时,它默认为 Limits,否则为实现定义的值。Requests 不能超过 Limits。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
lifecycle (Lifecycle)
临时容器不允许使用生命周期钩子。
Lifecycle 描述了管理系统应响应容器生命周期事件而采取的操作。对于 PostStart 和 PreStop 生命周期处理程序,容器的管理会阻塞直到操作完成,除非容器进程失败,在这种情况下处理程序会中止。
lifecycle.postStart (LifecycleHandler)
PostStart 在容器创建后立即调用。如果处理程序失败,容器将根据其重启策略终止并重启。在钩子完成之前,对容器的其他管理将被阻塞。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
lifecycle.preStop (LifecycleHandler)
PreStop 在容器由于 API 请求或管理事件(如存活/启动探针失败、抢占、资源争用等)而终止之前立即调用。如果容器崩溃或退出,则不会调用处理程序。Pod 的终止宽限期倒计时在执行 PreStop 钩子之前开始。无论处理程序的结果如何,容器最终都将在 Pod 的终止宽限期内终止(除非被终结器延迟)。在钩子完成或达到终止宽限期之前,对容器的其他管理将被阻塞。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
lifecycle.stopSignal (string)
StopSignal 定义了容器停止时将发送给容器的信号。如果未指定,默认值由所使用的容器运行时定义。StopSignal 只能为 .spec.os.name 非空的 Pod 设置。
可能的枚举值
"SIGABRT""SIGALRM""SIGBUS""SIGCHLD""SIGCLD""SIGCONT""SIGFPE""SIGHUP""SIGILL""SIGINT""SIGIO""SIGIOT""SIGKILL""SIGPIPE""SIGPOLL""SIGPROF""SIGPWR""SIGQUIT""SIGRTMAX""SIGRTMAX-1""SIGRTMAX-10""SIGRTMAX-11""SIGRTMAX-12""SIGRTMAX-13""SIGRTMAX-14""SIGRTMAX-2""SIGRTMAX-3""SIGRTMAX-4""SIGRTMAX-5""SIGRTMAX-6""SIGRTMAX-7""SIGRTMAX-8""SIGRTMAX-9""SIGRTMIN""SIGRTMIN+1""SIGRTMIN+10""SIGRTMIN+11""SIGRTMIN+12""SIGRTMIN+13""SIGRTMIN+14""SIGRTMIN+15""SIGRTMIN+2""SIGRTMIN+3""SIGRTMIN+4""SIGRTMIN+5""SIGRTMIN+6""SIGRTMIN+7""SIGRTMIN+8""SIGRTMIN+9""SIGSEGV""SIGSTKFLT""SIGSTOP""SIGSYS""SIGTERM""SIGTRAP""SIGTSTP""SIGTTIN""SIGTTOU""SIGURG""SIGUSR1""SIGUSR2""SIGVTALRM""SIGWINCH""SIGXCPU""SIGXFSZ"livenessProbe (Probe)
临时容器不允许使用探针。
readinessProbe (Probe)
临时容器不允许使用探针。
startupProbe (Probe)
临时容器不允许使用探针。
LifecycleHandler 定义了生命周期钩子中应采取的特定操作。除 TCPSocket 外,必须指定且仅能指定其中一个字段。
exec (ExecAction)
Exec 指定要在容器中执行的命令。
exec.command ([]string)
原子:将在合并期间被替换
Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录 ('/')。该命令仅通过 exec 执行,它不是在 shell 内运行的,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,您需要显式调用该 shell。0 的退出状态被视为存活/健康,非零则视为不健康。
httpGet (HTTPGetAction)
HTTPGet 指定要执行的 HTTP GET 请求。
HTTPGetAction 描述基于 HTTP Get 请求的操作。
httpGet.port (IntOrString),必需
要在容器上访问的端口名称或编号。编号必须在 1 到 65535 范围内。名称必须是 IANA_SVC_NAME。
IntOrString 是一种可以容纳 int32 或字符串的类型。在 JSON 或 YAML 编组和解组时,它会生成或使用内部类型。这允许你拥有一个既可以接受名称也可以接受数字的 JSON 字段。
httpGet.host (string)
要连接到的主机名,默认为 Pod IP。您可能需要改为在 httpHeaders 中设置 "Host"。
httpGet.httpHeaders ([]HTTPHeader)
原子:将在合并期间被替换
要在请求中设置的自定义头。HTTP 允许重复的头。
httpGet.httpHeaders.name (string),必需
头字段名称。这将在输出时进行规范化,因此大小写变体名称将被理解为同一个头。
httpGet.httpHeaders.value (string),必需
头字段值
httpGet.path (string)
要在 HTTP 服务器上访问的路径。
httpGet.scheme (string)
用于连接到主机的方案。默认为 HTTP。
可能的枚举值
"HTTP" 表示使用的方案为 http://"HTTPS" 表示使用的方案为 https://sleep (SleepAction)
Sleep 表示容器应睡眠的持续时间。
sleep.seconds (int64),必需
Seconds 是睡眠的秒数。
tcpSocket (TCPSocketAction)
已弃用。TCPSocket 不支持作为 LifecycleHandler,仅保留用于向后兼容。该字段没有验证,当指定此字段时,生命周期钩子将在运行时失败。
节点亲和性是一组节点亲和性调度规则。
preferredDuringSchedulingIgnoredDuringExecution ([]PreferredSchedulingTerm)
原子:将在合并期间被替换
调度程序将优先将 Pod 调度到满足此字段指定的亲和性表达式的节点上,但它可能会选择一个违反一个或多个表达式的节点。最受偏好的节点是权重总和最大的节点,即对于每个满足所有调度要求(资源请求、requiredDuringScheduling 亲和性表达式等)的节点,通过迭代此字段的元素并计算总和来得出权重:如果节点匹配相应的 matchExpressions,则将 "weight" 加到总和中;总和最高的节点是最受偏好的。
空的优先调度项匹配所有具有隐式权重 0 的对象(即无操作)。null 优先调度项不匹配任何对象(即也是无操作)。
preferredDuringSchedulingIgnoredDuringExecution.preference (NodeSelectorTerm),必需
与相应权重关联的节点选择器项。
空或空的节点选择器术语不匹配任何对象。它们的条件是 AND 关系。TopologySelectorTerm 类型实现了 NodeSelectorTerm 的子集。
preferredDuringSchedulingIgnoredDuringExecution.preference.matchExpressions ([]NodeSelectorRequirement)
原子:将在合并期间被替换
节点标签的节点选择器要求列表。
preferredDuringSchedulingIgnoredDuringExecution.preference.matchFields ([]NodeSelectorRequirement)
原子:将在合并期间被替换
节点字段的节点选择器要求列表。
preferredDuringSchedulingIgnoredDuringExecution.weight (int32),必需
与匹配相应 nodeSelectorTerm 关联的权重,范围为 1-100。
requiredDuringSchedulingIgnoredDuringExecution (NodeSelector)
如果调度时未满足此字段指定的亲和性要求,则 Pod 将不会被调度到节点上。如果此字段指定的亲和性要求在 Pod 执行期间的某个时间点不再得到满足(例如由于更新),系统可能会也可能不会尝试最终从节点驱逐 Pod。
节点选择器表示对一组节点进行一个或多个标签查询的结果的并集;也就是说,它表示由节点选择器术语表示的选择器的 OR。
requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms ([]NodeSelectorTerm),必需
原子:将在合并期间被替换
必需。节点选择器术语列表。这些术语是 OR 关系。
空或空的节点选择器术语不匹配任何对象。它们的条件是 AND 关系。TopologySelectorTerm 类型实现了 NodeSelectorTerm 的子集。
requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchExpressions ([]NodeSelectorRequirement)
原子:将在合并期间被替换
节点标签的节点选择器要求列表。
requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms.matchFields ([]NodeSelectorRequirement)
原子:将在合并期间被替换
节点字段的节点选择器要求列表。
Pod 亲和性是一组 Pod 间亲和性调度规则。
preferredDuringSchedulingIgnoredDuringExecution ([]WeightedPodAffinityTerm)
原子:将在合并期间被替换
调度程序将优先将 Pod 调度到满足此字段指定的亲和性表达式的节点上,但它可能会选择一个违反一个或多个表达式的节点。最受偏好的节点是权重总和最大的节点,即对于每个满足所有调度要求(资源请求、requiredDuringScheduling 亲和性表达式等)的节点,通过迭代此字段的元素并计算总和来得出权重:如果节点具有匹配相应 podAffinityTerm 的 Pod,则将 "weight" 加到总和中;总和最高的节点是最受偏好的。
所有匹配的 WeightedPodAffinityTerm 字段的权重按节点累加,以找到最受偏好的节点
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm (PodAffinityTerm),必需
必需。与相应权重关联的 Pod 亲和性项。
定义了一组 Pod(即那些相对于给定命名空间匹配 labelSelector 的 Pod),此 Pod 应与它们并置(亲和性)或不并置(反亲和性),其中并置定义为运行在节点上,该节点的键为 topologyKey 的标签的值与该组 Pod 中任何 Pod 运行所在节点的标签值匹配
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey (string),必需
此 Pod 应与指定命名空间中匹配 labelSelector 的 Pod 并置(亲和性)或不并置(反亲和性),其中并置定义为运行在节点上,该节点的键为 topologyKey 的标签的值与所选 Pod 中任何 Pod 运行所在节点的标签值匹配。不允许空的 topologyKey。
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector (LabelSelector)
针对一组资源(在此例中为 Pod)的标签查询。如果为 null,此 PodAffinityTerm 不匹配任何 Pod。
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.matchLabelKeys ([]string)
原子:将在合并期间被替换
MatchLabelKeys 是一组 Pod 标签键,用于选择将哪些 Pod 纳入考虑。这些键用于从传入 Pod 的标签中查找值,这些键值对标签与 labelSelector 合并为 key in (value),以选择一组现有的 Pod,这些 Pod 将被纳入考虑,以确定传入 Pod 的 Pod(反)亲和性。传入 Pod 标签中不存在的键将被忽略。默认值为空。禁止在 matchLabelKeys 和 labelSelector 中同时存在相同的键。此外,当未设置 labelSelector 时,不能设置 matchLabelKeys。
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.mismatchLabelKeys ([]string)
原子:将在合并期间被替换
MismatchLabelKeys 是一组 Pod 标签键,用于选择将哪些 Pod 纳入考虑。这些键用于从传入 Pod 的标签中查找值,这些键值对标签与 labelSelector 合并为 key notin (value),以选择一组现有的 Pod,这些 Pod 将被纳入考虑,以确定传入 Pod 的 Pod(反)亲和性。传入 Pod 标签中不存在的键将被忽略。默认值为空。禁止在 mismatchLabelKeys 和 labelSelector 中同时存在相同的键。此外,当未设置 labelSelector 时,不能设置 mismatchLabelKeys。
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector (LabelSelector)
针对该项适用的命名空间集合的标签查询。该项应用于由此字段选择的命名空间与 namespaces 字段中列出的命名空间的并集。null 选择器和 null 或空命名空间列表表示“此 Pod 的命名空间”。空选择器 ({}) 匹配所有命名空间。
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaces ([]string)
原子:将在合并期间被替换
namespaces 指定该项适用的命名空间名称的静态列表。该项应用于此字段中列出的命名空间与 namespaceSelector 选择的命名空间的并集。null 或空命名空间列表和 null namespaceSelector 表示“此 Pod 的命名空间”。
preferredDuringSchedulingIgnoredDuringExecution.weight (int32),必需
与匹配相应 podAffinityTerm 关联的权重,范围为 1-100。
requiredDuringSchedulingIgnoredDuringExecution ([]PodAffinityTerm)
原子:将在合并期间被替换
如果调度时未满足此字段指定的亲和性要求,则 Pod 将不会被调度到节点上。如果此字段指定的亲和性要求在 Pod 执行期间的某个时间点不再得到满足(例如由于 Pod 标签更新),系统可能会也可能不会尝试最终从节点驱逐 Pod。当存在多个元素时,对应于每个 podAffinityTerm 的节点列表将进行交集,即必须满足所有项。
定义了一组 Pod(即那些相对于给定命名空间匹配 labelSelector 的 Pod),此 Pod 应与它们并置(亲和性)或不并置(反亲和性),其中并置定义为运行在节点上,该节点的键为 topologyKey 的标签的值与该组 Pod 中任何 Pod 运行所在节点的标签值匹配
requiredDuringSchedulingIgnoredDuringExecution.topologyKey (string),必需
此 Pod 应与指定命名空间中匹配 labelSelector 的 Pod 并置(亲和性)或不并置(反亲和性),其中并置定义为运行在节点上,该节点的键为 topologyKey 的标签的值与所选 Pod 中任何 Pod 运行所在节点的标签值匹配。不允许空的 topologyKey。
requiredDuringSchedulingIgnoredDuringExecution.labelSelector (LabelSelector)
针对一组资源(在此例中为 Pod)的标签查询。如果为 null,此 PodAffinityTerm 不匹配任何 Pod。
requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys ([]string)
原子:将在合并期间被替换
MatchLabelKeys 是一组 Pod 标签键,用于选择将哪些 Pod 纳入考虑。这些键用于从传入 Pod 的标签中查找值,这些键值对标签与 labelSelector 合并为 key in (value),以选择一组现有的 Pod,这些 Pod 将被纳入考虑,以确定传入 Pod 的 Pod(反)亲和性。传入 Pod 标签中不存在的键将被忽略。默认值为空。禁止在 matchLabelKeys 和 labelSelector 中同时存在相同的键。此外,当未设置 labelSelector 时,不能设置 matchLabelKeys。
requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys ([]string)
原子:将在合并期间被替换
MismatchLabelKeys 是一组 Pod 标签键,用于选择将哪些 Pod 纳入考虑。这些键用于从传入 Pod 的标签中查找值,这些键值对标签与 labelSelector 合并为 key notin (value),以选择一组现有的 Pod,这些 Pod 将被纳入考虑,以确定传入 Pod 的 Pod(反)亲和性。传入 Pod 标签中不存在的键将被忽略。默认值为空。禁止在 mismatchLabelKeys 和 labelSelector 中同时存在相同的键。此外,当未设置 labelSelector 时,不能设置 mismatchLabelKeys。
requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector (LabelSelector)
针对该项适用的命名空间集合的标签查询。该项应用于由此字段选择的命名空间与 namespaces 字段中列出的命名空间的并集。null 选择器和 null 或空命名空间列表表示“此 Pod 的命名空间”。空选择器 ({}) 匹配所有命名空间。
requiredDuringSchedulingIgnoredDuringExecution.namespaces ([]string)
原子:将在合并期间被替换
namespaces 指定该项适用的命名空间名称的静态列表。该项应用于此字段中列出的命名空间与 namespaceSelector 选择的命名空间的并集。null 或空命名空间列表和 null namespaceSelector 表示“此 Pod 的命名空间”。
Pod 反亲和性是一组 Pod 间反亲和性调度规则。
preferredDuringSchedulingIgnoredDuringExecution ([]WeightedPodAffinityTerm)
原子:将在合并期间被替换
调度程序将优先将 Pod 调度到满足此字段指定的反亲和性表达式的节点上,但它可能会选择一个违反一个或多个表达式的节点。最受偏好的节点是权重总和最大的节点,即对于每个满足所有调度要求(资源请求、requiredDuringScheduling 反亲和性表达式等)的节点,通过迭代此字段的元素并计算总和来得出权重:如果节点具有匹配相应 podAffinityTerm 的 Pod,则从总和中减去 "weight";总和最高的节点是最受偏好的。
所有匹配的 WeightedPodAffinityTerm 字段的权重按节点累加,以找到最受偏好的节点
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm (PodAffinityTerm),必需
必需。与相应权重关联的 Pod 亲和性项。
定义了一组 Pod(即那些相对于给定命名空间匹配 labelSelector 的 Pod),此 Pod 应与它们并置(亲和性)或不并置(反亲和性),其中并置定义为运行在节点上,该节点的键为 topologyKey 的标签的值与该组 Pod 中任何 Pod 运行所在节点的标签值匹配
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.topologyKey (string),必需
此 Pod 应与指定命名空间中匹配 labelSelector 的 Pod 并置(亲和性)或不并置(反亲和性),其中并置定义为运行在节点上,该节点的键为 topologyKey 的标签的值与所选 Pod 中任何 Pod 运行所在节点的标签值匹配。不允许空的 topologyKey。
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.labelSelector (LabelSelector)
针对一组资源(在此例中为 Pod)的标签查询。如果为 null,此 PodAffinityTerm 不匹配任何 Pod。
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.matchLabelKeys ([]string)
原子:将在合并期间被替换
MatchLabelKeys 是一组 Pod 标签键,用于选择将哪些 Pod 纳入考虑。这些键用于从传入 Pod 的标签中查找值,这些键值对标签与 labelSelector 合并为 key in (value),以选择一组现有的 Pod,这些 Pod 将被纳入考虑,以确定传入 Pod 的 Pod(反)亲和性。传入 Pod 标签中不存在的键将被忽略。默认值为空。禁止在 matchLabelKeys 和 labelSelector 中同时存在相同的键。此外,当未设置 labelSelector 时,不能设置 matchLabelKeys。
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.mismatchLabelKeys ([]string)
原子:将在合并期间被替换
MismatchLabelKeys 是一组 Pod 标签键,用于选择将哪些 Pod 纳入考虑。这些键用于从传入 Pod 的标签中查找值,这些键值对标签与 labelSelector 合并为 key notin (value),以选择一组现有的 Pod,这些 Pod 将被纳入考虑,以确定传入 Pod 的 Pod(反)亲和性。传入 Pod 标签中不存在的键将被忽略。默认值为空。禁止在 mismatchLabelKeys 和 labelSelector 中同时存在相同的键。此外,当未设置 labelSelector 时,不能设置 mismatchLabelKeys。
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaceSelector (LabelSelector)
针对该项适用的命名空间集合的标签查询。该项应用于由此字段选择的命名空间与 namespaces 字段中列出的命名空间的并集。null 选择器和 null 或空命名空间列表表示“此 Pod 的命名空间”。空选择器 ({}) 匹配所有命名空间。
preferredDuringSchedulingIgnoredDuringExecution.podAffinityTerm.namespaces ([]string)
原子:将在合并期间被替换
namespaces 指定该项适用的命名空间名称的静态列表。该项应用于此字段中列出的命名空间与 namespaceSelector 选择的命名空间的并集。null 或空命名空间列表和 null namespaceSelector 表示“此 Pod 的命名空间”。
preferredDuringSchedulingIgnoredDuringExecution.weight (int32),必需
与匹配相应 podAffinityTerm 关联的权重,范围为 1-100。
requiredDuringSchedulingIgnoredDuringExecution ([]PodAffinityTerm)
原子:将在合并期间被替换
如果调度时未满足此字段指定的反亲和性要求,则 Pod 将不会被调度到节点上。如果此字段指定的反亲和性要求在 Pod 执行期间的某个时间点不再得到满足(例如由于 Pod 标签更新),系统可能会也可能不会尝试最终从节点驱逐 Pod。当存在多个元素时,对应于每个 podAffinityTerm 的节点列表将进行交集,即必须满足所有项。
定义了一组 Pod(即那些相对于给定命名空间匹配 labelSelector 的 Pod),此 Pod 应与它们并置(亲和性)或不并置(反亲和性),其中并置定义为运行在节点上,该节点的键为 topologyKey 的标签的值与该组 Pod 中任何 Pod 运行所在节点的标签值匹配
requiredDuringSchedulingIgnoredDuringExecution.topologyKey (string),必需
此 Pod 应与指定命名空间中匹配 labelSelector 的 Pod 并置(亲和性)或不并置(反亲和性),其中并置定义为运行在节点上,该节点的键为 topologyKey 的标签的值与所选 Pod 中任何 Pod 运行所在节点的标签值匹配。不允许空的 topologyKey。
requiredDuringSchedulingIgnoredDuringExecution.labelSelector (LabelSelector)
针对一组资源(在此例中为 Pod)的标签查询。如果为 null,此 PodAffinityTerm 不匹配任何 Pod。
requiredDuringSchedulingIgnoredDuringExecution.matchLabelKeys ([]string)
原子:将在合并期间被替换
MatchLabelKeys 是一组 Pod 标签键,用于选择将哪些 Pod 纳入考虑。这些键用于从传入 Pod 的标签中查找值,这些键值对标签与 labelSelector 合并为 key in (value),以选择一组现有的 Pod,这些 Pod 将被纳入考虑,以确定传入 Pod 的 Pod(反)亲和性。传入 Pod 标签中不存在的键将被忽略。默认值为空。禁止在 matchLabelKeys 和 labelSelector 中同时存在相同的键。此外,当未设置 labelSelector 时,不能设置 matchLabelKeys。
requiredDuringSchedulingIgnoredDuringExecution.mismatchLabelKeys ([]string)
原子:将在合并期间被替换
MismatchLabelKeys 是一组 Pod 标签键,用于选择将哪些 Pod 纳入考虑。这些键用于从传入 Pod 的标签中查找值,这些键值对标签与 labelSelector 合并为 key notin (value),以选择一组现有的 Pod,这些 Pod 将被纳入考虑,以确定传入 Pod 的 Pod(反)亲和性。传入 Pod 标签中不存在的键将被忽略。默认值为空。禁止在 mismatchLabelKeys 和 labelSelector 中同时存在相同的键。此外,当未设置 labelSelector 时,不能设置 mismatchLabelKeys。
requiredDuringSchedulingIgnoredDuringExecution.namespaceSelector (LabelSelector)
针对该项适用的命名空间集合的标签查询。该项应用于由此字段选择的命名空间与 namespaces 字段中列出的命名空间的并集。null 选择器和 null 或空命名空间列表表示“此 Pod 的命名空间”。空选择器 ({}) 匹配所有命名空间。
requiredDuringSchedulingIgnoredDuringExecution.namespaces ([]string)
原子:将在合并期间被替换
namespaces 指定该项适用的命名空间名称的静态列表。该项应用于此字段中列出的命名空间与 namespaceSelector 选择的命名空间的并集。null 或空命名空间列表和 null namespaceSelector 表示“此 Pod 的命名空间”。
Probe 描述了对容器执行的健康检查,以确定其是否存活或准备好接收流量。
exec (ExecAction)
Exec 指定要在容器中执行的命令。
exec.command ([]string)
原子:将在合并期间被替换
Command 是在容器内执行的命令行,命令的工作目录是容器文件系统中的根目录 ('/')。该命令仅通过 exec 执行,它不是在 shell 内运行的,因此传统的 shell 指令('|' 等)将不起作用。要使用 shell,您需要显式调用该 shell。0 的退出状态被视为存活/健康,非零则视为不健康。
httpGet (HTTPGetAction)
HTTPGet 指定要执行的 HTTP GET 请求。
HTTPGetAction 描述基于 HTTP Get 请求的操作。
httpGet.port (IntOrString),必需
要在容器上访问的端口名称或编号。编号必须在 1 到 65535 范围内。名称必须是 IANA_SVC_NAME。
IntOrString 是一种可以容纳 int32 或字符串的类型。在 JSON 或 YAML 编组和解组时,它会生成或使用内部类型。这允许你拥有一个既可以接受名称也可以接受数字的 JSON 字段。
httpGet.host (string)
要连接到的主机名,默认为 Pod IP。您可能需要改为在 httpHeaders 中设置 "Host"。
httpGet.httpHeaders ([]HTTPHeader)
原子:将在合并期间被替换
要在请求中设置的自定义头。HTTP 允许重复的头。
httpGet.httpHeaders.name (string),必需
头字段名称。这将在输出时进行规范化,因此大小写变体名称将被理解为同一个头。
httpGet.httpHeaders.value (string),必需
头字段值
httpGet.path (string)
要在 HTTP 服务器上访问的路径。
httpGet.scheme (string)
用于连接到主机的方案。默认为 HTTP。
可能的枚举值
"HTTP" 表示使用的方案为 http://"HTTPS" 表示使用的方案为 https://tcpSocket (TCPSocketAction)
TCPSocket 指定到 TCP 端口的连接。
initialDelaySeconds (int32)
容器启动后开始存活探针之前的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes
terminationGracePeriodSeconds (int64)
可选:探针失败时 Pod 需要优雅终止的持续时间(秒)。宽限期是向 Pod 中运行的进程发送终止信号后到进程被终止信号强制停止之间的时间(秒)。将此值设置得比进程的预期清理时间长。如果此值为 nil,将使用 Pod 的 terminationGracePeriodSeconds。否则,此值将覆盖 Pod 规范提供的值。值必须为非负整数。零值表示通过终止信号立即停止(没有机会关闭)。这是一个 beta 字段,需要启用 ProbeTerminationGracePeriod 特性门控。最小值为 1。如果未设置,则使用 spec.terminationGracePeriodSeconds。
periodSeconds (int32)
执行探针的频率(秒)。默认为 10 秒。最小值为 1。
timeoutSeconds (int32)
探针超时的秒数。默认为 1 秒。最小值为 1。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes
failureThreshold (int32)
探测成功后,探针被认为失败所需的最少连续失败次数。默认为 3。最小值为 1。
successThreshold (int32)
探测失败后,探针被认为成功所需的最少连续成功次数。默认为 1。对于存活和启动探针,必须为 1。最小值为 1。
grpc (GRPCAction)
GRPC 指定 GRPC HealthCheckRequest。
grpc.port (int32),必需
gRPC 服务的端口号。编号必须在 1 到 65535 范围内。
grpc.service (string)
Service 是要在 gRPC HealthCheckRequest 中放置的服务名称(参见 https://github.com/grpc/grpc/blob/master/doc/health-checking.md)。
如果未指定,默认行为由 gRPC 定义。
PodStatus 表示有关 Pod 状态的信息。状态可能滞后于系统的实际状态,特别是当托管 Pod 的节点无法联系控制平面时。
nominatedNodeName (string)
nominatedNodeName 仅在该 Pod 在节点上抢占其他 Pod 时设置,但由于抢占受害者正在接收其优雅终止期而无法立即调度时,才会设置此字段。此字段不保证 Pod 将被调度在该节点上。如果其他节点更快可用,调度程序可能会决定将 Pod 放在别处。调度程序也可能决定将此节点上的资源交给在抢占之后创建的更高优先级的 Pod。因此,当 Pod 被调度时,此字段可能与 PodSpec.nodeName 不同。
hostIP (string)
hostIP 保存分配给 Pod 的主机 IP 地址。如果 Pod 尚未启动,则为空。Pod 可以被分配到一个 kubelet 有问题的节点,这意味着即使节点被分配给 Pod,HostIP 也不会更新。
hostIPs ([]HostIP)
补丁策略:基于键 ip 合并
原子:将在合并期间被替换
hostIPs 保存分配给主机的 IP 地址。如果指定此字段,则第一个条目必须与 hostIP 字段匹配。如果 Pod 尚未启动,则此列表为空。Pod 可以被分配到一个 kubelet 有问题的节点,这意味着即使节点被分配给此 Pod,HostIPs 也不会更新。
hostIPs.ip (string),必需
IP 是分配给主机的 IP 地址
startTime (Time)
Kubelet 确认对象时的 RFC 3339 日期和时间。这发生在 Kubelet 为 Pod 拉取容器镜像之前。
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
phase (string)
Pod 的阶段是对 Pod 处于生命周期中哪个位置的简单高级总结。条件数组、原因和消息字段以及各个容器状态数组包含有关 Pod 状态的更多详细信息。有五种可能的阶段值
Pending:Pod 已被 Kubernetes 系统接受,但尚未创建或无法创建容器镜像之一。这包括调度前的时间以及通过网络下载镜像的时间,这可能需要一段时间。Running:Pod 已绑定到节点,并且所有容器都已创建。至少有一个容器仍在运行,或者正在启动或重启中。Succeeded:Pod 中的所有容器都已成功终止,并且不会重启。Failed:Pod 中的所有容器都已终止,并且至少有一个容器已因失败而终止。容器要么以非零状态退出,要么被系统终止。Unknown:由于某种原因无法获取 Pod 的状态,通常是因为与 Pod 主机的通信错误。
更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
可能的枚举值
"Failed" 表示 Pod 中的所有容器都已终止,并且至少有一个容器已因失败而终止(以非零退出代码退出或被系统停止)。"Pending" 表示 Pod 已被系统接受,但尚未启动一个或多个容器。这包括绑定到节点之前的时间,以及将镜像拉取到主机上的时间。"Running" 表示 Pod 已绑定到节点并且所有容器都已启动。至少有一个容器仍在运行或正在重启中。"Succeeded" 表示 Pod 中的所有容器都已自动以 0 的容器退出代码终止,并且系统不会重启其中任何容器。"Unknown" 表示由于某种原因无法获取 Pod 的状态,通常是因为与 Pod 主机的通信错误。已弃用:自 2015 年以来未设置(74da3b14b0c0f658b3bb8d2def5094686d0e9095)message (string)
一条人类可读的消息,指示有关 Pod 为何处于此状态的详细信息。
reason (string)
一条简短的 CamelCase 消息,指示有关 Pod 为何处于此状态的详细信息,例如 'Evicted'
podIP (string)
分配给 Pod 的 podIP 地址。至少在集群内可路由。如果尚未分配,则为空。
podIPs ([]PodIP)
补丁策略:基于键 ip 合并
映射:合并期间将保留键 ip 的唯一值
podIPs 保存分配给 Pod 的 IP 地址。如果指定此字段,则第 0 个条目必须与 podIP 字段匹配。Pod 最多可为 IPv4 和 IPv6 分配 1 个值。如果尚未分配 IP,则此列表为空。
podIPs.ip (string),必需
IP 是分配给 Pod 的 IP 地址
conditions ([]PodCondition)
Patch 策略:在键 type 上合并
映射:在合并期间将保留键类型上的唯一值
Pod 的当前服务状态。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
PodCondition 包含此 Pod 当前状况的详细信息。
conditions.status (string), required
Status 是状况的状态。可以是 True, False, Unknown。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
conditions.type (string), required
Type 是状况的类型。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
conditions.lastProbeTime (Time)
我们探测该状况的最后时间。
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
conditions.lastTransitionTime (Time)
条件从一个状态过渡到另一个状态的最后时间。
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
conditions.message (string)
人类可读的消息,指示上次转换的详细信息。
conditions.observedGeneration (int64)
如果设置,这表示设置 Pod 状况所依据的 .metadata.generation。必须启用 PodObservedGenerationTracking 特性门控才能使用此字段。
conditions.reason (string)
条件上次转换的唯一、单字、驼峰式命名原因。
qosClass (string)
基于资源需求分配给 Pod 的服务质量 (QOS) 分类。有关可用 QOS 类,请参见 PodQOSClass 类型。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes
可能的枚举值
"BestEffort" 是 BestEffort QOS 类。"Burstable" 是 Burstable QOS 类。"Guaranteed" 是 Guaranteed QOS 类。initContainerStatuses ([]ContainerStatus)
原子:将在合并期间被替换
此 Pod 中 init 容器的状态。最近一次成功的非可重启 init 容器将 ready = true,最近启动的容器将设置 startTime。Pod 中的每个 init 容器在此列表中应最多有一个状态,并且所有状态都应针对 Pod 中的容器。但是,此项未强制执行。如果列表中存在不存在容器的状态,或者列表具有重复的名称,则各种 Kubernetes 组件的行为未定义,这些状态可能会被忽略。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status
ContainerStatus 包含此容器当前状态的详细信息。
initContainerStatuses.allocatedResources (map[string]Quantity)
AllocatedResources 表示节点为该容器分配的计算资源。在 Pod 成功准入并成功准入期望的 Pod 调整大小后,Kubelet 会将此值设置为 Container.Resources.Requests。
initContainerStatuses.allocatedResourcesStatus ([]ResourceStatus)
补丁策略:在 key name 上合并
映射:在合并期间将保留 key name 上的唯一值
AllocatedResourcesStatus 表示为此 Pod 分配的各种资源的状态。
ResourceStatus 表示分配给 Pod 的单个资源的状态。
initContainerStatuses.allocatedResourcesStatus.name (string),必需
资源名称。在 Pod 内必须是唯一的,对于非 DRA 资源,必须与 Pod 规范中的资源之一匹配。对于 DRA 资源,值必须为 "claim:<claim_name>/<request>"。当报告关于容器的此状态时,"claim_name" 和 "request" 必须与此容器的资源声明之一匹配。
initContainerStatuses.allocatedResourcesStatus.resources ([]ResourceHealth)
映射:合并期间将保留键 resourceID 的唯一值
唯一资源健康状态列表。列表中的每个元素都包含唯一的资源 ID 及其健康状况。至少在 Pod 的生命周期内,资源 ID 必须唯一标识节点上分配给 Pod 的资源。如果同一节点上的其他 Pod 使用相同的资源 ID 报告状态,则它必须是它们共享的相同资源。请参见 ResourceID 类型定义以了解其在各种用例中的特定格式。
ResourceHealth 表示资源的健康状况。它具有最新的设备健康信息。这是 KEP https://kep.k8s.io/4680 的一部分。
initContainerStatuses.allocatedResourcesStatus.resources.resourceID (string),必需
ResourceID 是资源的唯一标识符。有关详细信息,请参见 ResourceID 类型。
initContainerStatuses.allocatedResourcesStatus.resources.health (string)
资源的健康状况。可以是以下值之一
将来我们可能希望引入 PermanentlyUnhealthy 状态。
initContainerStatuses.containerID (string)
ContainerID 是容器的 ID,格式为 '<type>://<container_id>'。其中 type 是容器运行时标识符,从 CRI API 的 Version 调用返回(例如 "containerd")。
initContainerStatuses.image (string),必需
Image 是容器正在运行的容器镜像名称。容器镜像可能与 PodSpec 中使用的镜像不匹配,因为它可能已被运行时解析。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images。
initContainerStatuses.imageID (string),必需
ImageID 是容器镜像的镜像 ID。该镜像 ID 可能与 PodSpec 中使用的镜像的镜像 ID 不匹配,因为它可能已被运行时解析。
initContainerStatuses.lastState (ContainerState)
LastTerminationState 存储了容器的上一个终止状态,有助于调试容器崩溃和重启。如果容器仍在运行且 RestartCount 为 0,则不填充此字段。
ContainerState 包含容器的可能状态。其成员中只能指定一个。如果未指定任何成员,则默认为 ContainerStateWaiting。
initContainerStatuses.lastState.running (ContainerStateRunning)
关于正在运行的容器的详细信息
initContainerStatuses.lastState.terminated (ContainerStateTerminated)
关于已终止容器的详细信息
ContainerStateTerminated 是容器的终止状态。
initContainerStatuses.lastState.terminated.containerID (string)
容器 ID,格式为 '<type>://<container_id>'
initContainerStatuses.lastState.terminated.exitCode (int32), 必须
容器上次终止时的退出状态
initContainerStatuses.lastState.terminated.startedAt (Time)
容器之前执行的启动时间
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
initContainerStatuses.lastState.terminated.finishedAt (Time)
容器上次终止的时间
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
initContainerStatuses.lastState.terminated.message (string)
关于容器上次终止的消息
initContainerStatuses.lastState.terminated.reason (string)
容器上次终止的(简要)原因
initContainerStatuses.lastState.terminated.signal (int32)
容器上次终止时的信号
initContainerStatuses.lastState.waiting (ContainerStateWaiting)
关于等待中容器的详细信息
ContainerStateWaiting 是容器的等待状态。
initContainerStatuses.lastState.waiting.message (string)
关于容器为何尚未运行的消息。
initContainerStatuses.lastState.waiting.reason (string)
容器尚未运行的(简要)原因。
initContainerStatuses.name (string), 必须
Name 是一个 DNS_LABEL,代表容器的唯一名称。Pod 中的每个容器在所有容器类型中都必须具有唯一的名称。不可更新。
initContainerStatuses.ready (boolean), 必须
Ready 指定容器当前是否通过了就绪性检查。随着就绪探针的持续执行,该值会发生变化。如果未指定就绪探针,则此字段在容器完全启动后默认为 true(参见 Started 字段)。
该值通常用于确定容器是否已准备好接收流量。
initContainerStatuses.resources (ResourceRequirements)
Resources 表示在容器启动或成功调整大小后,在正在运行的容器上成功实施的计算资源请求和限制。
ResourceRequirements 描述了计算资源要求。
initContainerStatuses.resources.claims ([]ResourceClaim)
映射:在合并期间将保留 key name 上的唯一值
Claims 列出了此容器使用的在 spec.resourceClaims 中定义的资源名称。
此字段取决于 DynamicResourceAllocation 功能门。
此字段是不可变的。只能为容器设置。
ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。
initContainerStatuses.resources.claims.name (string), 必须
Name 必须与使用此字段的 Pod 的 pod.spec.resourceClaims 中的一个条目名称匹配。它使该资源在容器内可用。
initContainerStatuses.resources.claims.request (string)
Request 是为引用的声明中请求所选择的名称。如果为空,则声明中的所有内容都可用,否则仅提供此请求的结果。
initContainerStatuses.resources.limits (map[string]Quantity)
Limits 描述了允许的最大计算资源量。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
initContainerStatuses.resources.requests (map[string]Quantity)
Requests 描述了所需的最小计算资源量。如果容器省略了 Requests,则在显式指定 Limits 时,它默认为 Limits,否则为实现定义的值。Requests 不能超过 Limits。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
initContainerStatuses.restartCount (int32), 必须
RestartCount 保持容器重启的次数。Kubelet 会努力始终增加该值,但在某些情况下,由于节点重启,状态可能会丢失,此时该值可能会重置为 0。该值绝不为负数。
initContainerStatuses.started (boolean)
Started 指示容器是否已完成其 postStart 生命周期钩子并通过了启动探针。初始化为 false,在 startupProbe 被判定为成功后变为 true。当容器重启或 kubelet 暂时丢失状态时,重置为 false。在这两种情况下,启动探针都会再次运行。当未定义启动探针且容器正在运行并已通过 postStart 生命周期钩子时,该值始终为 true。空值必须与 false 同等对待。
initContainerStatuses.state (ContainerState)
State 包含有关容器当前状况的详细信息。
ContainerState 包含容器的可能状态。其成员中只能指定一个。如果未指定任何成员,则默认为 ContainerStateWaiting。
initContainerStatuses.state.running (ContainerStateRunning)
关于正在运行的容器的详细信息
initContainerStatuses.state.terminated (ContainerStateTerminated)
关于已终止容器的详细信息
ContainerStateTerminated 是容器的终止状态。
initContainerStatuses.state.terminated.containerID (string)
容器 ID,格式为 '<type>://<container_id>'
initContainerStatuses.state.terminated.exitCode (int32), 必须
容器上次终止时的退出状态
initContainerStatuses.state.terminated.startedAt (Time)
容器之前执行的启动时间
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
initContainerStatuses.state.terminated.finishedAt (Time)
容器上次终止的时间
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
initContainerStatuses.state.terminated.message (string)
关于容器上次终止的消息
initContainerStatuses.state.terminated.reason (string)
容器上次终止的(简要)原因
initContainerStatuses.state.terminated.signal (int32)
容器上次终止时的信号
initContainerStatuses.state.waiting (ContainerStateWaiting)
关于等待中容器的详细信息
ContainerStateWaiting 是容器的等待状态。
initContainerStatuses.state.waiting.message (string)
关于容器为何尚未运行的消息。
initContainerStatuses.state.waiting.reason (string)
容器尚未运行的(简要)原因。
initContainerStatuses.stopSignal (string)
StopSignal 报告此容器的有效停止信号
可能的枚举值
"SIGABRT""SIGALRM""SIGBUS""SIGCHLD""SIGCLD""SIGCONT""SIGFPE""SIGHUP""SIGILL""SIGINT""SIGIO""SIGIOT""SIGKILL""SIGPIPE""SIGPOLL""SIGPROF""SIGPWR""SIGQUIT""SIGRTMAX""SIGRTMAX-1""SIGRTMAX-10""SIGRTMAX-11""SIGRTMAX-12""SIGRTMAX-13""SIGRTMAX-14""SIGRTMAX-2""SIGRTMAX-3""SIGRTMAX-4""SIGRTMAX-5""SIGRTMAX-6""SIGRTMAX-7""SIGRTMAX-8""SIGRTMAX-9""SIGRTMIN""SIGRTMIN+1""SIGRTMIN+10""SIGRTMIN+11""SIGRTMIN+12""SIGRTMIN+13""SIGRTMIN+14""SIGRTMIN+15""SIGRTMIN+2""SIGRTMIN+3""SIGRTMIN+4""SIGRTMIN+5""SIGRTMIN+6""SIGRTMIN+7""SIGRTMIN+8""SIGRTMIN+9""SIGSEGV""SIGSTKFLT""SIGSTOP""SIGSYS""SIGTERM""SIGTRAP""SIGTSTP""SIGTTIN""SIGTTOU""SIGURG""SIGUSR1""SIGUSR2""SIGVTALRM""SIGWINCH""SIGXCPU""SIGXFSZ"initContainerStatuses.user (ContainerUser)
User 表示最初附加到容器第一个进程的用户身份信息
initContainerStatuses.user.linux (LinuxContainerUser)
Linux 保存最初在 Linux 中附加到容器第一个进程的用户身份信息。请注意,如果进程拥有足够的特权,则可以更改实际运行的身份。
LinuxContainerUser 表示 Linux 容器中的用户身份信息
initContainerStatuses.user.linux.gid (int64), 必须
GID 是最初附加到容器中第一个进程的主组 ID (gid)
initContainerStatuses.user.linux.uid (int64), 必须
UID 是最初附加到容器中第一个进程的主用户 ID (uid)
initContainerStatuses.user.linux.supplementalGroups ([]int64)
原子:将在合并期间被替换
SupplementalGroups 是最初附加到容器中第一个进程的补充组
initContainerStatuses.volumeMounts ([]VolumeMountStatus)
补丁策略:按 mountPath 键合并
映射:合并期间将保留键 mountPath 的唯一值
卷挂载的状态。
initContainerStatuses.volumeMounts.mountPath (string), 必须
MountPath 对应于原始的 VolumeMount。
initContainerStatuses.volumeMounts.name (string), 必须
Name 对应于原始 VolumeMount 的名称。
initContainerStatuses.volumeMounts.readOnly (boolean)
ReadOnly 对应于原始 VolumeMount。
initContainerStatuses.volumeMounts.recursiveReadOnly (string)
RecursiveReadOnly 必须设置为 Disabled、Enabled 或未指定(对于非只读挂载)。原始 VolumeMount 中的 IfPossible 值必须根据挂载结果转换为 Disabled 或 Enabled。
containerStatuses ([]ContainerStatus)
原子:将在合并期间被替换
此 Pod 中容器的状态。Pod 中的每个容器在此列表中最多应有一个状态,并且所有状态都应针对 Pod 中的容器。但这并未强制执行。如果列表中存在不存在容器的状态,或者列表有重复名称,则各种 Kubernetes 组件的行为是不确定的,这些状态可能会被忽略。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
ContainerStatus 包含此容器当前状态的详细信息。
containerStatuses.allocatedResources (map[string]Quantity)
AllocatedResources 表示节点为该容器分配的计算资源。在 Pod 成功准入并成功准入期望的 Pod 调整大小后,Kubelet 会将此值设置为 Container.Resources.Requests。
containerStatuses.allocatedResourcesStatus ([]ResourceStatus)
补丁策略:在 key name 上合并
映射:在合并期间将保留 key name 上的唯一值
AllocatedResourcesStatus 表示为此 Pod 分配的各种资源的状态。
ResourceStatus 表示分配给 Pod 的单个资源的状态。
containerStatuses.allocatedResourcesStatus.name (string), 必须
资源名称。在 Pod 内必须是唯一的,对于非 DRA 资源,必须与 Pod 规范中的资源之一匹配。对于 DRA 资源,值必须为 "claim:<claim_name>/<request>"。当报告关于容器的此状态时,"claim_name" 和 "request" 必须与此容器的资源声明之一匹配。
containerStatuses.allocatedResourcesStatus.resources ([]ResourceHealth)
映射:合并期间将保留键 resourceID 的唯一值
唯一资源健康状态列表。列表中的每个元素都包含唯一的资源 ID 及其健康状况。至少在 Pod 的生命周期内,资源 ID 必须唯一标识节点上分配给 Pod 的资源。如果同一节点上的其他 Pod 使用相同的资源 ID 报告状态,则它必须是它们共享的相同资源。请参见 ResourceID 类型定义以了解其在各种用例中的特定格式。
ResourceHealth 表示资源的健康状况。它具有最新的设备健康信息。这是 KEP https://kep.k8s.io/4680 的一部分。
containerStatuses.allocatedResourcesStatus.resources.resourceID (string), 必须
ResourceID 是资源的唯一标识符。有关详细信息,请参见 ResourceID 类型。
containerStatuses.allocatedResourcesStatus.resources.health (string)
资源的健康状况。可以是以下值之一
将来我们可能希望引入 PermanentlyUnhealthy 状态。
containerStatuses.containerID (string)
ContainerID 是容器的 ID,格式为 '<type>://<container_id>'。其中 type 是容器运行时标识符,从 CRI API 的 Version 调用返回(例如 "containerd")。
containerStatuses.image (string), 必须
Image 是容器正在运行的容器镜像名称。容器镜像可能与 PodSpec 中使用的镜像不匹配,因为它可能已被运行时解析。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images。
containerStatuses.imageID (string), 必须
ImageID 是容器镜像的镜像 ID。该镜像 ID 可能与 PodSpec 中使用的镜像的镜像 ID 不匹配,因为它可能已被运行时解析。
containerStatuses.lastState (ContainerState)
LastTerminationState 存储了容器的上一个终止状态,有助于调试容器崩溃和重启。如果容器仍在运行且 RestartCount 为 0,则不填充此字段。
ContainerState 包含容器的可能状态。其成员中只能指定一个。如果未指定任何成员,则默认为 ContainerStateWaiting。
containerStatuses.lastState.running (ContainerStateRunning)
关于正在运行的容器的详细信息
containerStatuses.lastState.terminated (ContainerStateTerminated)
关于已终止容器的详细信息
ContainerStateTerminated 是容器的终止状态。
containerStatuses.lastState.terminated.containerID (string)
容器 ID,格式为 '<type>://<container_id>'
containerStatuses.lastState.terminated.exitCode (int32), 必须
容器上次终止时的退出状态
containerStatuses.lastState.terminated.startedAt (Time)
容器之前执行的启动时间
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
containerStatuses.lastState.terminated.finishedAt (Time)
容器上次终止的时间
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
containerStatuses.lastState.terminated.message (string)
关于容器上次终止的消息
containerStatuses.lastState.terminated.reason (string)
容器上次终止的(简要)原因
containerStatuses.lastState.terminated.signal (int32)
容器上次终止时的信号
containerStatuses.lastState.waiting (ContainerStateWaiting)
关于等待中容器的详细信息
ContainerStateWaiting 是容器的等待状态。
containerStatuses.lastState.waiting.message (string)
关于容器为何尚未运行的消息。
containerStatuses.lastState.waiting.reason (string)
容器尚未运行的(简要)原因。
containerStatuses.name (string), 必须
Name 是一个 DNS_LABEL,代表容器的唯一名称。Pod 中的每个容器在所有容器类型中都必须具有唯一的名称。不可更新。
containerStatuses.ready (boolean), 必须
Ready 指定容器当前是否通过了就绪性检查。随着就绪探针的持续执行,该值会发生变化。如果未指定就绪探针,则此字段在容器完全启动后默认为 true(参见 Started 字段)。
该值通常用于确定容器是否已准备好接收流量。
containerStatuses.resources (ResourceRequirements)
Resources 表示在容器启动或成功调整大小后,在正在运行的容器上成功实施的计算资源请求和限制。
ResourceRequirements 描述了计算资源要求。
containerStatuses.resources.claims ([]ResourceClaim)
映射:在合并期间将保留 key name 上的唯一值
Claims 列出了此容器使用的在 spec.resourceClaims 中定义的资源名称。
此字段取决于 DynamicResourceAllocation 功能门。
此字段是不可变的。只能为容器设置。
ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。
containerStatuses.resources.claims.name (string), 必须
Name 必须与使用此字段的 Pod 的 pod.spec.resourceClaims 中的一个条目名称匹配。它使该资源在容器内可用。
containerStatuses.resources.claims.request (string)
Request 是为引用的声明中请求所选择的名称。如果为空,则声明中的所有内容都可用,否则仅提供此请求的结果。
containerStatuses.resources.limits (map[string]Quantity)
Limits 描述了允许的最大计算资源量。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
containerStatuses.resources.requests (map[string]Quantity)
Requests 描述了所需的最小计算资源量。如果容器省略了 Requests,则在显式指定 Limits 时,它默认为 Limits,否则为实现定义的值。Requests 不能超过 Limits。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
containerStatuses.restartCount (int32), 必须
RestartCount 保持容器重启的次数。Kubelet 会努力始终增加该值,但在某些情况下,由于节点重启,状态可能会丢失,此时该值可能会重置为 0。该值绝不为负数。
containerStatuses.started (boolean)
Started 指示容器是否已完成其 postStart 生命周期钩子并通过了启动探针。初始化为 false,在 startupProbe 被判定为成功后变为 true。当容器重启或 kubelet 暂时丢失状态时,重置为 false。在这两种情况下,启动探针都会再次运行。当未定义启动探针且容器正在运行并已通过 postStart 生命周期钩子时,该值始终为 true。空值必须与 false 同等对待。
containerStatuses.state (ContainerState)
State 包含有关容器当前状况的详细信息。
ContainerState 包含容器的可能状态。其成员中只能指定一个。如果未指定任何成员,则默认为 ContainerStateWaiting。
containerStatuses.state.running (ContainerStateRunning)
关于正在运行的容器的详细信息
containerStatuses.state.terminated (ContainerStateTerminated)
关于已终止容器的详细信息
ContainerStateTerminated 是容器的终止状态。
containerStatuses.state.terminated.containerID (string)
容器 ID,格式为 '<type>://<container_id>'
containerStatuses.state.terminated.exitCode (int32), 必须
容器上次终止时的退出状态
containerStatuses.state.terminated.startedAt (Time)
容器之前执行的启动时间
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
containerStatuses.state.terminated.finishedAt (Time)
容器上次终止的时间
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
containerStatuses.state.terminated.message (string)
关于容器上次终止的消息
containerStatuses.state.terminated.reason (string)
容器上次终止的(简要)原因
containerStatuses.state.terminated.signal (int32)
容器上次终止时的信号
containerStatuses.state.waiting (ContainerStateWaiting)
关于等待中容器的详细信息
ContainerStateWaiting 是容器的等待状态。
containerStatuses.state.waiting.message (string)
关于容器为何尚未运行的消息。
containerStatuses.state.waiting.reason (string)
容器尚未运行的(简要)原因。
containerStatuses.stopSignal (string)
StopSignal 报告此容器的有效停止信号
可能的枚举值
"SIGABRT""SIGALRM""SIGBUS""SIGCHLD""SIGCLD""SIGCONT""SIGFPE""SIGHUP""SIGILL""SIGINT""SIGIO""SIGIOT""SIGKILL""SIGPIPE""SIGPOLL""SIGPROF""SIGPWR""SIGQUIT""SIGRTMAX""SIGRTMAX-1""SIGRTMAX-10""SIGRTMAX-11""SIGRTMAX-12""SIGRTMAX-13""SIGRTMAX-14""SIGRTMAX-2""SIGRTMAX-3""SIGRTMAX-4""SIGRTMAX-5""SIGRTMAX-6""SIGRTMAX-7""SIGRTMAX-8""SIGRTMAX-9""SIGRTMIN""SIGRTMIN+1""SIGRTMIN+10""SIGRTMIN+11""SIGRTMIN+12""SIGRTMIN+13""SIGRTMIN+14""SIGRTMIN+15""SIGRTMIN+2""SIGRTMIN+3""SIGRTMIN+4""SIGRTMIN+5""SIGRTMIN+6""SIGRTMIN+7""SIGRTMIN+8""SIGRTMIN+9""SIGSEGV""SIGSTKFLT""SIGSTOP""SIGSYS""SIGTERM""SIGTRAP""SIGTSTP""SIGTTIN""SIGTTOU""SIGURG""SIGUSR1""SIGUSR2""SIGVTALRM""SIGWINCH""SIGXCPU""SIGXFSZ"containerStatuses.user (ContainerUser)
User 表示最初附加到容器第一个进程的用户身份信息
containerStatuses.user.linux (LinuxContainerUser)
Linux 保存最初在 Linux 中附加到容器第一个进程的用户身份信息。请注意,如果进程拥有足够的特权,则可以更改实际运行的身份。
LinuxContainerUser 表示 Linux 容器中的用户身份信息
containerStatuses.user.linux.gid (int64), 必须
GID 是最初附加到容器中第一个进程的主组 ID (gid)
containerStatuses.user.linux.uid (int64), 必须
UID 是最初附加到容器中第一个进程的主用户 ID (uid)
containerStatuses.user.linux.supplementalGroups ([]int64)
原子:将在合并期间被替换
SupplementalGroups 是最初附加到容器中第一个进程的补充组
containerStatuses.volumeMounts ([]VolumeMountStatus)
补丁策略:按 mountPath 键合并
映射:合并期间将保留键 mountPath 的唯一值
卷挂载的状态。
containerStatuses.volumeMounts.mountPath (string), 必须
MountPath 对应于原始的 VolumeMount。
containerStatuses.volumeMounts.name (string), 必须
Name 对应于原始 VolumeMount 的名称。
containerStatuses.volumeMounts.readOnly (boolean)
ReadOnly 对应于原始 VolumeMount。
containerStatuses.volumeMounts.recursiveReadOnly (string)
RecursiveReadOnly 必须设置为 Disabled、Enabled 或未指定(对于非只读挂载)。原始 VolumeMount 中的 IfPossible 值必须根据挂载结果转换为 Disabled 或 Enabled。
ephemeralContainerStatuses ([]ContainerStatus)
原子:将在合并期间被替换
此 Pod 中运行过的任何临时容器的状态。Pod 中的每个临时容器在此列表中最多应有一个状态,并且所有状态都应针对 Pod 中的容器。但这并未强制执行。如果列表中存在不存在容器的状态,或者列表有重复名称,则各种 Kubernetes 组件的行为是不确定的,这些状态可能会被忽略。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
ContainerStatus 包含此容器当前状态的详细信息。
ephemeralContainerStatuses.allocatedResources (map[string]Quantity)
AllocatedResources 表示节点为该容器分配的计算资源。在 Pod 成功准入并成功准入期望的 Pod 调整大小后,Kubelet 会将此值设置为 Container.Resources.Requests。
ephemeralContainerStatuses.allocatedResourcesStatus ([]ResourceStatus)
补丁策略:在 key name 上合并
映射:在合并期间将保留 key name 上的唯一值
AllocatedResourcesStatus 表示为此 Pod 分配的各种资源的状态。
ResourceStatus 表示分配给 Pod 的单个资源的状态。
ephemeralContainerStatuses.allocatedResourcesStatus.name (string), 必须
资源名称。在 Pod 内必须是唯一的,对于非 DRA 资源,必须与 Pod 规范中的资源之一匹配。对于 DRA 资源,值必须为 "claim:<claim_name>/<request>"。当报告关于容器的此状态时,"claim_name" 和 "request" 必须与此容器的资源声明之一匹配。
ephemeralContainerStatuses.allocatedResourcesStatus.resources ([]ResourceHealth)
映射:合并期间将保留键 resourceID 的唯一值
唯一资源健康状态列表。列表中的每个元素都包含唯一的资源 ID 及其健康状况。至少在 Pod 的生命周期内,资源 ID 必须唯一标识节点上分配给 Pod 的资源。如果同一节点上的其他 Pod 使用相同的资源 ID 报告状态,则它必须是它们共享的相同资源。请参见 ResourceID 类型定义以了解其在各种用例中的特定格式。
ResourceHealth 表示资源的健康状况。它具有最新的设备健康信息。这是 KEP https://kep.k8s.io/4680 的一部分。
ephemeralContainerStatuses.allocatedResourcesStatus.resources.resourceID (string), 必须
ResourceID 是资源的唯一标识符。有关详细信息,请参见 ResourceID 类型。
ephemeralContainerStatuses.allocatedResourcesStatus.resources.health (string)
资源的健康状况。可以是以下值之一
将来我们可能希望引入 PermanentlyUnhealthy 状态。
ephemeralContainerStatuses.containerID (string)
ContainerID 是容器的 ID,格式为 '<type>://<container_id>'。其中 type 是容器运行时标识符,从 CRI API 的 Version 调用返回(例如 "containerd")。
ephemeralContainerStatuses.image (string), 必须
Image 是容器正在运行的容器镜像名称。容器镜像可能与 PodSpec 中使用的镜像不匹配,因为它可能已被运行时解析。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images。
ephemeralContainerStatuses.imageID (string), 必须
ImageID 是容器镜像的镜像 ID。该镜像 ID 可能与 PodSpec 中使用的镜像的镜像 ID 不匹配,因为它可能已被运行时解析。
ephemeralContainerStatuses.lastState (ContainerState)
LastTerminationState 存储了容器的上一个终止状态,有助于调试容器崩溃和重启。如果容器仍在运行且 RestartCount 为 0,则不填充此字段。
ContainerState 包含容器的可能状态。其成员中只能指定一个。如果未指定任何成员,则默认为 ContainerStateWaiting。
ephemeralContainerStatuses.lastState.running (ContainerStateRunning)
关于正在运行的容器的详细信息
ephemeralContainerStatuses.lastState.terminated (ContainerStateTerminated)
关于已终止容器的详细信息
ContainerStateTerminated 是容器的终止状态。
ephemeralContainerStatuses.lastState.terminated.containerID (string)
容器 ID,格式为 '<type>://<container_id>'
ephemeralContainerStatuses.lastState.terminated.exitCode (int32), 必须
容器上次终止时的退出状态
ephemeralContainerStatuses.lastState.terminated.startedAt (Time)
容器之前执行的启动时间
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
ephemeralContainerStatuses.lastState.terminated.finishedAt (Time)
容器上次终止的时间
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
ephemeralContainerStatuses.lastState.terminated.message (string)
关于容器上次终止的消息
ephemeralContainerStatuses.lastState.terminated.reason (string)
容器上次终止的(简要)原因
ephemeralContainerStatuses.lastState.terminated.signal (int32)
容器上次终止时的信号
ephemeralContainerStatuses.lastState.waiting (ContainerStateWaiting)
关于等待中容器的详细信息
ContainerStateWaiting 是容器的等待状态。
ephemeralContainerStatuses.lastState.waiting.message (string)
关于容器为何尚未运行的消息。
ephemeralContainerStatuses.lastState.waiting.reason (string)
容器尚未运行的(简要)原因。
ephemeralContainerStatuses.name (string), 必须
Name 是一个 DNS_LABEL,代表容器的唯一名称。Pod 中的每个容器在所有容器类型中都必须具有唯一的名称。不可更新。
ephemeralContainerStatuses.ready (boolean), 必须
Ready 指定容器当前是否通过了就绪性检查。随着就绪探针的持续执行,该值会发生变化。如果未指定就绪探针,则此字段在容器完全启动后默认为 true(参见 Started 字段)。
该值通常用于确定容器是否已准备好接收流量。
ephemeralContainerStatuses.resources (ResourceRequirements)
Resources 表示在容器启动或成功调整大小后,在正在运行的容器上成功实施的计算资源请求和限制。
ResourceRequirements 描述了计算资源要求。
ephemeralContainerStatuses.resources.claims ([]ResourceClaim)
映射:在合并期间将保留 key name 上的唯一值
Claims 列出了此容器使用的在 spec.resourceClaims 中定义的资源名称。
此字段取决于 DynamicResourceAllocation 功能门。
此字段是不可变的。只能为容器设置。
ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。
ephemeralContainerStatuses.resources.claims.name (string), 必须
Name 必须与使用此字段的 Pod 的 pod.spec.resourceClaims 中的一个条目名称匹配。它使该资源在容器内可用。
ephemeralContainerStatuses.resources.claims.request (string)
Request 是为引用的声明中请求所选择的名称。如果为空,则声明中的所有内容都可用,否则仅提供此请求的结果。
ephemeralContainerStatuses.resources.limits (map[string]Quantity)
Limits 描述了允许的最大计算资源量。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
ephemeralContainerStatuses.resources.requests (map[string]Quantity)
Requests 描述了所需的最小计算资源量。如果容器省略了 Requests,则在显式指定 Limits 时,它默认为 Limits,否则为实现定义的值。Requests 不能超过 Limits。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
ephemeralContainerStatuses.restartCount (int32), 必须
RestartCount 保持容器重启的次数。Kubelet 会努力始终增加该值,但在某些情况下,由于节点重启,状态可能会丢失,此时该值可能会重置为 0。该值绝不为负数。
ephemeralContainerStatuses.started (boolean)
Started 指示容器是否已完成其 postStart 生命周期钩子并通过了启动探针。初始化为 false,在 startupProbe 被判定为成功后变为 true。当容器重启或 kubelet 暂时丢失状态时,重置为 false。在这两种情况下,启动探针都会再次运行。当未定义启动探针且容器正在运行并已通过 postStart 生命周期钩子时,该值始终为 true。空值必须与 false 同等对待。
ephemeralContainerStatuses.state (ContainerState)
State 包含有关容器当前状况的详细信息。
ContainerState 包含容器的可能状态。其成员中只能指定一个。如果未指定任何成员,则默认为 ContainerStateWaiting。
ephemeralContainerStatuses.state.running (ContainerStateRunning)
关于正在运行的容器的详细信息
ephemeralContainerStatuses.state.terminated (ContainerStateTerminated)
关于已终止容器的详细信息
ContainerStateTerminated 是容器的终止状态。
ephemeralContainerStatuses.state.terminated.containerID (string)
容器 ID,格式为 '<type>://<container_id>'
ephemeralContainerStatuses.state.terminated.exitCode (int32), 必须
容器上次终止时的退出状态
ephemeralContainerStatuses.state.terminated.startedAt (Time)
容器之前执行的启动时间
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
ephemeralContainerStatuses.state.terminated.finishedAt (Time)
容器上次终止的时间
Time 是 time.Time 的包装器,支持正确地编组到 YAML 和 JSON。为时间包提供的许多工厂方法提供包装器。
ephemeralContainerStatuses.state.terminated.message (string)
关于容器上次终止的消息
ephemeralContainerStatuses.state.terminated.reason (string)
容器上次终止的(简要)原因
ephemeralContainerStatuses.state.terminated.signal (int32)
容器上次终止时的信号
ephemeralContainerStatuses.state.waiting (ContainerStateWaiting)
关于等待中容器的详细信息
ContainerStateWaiting 是容器的等待状态。
ephemeralContainerStatuses.state.waiting.message (string)
关于容器为何尚未运行的消息。
ephemeralContainerStatuses.state.waiting.reason (string)
容器尚未运行的(简要)原因。
ephemeralContainerStatuses.stopSignal (string)
StopSignal 报告此容器的有效停止信号
可能的枚举值
"SIGABRT""SIGALRM""SIGBUS""SIGCHLD""SIGCLD""SIGCONT""SIGFPE""SIGHUP""SIGILL""SIGINT""SIGIO""SIGIOT""SIGKILL""SIGPIPE""SIGPOLL""SIGPROF""SIGPWR""SIGQUIT""SIGRTMAX""SIGRTMAX-1""SIGRTMAX-10""SIGRTMAX-11""SIGRTMAX-12""SIGRTMAX-13""SIGRTMAX-14""SIGRTMAX-2""SIGRTMAX-3""SIGRTMAX-4""SIGRTMAX-5""SIGRTMAX-6""SIGRTMAX-7""SIGRTMAX-8""SIGRTMAX-9""SIGRTMIN""SIGRTMIN+1""SIGRTMIN+10""SIGRTMIN+11""SIGRTMIN+12""SIGRTMIN+13""SIGRTMIN+14""SIGRTMIN+15""SIGRTMIN+2""SIGRTMIN+3""SIGRTMIN+4""SIGRTMIN+5""SIGRTMIN+6""SIGRTMIN+7""SIGRTMIN+8""SIGRTMIN+9""SIGSEGV""SIGSTKFLT""SIGSTOP""SIGSYS""SIGTERM""SIGTRAP""SIGTSTP""SIGTTIN""SIGTTOU""SIGURG""SIGUSR1""SIGUSR2""SIGVTALRM""SIGWINCH""SIGXCPU""SIGXFSZ"ephemeralContainerStatuses.user (ContainerUser)
User 表示最初附加到容器第一个进程的用户身份信息
ephemeralContainerStatuses.user.linux (LinuxContainerUser)
Linux 保存最初在 Linux 中附加到容器第一个进程的用户身份信息。请注意,如果进程拥有足够的特权,则可以更改实际运行的身份。
LinuxContainerUser 表示 Linux 容器中的用户身份信息
ephemeralContainerStatuses.user.linux.gid (int64), 必须
GID 是最初附加到容器中第一个进程的主组 ID (gid)
ephemeralContainerStatuses.user.linux.uid (int64), 必须
UID 是最初附加到容器中第一个进程的主用户 ID (uid)
ephemeralContainerStatuses.user.linux.supplementalGroups ([]int64)
原子:将在合并期间被替换
SupplementalGroups 是最初附加到容器中第一个进程的补充组
ephemeralContainerStatuses.volumeMounts ([]VolumeMountStatus)
补丁策略:按 mountPath 键合并
映射:合并期间将保留键 mountPath 的唯一值
卷挂载的状态。
ephemeralContainerStatuses.volumeMounts.mountPath (string), 必须
MountPath 对应于原始的 VolumeMount。
ephemeralContainerStatuses.volumeMounts.name (string), 必须
Name 对应于原始 VolumeMount 的名称。
ephemeralContainerStatuses.volumeMounts.readOnly (boolean)
ReadOnly 对应于原始 VolumeMount。
ephemeralContainerStatuses.volumeMounts.recursiveReadOnly (string)
RecursiveReadOnly 必须设置为 Disabled、Enabled 或未指定(对于非只读挂载)。原始 VolumeMount 中的 IfPossible 值必须根据挂载结果转换为 Disabled 或 Enabled。
resourceClaimStatuses ([]PodResourceClaimStatus)
补丁策略:retainKeys,基于键 name 合并
映射:在合并期间将保留 key name 上的唯一值
资源申领的状态。
PodResourceClaimStatus 存储在 PodStatus 中,用于每个引用 ResourceClaimTemplate 的 PodResourceClaim。它存储了对应 ResourceClaim 的生成名称。
resourceClaimStatuses.name (string), 必须
Name 在 Pod 内唯一标识此资源申领。这必须与 pod.spec.resourceClaims 中的条目名称匹配,这意味着该字符串必须是 DNS_LABEL。
resourceClaimStatuses.resourceClaimName (string)
ResourceClaimName 是为 Pod 在其命名空间中生成的 ResourceClaim 的名称。如果未设置,则无需生成 ResourceClaim。在这种情况下,可以忽略 pod.spec.resourceClaims 条目。
extendedResourceClaimStatus (PodExtendedResourceClaimStatus)
由 DRA 支持的扩展资源申领的状态。
PodExtendedResourceClaimStatus 存储在 PodStatus 中,用于由 DRA 支持的扩展资源请求。它存储了调度程序创建的对应特殊 ResourceClaim 的生成名称。
extendedResourceClaimStatus.requestMappings ([]ContainerExtendedResourceRequest), 必须
原子:将在合并期间被替换
RequestMappings 标识了 <容器, 由 DRA 支持的扩展资源> 到生成 ResourceClaim 中设备请求的映射。
ContainerExtendedResourceRequest 具有容器名称、扩展资源名称到设备请求名称的映射。
extendedResourceClaimStatus.requestMappings.containerName (string), 必须
请求资源的容器名称。
extendedResourceClaimStatus.requestMappings.requestName (string), 必须
特殊 ResourceClaim 中对应于扩展资源的请求名称。
extendedResourceClaimStatus.requestMappings.resourceName (string), 必须
该容器中由 DRA 支持的扩展资源的名称。
extendedResourceClaimStatus.resourceClaimName (string), 必须
ResourceClaimName 是为 Pod 在其命名空间中生成的 ResourceClaim 的名称。
resize (string)
Pod 容器所需的资源调整大小状态。如果当前没有挂起的资源调整,则为空。对容器资源的任何更改将自动将其设置为 "Proposed"。弃用:调整大小状态已移动到两个 Pod 条件 PodResizePending 和 PodResizeInProgress。PodResizePending 将跟踪 spec 已调整大小但 Kubelet 尚未分配资源的状态。PodResizeInProgress 将跟踪正在进行的调整,并且每当“分配的资源 != 确认的资源”时都应该存在。
allocatedResources (map[string]Quantity)
AllocatedResources 是节点为该 Pod 分配的总请求量。如果未设置 Pod 级别的请求,这将是跨 Pod 中容器聚合的总请求量。
resources (ResourceRequirements)
Resources 表示如果 PodSpec.Resources 中设置了 Pod 级别的请求或限制,则该 Pod 级别应用的计算资源请求和限制。
ResourceRequirements 描述了计算资源要求。
resources.claims ([]ResourceClaim)
映射:在合并期间将保留 key name 上的唯一值
Claims 列出了此容器使用的在 spec.resourceClaims 中定义的资源名称。
此字段取决于 DynamicResourceAllocation 功能门。
此字段是不可变的。只能为容器设置。
ResourceClaim 引用 PodSpec.ResourceClaims 中的一个条目。
resources.claims.name (string),必填
Name 必须与使用此字段的 Pod 的 pod.spec.resourceClaims 中的一个条目名称匹配。它使该资源在容器内可用。
resources.claims.request (string)
Request 是为引用的声明中请求所选择的名称。如果为空,则声明中的所有内容都可用,否则仅提供此请求的结果。
resources.limits (map[string]Quantity)
Limits 描述了允许的最大计算资源量。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
resources.requests (map[string]Quantity)
Requests 描述了所需的最小计算资源量。如果容器省略了 Requests,则在显式指定 Limits 时,它默认为 Limits,否则为实现定义的值。Requests 不能超过 Limits。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/
observedGeneration (int64)
如果设置,这表示 Pod 状态所依据的 .metadata.generation。必须启用 PodObservedGenerationTracking 功能门才能使用此字段。
PodList 是 Pod 的列表。
items ([]Pod), 必须
Pod 列表。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md
apiVersion (string)
APIVersion 定义了此对象表示形式的版本化模式。服务器应将公认的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind (string)
Kind 是一个字符串值,表示此对象代表的 REST 资源。服务器可能会从客户端提交请求的端点推断出这一点。无法更新。采用 CamelCase。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata (ListMeta)
标准列表元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
get 读取指定的 PodGET /api/v1/namespaces/{namespace}/pods/{name}
200 (Pod): OK
401: 未授权
get 读取指定 Pod 的临时容器GET /api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers
200 (Pod): OK
401: 未授权
get 读取指定 Pod 的日志GET /api/v1/namespaces/{namespace}/pods/{name}/log
name (在路径中): string, 必需
Pod 的名称
namespace (在路径中): string, 必需
container (in query): string
要流式传输日志的容器。如果 Pod 中只有一个容器,则默认为该唯一容器。
follow (in query): boolean
跟随 Pod 的日志流。默认为 false。
insecureSkipTLSVerifyBackend (in query): boolean
insecureSkipTLSVerifyBackend 表示 apiserver 不应确认它所连接的后端服务器证书的有效性。这将使 apiserver 和后端之间的 HTTPS 连接不安全。这意味着 apiserver 无法验证其接收的日志数据是否来自真实的 kubelet。如果 kubelet 配置为验证 apiserver 的 TLS 凭据,这并不意味着与真实 kubelet 的连接易受中间人攻击(例如,攻击者无法拦截来自真实 kubelet 的实际日志数据)。
limitBytes (in query): integer
如果设置,表示在终止日志输出之前从服务器读取的字节数。这可能不会显示完整的最后一行日志,并且返回的数量可能略多于或略少于指定的限制。
pretty (在查询中): string
previous (in query): boolean
返回之前已终止容器的日志。默认为 false。
sinceSeconds (in query): integer
一个相对时间(以秒为单位),表示从当前时间往前推多长时间开始显示日志。如果此值早于 Pod 的启动时间,则仅返回自 Pod 启动以来的日志。如果此值为未来时间,则不会返回任何日志。sinceSeconds 或 sinceTime 只能指定一个。
stream (in query): string
指定要返回给客户端的容器日志流。可接受的值为 "All"、"Stdout" 和 "Stderr"。如果未指定,则使用 "All",并且 stdout 和 stderr 将交错返回。请注意,当指定了 "TailLines" 时,"Stream" 只能设置为 nil 或 "All"。
tailLines (in query): integer
如果设置,表示显示日志末尾的行数。如果未指定,将从容器创建开始显示日志,或从 sinceSeconds 或 sinceTime 指定的时间开始显示。请注意,当指定了 "TailLines" 时,"Stream" 只能设置为 nil 或 "All"。
timestamps (in query): boolean
如果为 true,则在每行日志输出的开头添加 RFC3339 或 RFC3339Nano 时间戳。默认为 false。
200 (string): OK
401: 未授权
get 读取指定 Pod 的调整大小 (resize) 信息GET /api/v1/namespaces/{namespace}/pods/{name}/resize
200 (Pod): OK
401: 未授权
get 读取指定 Pod 的状态GET /api/v1/namespaces/{namespace}/pods/{name}/status
200 (Pod): OK
401: 未授权
list 列出或监视 Pod 类型的对象GET /api/v1/namespaces/{namespace}/pods
namespace (在路径中): string, 必需
allowWatchBookmarks (in query): boolean
continue (in query): string
fieldSelector (in query): string
labelSelector (in query): string
limit (in query): integer
pretty (在查询中): string
resourceVersion (in query): string
resourceVersionMatch (in query): string
sendInitialEvents (in query): boolean
timeoutSeconds (in query): integer
watch (in query): boolean
200 (PodList): OK
401: 未授权
list 列出或监视 Pod 类型的对象GET /api/v1/pods
allowWatchBookmarks (in query): boolean
continue (in query): string
fieldSelector (in query): string
labelSelector (in query): string
limit (in query): integer
pretty (在查询中): string
resourceVersion (in query): string
resourceVersionMatch (in query): string
sendInitialEvents (in query): boolean
timeoutSeconds (in query): integer
watch (in query): boolean
200 (PodList): OK
401: 未授权
create 创建一个 PodPOST /api/v1/namespaces/{namespace}/pods
namespace (在路径中): string, 必需
body: Pod, 必须
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
pretty (在查询中): string
200 (Pod): OK
201 (Pod): Created
202 (Pod): Accepted
401: 未授权
update 替换指定的 PodPUT /api/v1/namespaces/{namespace}/pods/{name}
name (在路径中): string, 必需
Pod 的名称
namespace (在路径中): string, 必需
body: Pod, 必须
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
pretty (在查询中): string
200 (Pod): OK
201 (Pod): Created
401: 未授权
update 替换指定 Pod 的临时容器PUT /api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers
name (在路径中): string, 必需
Pod 的名称
namespace (在路径中): string, 必需
body: Pod, 必须
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
pretty (在查询中): string
200 (Pod): OK
201 (Pod): Created
401: 未授权
update 替换指定 Pod 的调整大小 (resize) 信息PUT /api/v1/namespaces/{namespace}/pods/{name}/resize
name (在路径中): string, 必需
Pod 的名称
namespace (在路径中): string, 必需
body: Pod, 必须
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
pretty (在查询中): string
200 (Pod): OK
201 (Pod): Created
401: 未授权
update 替换指定 Pod 的状态PUT /api/v1/namespaces/{namespace}/pods/{name}/status
name (在路径中): string, 必需
Pod 的名称
namespace (在路径中): string, 必需
body: Pod, 必须
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
pretty (在查询中): string
200 (Pod): OK
201 (Pod): Created
401: 未授权
patch 部分更新指定的 PodPATCH /api/v1/namespaces/{namespace}/pods/{name}
name (在路径中): string, 必需
Pod 的名称
namespace (在路径中): string, 必需
body: Patch, 必需
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
force (in query): boolean
pretty (在查询中): string
200 (Pod): OK
201 (Pod): Created
401: 未授权
patch 部分更新指定 Pod 的临时容器PATCH /api/v1/namespaces/{namespace}/pods/{name}/ephemeralcontainers
name (在路径中): string, 必需
Pod 的名称
namespace (在路径中): string, 必需
body: Patch, 必需
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
force (in query): boolean
pretty (在查询中): string
200 (Pod): OK
201 (Pod): Created
401: 未授权
patch 部分更新指定 Pod 的调整大小 (resize) 信息PATCH /api/v1/namespaces/{namespace}/pods/{name}/resize
name (在路径中): string, 必需
Pod 的名称
namespace (在路径中): string, 必需
body: Patch, 必需
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
force (in query): boolean
pretty (在查询中): string
200 (Pod): OK
201 (Pod): Created
401: 未授权
patch 部分更新指定 Pod 的状态PATCH /api/v1/namespaces/{namespace}/pods/{name}/status
name (在路径中): string, 必需
Pod 的名称
namespace (在路径中): string, 必需
body: Patch, 必需
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
force (in query): boolean
pretty (在查询中): string
200 (Pod): OK
201 (Pod): Created
401: 未授权
delete 删除一个 PodDELETE /api/v1/namespaces/{namespace}/pods/{name}
name (在路径中): string, 必需
Pod 的名称
namespace (在路径中): string, 必需
body: DeleteOptions
dryRun (在查询中): string
gracePeriodSeconds (in query): integer
ignoreStoreReadErrorWithClusterBreakingPotential (in query): boolean
pretty (在查询中): string
propagationPolicy (in query): string
200 (Pod): OK
202 (Pod): Accepted
401: 未授权
deletecollection 删除 Pod 集合DELETE /api/v1/namespaces/{namespace}/pods
namespace (在路径中): string, 必需
body: DeleteOptions
continue (in query): string
dryRun (在查询中): string
fieldSelector (in query): string
gracePeriodSeconds (in query): integer
ignoreStoreReadErrorWithClusterBreakingPotential (in query): boolean
labelSelector (in query): string
limit (in query): integer
pretty (在查询中): string
propagationPolicy (in query): string
resourceVersion (in query): string
resourceVersionMatch (in query): string
sendInitialEvents (in query): boolean
timeoutSeconds (in query): integer
200 (Status): 确定
401: 未授权
本页面是自动生成的。
如果您打算报告此页面的问题,请在您的问题描述中提及该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。