×
描述

Alertmanager 描述了一个 Alertmanager 集群。

类型

对象

必需
  • spec

规范

属性 类型 描述

apiVersion

字符串

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

kind

字符串

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

metadata

ObjectMeta

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

spec

对象

Alertmanager 集群所需行为的规范。更多信息:https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

status

对象

Alertmanager 集群最新观察到的状态。只读。更多信息:https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

.spec

属性 类型 描述

additionalPeers

数组 (字符串)

AdditionalPeers 允许注入一组额外的 Alertmanager 进行对等连接,以形成高可用性集群。

affinity

对象

如果指定,则为 Pod 的调度约束。

alertmanagerConfigMatcherStrategy

对象

AlertmanagerConfigMatcherStrategy 定义了 AlertmanagerConfig 对象如何匹配警报。将来可能会添加更多选项。

alertmanagerConfigNamespaceSelector

对象

要为 AlertmanagerConfig 发现选择的命名空间。如果为 nil,则只检查自己的命名空间。

alertmanagerConfigSelector

对象

要选择的 AlertmanagerConfigs,用于与 Alertmanager 合并和配置。

alertmanagerConfiguration

对象

alertmanagerConfiguration 指定 Alertmanager 的配置。

如果定义,则优先于configSecret字段。

这是一个**实验性功能**,它可能会在任何即将发布的版本中以破坏性的方式发生更改。

automountServiceAccountToken

布尔值

AutomountServiceAccountToken 指示是否应在 Pod 中自动挂载服务帐户令牌。如果服务帐户具有automountServiceAccountToken: true,请将该字段设置为false以选择退出自动挂载 API 凭据。

baseImage

字符串

用于部署 Pod 的基础镜像,不包含标签。已弃用:请改用“image”。

clusterAdvertiseAddress

字符串

ClusterAdvertiseAddress 是在集群中宣传的显式地址。对于非 RFC1918 [1](公共)地址,需要提供此地址。[1] RFC1918: https://tools.ietf.org/html/rfc1918

clusterGossipInterval

字符串

两次闲聊尝试之间的时间间隔。

clusterLabel

字符串

定义唯一标识 Alertmanager 集群的标识符。只有当 Alertmanager 集群包含此 Alertmanager 资源外部的 Alertmanager 实例时,才应设置它。实际上,外部实例的地址通过.spec.additionalPeers字段提供。

clusterPeerTimeout

字符串

集群对等超时。

clusterPushpullInterval

字符串

两次 pushpull 尝试之间的时间间隔。

configMaps

数组 (字符串)

ConfigMaps 是与 Alertmanager 对象位于同一命名空间中的一系列 ConfigMap,这些 ConfigMap 将被挂载到 Alertmanager Pod 中。每个 ConfigMap 都会作为名为configmap-<configmap-name>的卷添加到 StatefulSet 定义中。ConfigMaps 将挂载到 'alertmanager' 容器中的/etc/alertmanager/configmaps/<configmap-name>

configSecret

字符串

ConfigSecret 是与 Alertmanager 对象位于同一命名空间中的 Kubernetes Secret 的名称,其中包含此 Alertmanager 实例的配置。如果为空,则默认为alertmanager-<alertmanager-name>

Alertmanager 配置应在alertmanager.yaml键下可用。原始密钥中的其他密钥将复制到生成的密钥中,并挂载到alertmanager容器中的/etc/alertmanager/config目录。

如果密钥或alertmanager.yaml键丢失,操作员将配置一个具有一个空接收器的最小 Alertmanager 配置(有效地丢弃警报通知)。

containers

数组

Containers 允许注入额外的容器。这旨在允许向 Alertmanager pod 添加身份验证代理。此处描述的容器如果共享相同的名称并且修改是通过策略性合并补丁完成的,则会修改操作员生成的容器。当前的容器名称为:alertmanagerconfig-reloader。覆盖容器完全不在维护人员将支持的范围内,这样做意味着您接受此行为可能会随时中断而无需通知。

containers[]

对象

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

enableFeatures

数组 (字符串)

启用对 Alertmanager 功能标志的访问。默认情况下,不启用任何功能。启用默认情况下禁用的功能完全不在维护人员将支持的范围内,这样做意味着您接受此行为可能会随时中断而无需通知。

它需要 Alertmanager >= 0.27.0。

externalUrl

字符串

Alertmanager 实例将在其下可用的外部 URL。这对于生成正确的 URL 是必要的。如果 Alertmanager 不是从 DNS 名称的根目录提供服务,则需要此项。

forceEnableClusterMode

布尔值

ForceEnableClusterMode 确保 Alertmanager 在使用单个副本运行时不会停用集群模式。用例例如跨 Kubernetes 集群跨越 Alertmanager 集群,每个集群中只有一个副本。

hostAliases

数组

Pod 的 hostAliases 配置

hostAliases[]

对象

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

image

字符串

如果指定了 Image,则其优先级高于 baseImage、tag 和 sha 组合。仍然需要指定版本以确保 Prometheus Operator 知道正在配置哪个版本的 Alertmanager。

imagePullPolicy

字符串

'alertmanager'、'init-config-reloader' 和 'config-reloader' 容器的镜像拉取策略。更多详情请参见 https://kubernetes.ac.cn/docs/concepts/containers/images/#image-pull-policy

imagePullSecrets

数组

从注册表中拉取 prometheus 和 alertmanager 镜像时,使用的同一命名空间中密钥的可选引用列表,请参见 https://kubernetes.ac.cn/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod

imagePullSecrets[]

对象

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

initContainers

数组

InitContainers 允许向 pod 定义添加 initContainers。这些可用于例如从外部来源获取用于注入 Alertmanager 配置的密钥。initContainer 执行期间的任何错误都将导致 Pod 重启。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/init-containers/ 此处描述的 InitContainers 如果共享相同的名称并且修改是通过策略性合并补丁完成的,则会修改操作员生成的 init 容器。当前的 init 容器名称为:init-config-reloader。覆盖 init 容器完全不在维护人员将支持的范围内,这样做意味着您接受此行为可能会随时中断而无需通知。

initContainers[]

对象

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

listenLocal

布尔值

ListenLocal 使 Alertmanager 服务器监听环回地址,以便它不绑定到 Pod IP。请注意,这仅适用于 Alertmanager UI,而不适用于闲聊通信。

logFormat

字符串

要为 Alertmanager 配置的日志格式。

logLevel

字符串

要为 Alertmanager 配置的日志级别。

minReadySeconds

整数

新创建的 pod 在没有任何容器崩溃的情况下应保持就绪的最小秒数,以便将其视为可用。默认为 0(pod 一旦就绪即可视为可用)这是 kubernetes 1.22 到 1.24 的 alpha 字段,需要启用 StatefulSetMinReadySeconds 功能网关。

nodeSelector

对象(字符串)

定义 Pod 调度的节点。

paused

布尔值

如果设置为 true,则不会执行对底层托管对象的任何操作,删除操作除外。

podMetadata

对象

PodMetadata 配置传播到 Alertmanager pod 的标签和注释。

以下项目是保留的,不能被覆盖:* "alertmanager" 标签,设置为 Alertmanager 实例的名称。* "app.kubernetes.io/instance" 标签,设置为 Alertmanager 实例的名称。* "app.kubernetes.io/managed-by" 标签,设置为 "prometheus-operator"。* "app.kubernetes.io/name" 标签,设置为 "alertmanager"。* "app.kubernetes.io/version" 标签,设置为 Alertmanager 版本。* "kubectl.kubernetes.io/default-container" 注释,设置为 "alertmanager"。

portName

字符串

用于 pod 和管理服务的端口名称。默认为web

priorityClassName

字符串

分配给 Pod 的优先级类

replicas

整数

Size 是 alertmanager 集群的预期大小。控制器最终将使运行集群的大小等于预期大小。

resources

对象

定义单个 Pod 的资源请求和限制。

retention

字符串

Alertmanager 应保留数据的持续时间。默认为 '120h',必须与正则表达式[0-9]+(ms|s|m|h)(毫秒 秒 分钟 小时)匹配。

routePrefix

字符串

Alertmanager 注册 HTTP 处理程序的路由前缀。如果使用 ExternalURL 和代理正在重写请求的 HTTP 路由,并且实际的 ExternalURL 仍然有效,但服务器在不同的路由前缀下提供服务,则此功能很有用。例如,与kubectl proxy一起使用。

secrets

数组 (字符串)

Secrets 是与 Alertmanager 对象位于同一命名空间中的一系列 Secret,这些 Secret 将被挂载到 Alertmanager Pod 中。每个 Secret 都会作为名为secret-<secret-name>的卷添加到 StatefulSet 定义中。Secrets 将挂载到 'alertmanager' 容器中的/etc/alertmanager/secrets/<secret-name>

securityContext

对象

SecurityContext 保存 Pod 级别的安全属性和公共容器设置。默认为默认的 PodSecurityContext。

serviceAccountName

字符串

ServiceAccountName 是用于运行 Prometheus Pod 的 ServiceAccount 的名称。

sha

字符串

要部署的 Alertmanager 容器镜像的 SHA 值。默认为 version 的值。类似于标签,但 SHA 显式部署不可变的容器镜像。如果设置了 SHA,则忽略 Version 和 Tag。已弃用:请改用 'image'。镜像摘要可以作为镜像 URL 的一部分指定。

storage

对象

Storage 定义了 Alertmanager 实例如何使用存储。

tag

字符串

要部署的 Alertmanager 容器镜像的标签。默认为 version 的值。如果设置了 Tag,则忽略 Version。已弃用:请改用 'image'。镜像标签可以作为镜像 URL 的一部分指定。

tolerations

数组

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

tolerations[]

对象

此容忍度附加到的 Pod 容忍任何与三元组 匹配的污点,使用匹配运算符

topologySpreadConstraints

数组

如果指定,则为 Pod 的拓扑传播约束。

topologySpreadConstraints[]

对象

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

version

字符串

集群应使用的版本。

volumeMounts

数组

VolumeMounts 允许配置输出 StatefulSet 定义中的附加 VolumeMounts。指定的 VolumeMounts 将附加到 alertmanager 容器中的其他 VolumeMounts,这些 VolumeMounts 是 StorageSpec 对象生成的。

volumeMounts[]

对象

VolumeMount 描述在容器内挂载卷。

volumes

数组

Volumes 允许配置输出 StatefulSet 定义中的附加卷。指定的卷将附加到 StorageSpec 对象生成的其它卷。

volumes[]

对象

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

web

对象

定义启动 Alertmanager 时 web 命令行标志。

.spec.affinity

描述

如果指定,则为 Pod 的调度约束。

类型

对象

属性 类型 描述

nodeAffinity

对象

描述 Pod 的节点亲和性调度规则。

podAffinity

对象

描述 Pod 亲和性调度规则(例如,将此 Pod 与其他 Pod(s) 放在相同的节点、区域等)。

podAntiAffinity

对象

描述 Pod 反亲和性调度规则(例如,避免将此 Pod 与其他 Pod(s) 放在相同的节点、区域等)。

.spec.affinity.nodeAffinity

描述

描述 Pod 的节点亲和性调度规则。

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

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

preferredDuringSchedulingIgnoredDuringExecution[]

对象

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

requiredDuringSchedulingIgnoredDuringExecution

对象

如果此字段指定的亲和性要求在调度时未满足,则 Pod 将不会被调度到该节点。如果此字段指定的亲和性要求在 Pod 执行期间的某个时刻停止满足(例如,由于更新),系统可能会也可能不会尝试最终将 Pod 从其节点驱逐。

.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • preference

  • weight

属性 类型 描述

preference

对象

与相应的权重关联的节点选择器项。

weight

整数

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

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

描述

与相应的权重关联的节点选择器项。

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

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

matchFields

数组

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

matchFields[]

对象

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

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

.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

如果此字段指定的亲和性要求在调度时未满足,则 Pod 将不会被调度到该节点。如果此字段指定的亲和性要求在 Pod 执行期间的某个时刻停止满足(例如,由于更新),系统可能会也可能不会尝试最终将 Pod 从其节点驱逐。

类型

对象

必需
  • nodeSelectorTerms

属性 类型 描述

nodeSelectorTerms

数组

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

nodeSelectorTerms[]

对象

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

.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms

描述

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

类型

数组

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

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

matchFields

数组

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

matchFields[]

对象

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

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

.spec.affinity.podAffinity

描述

描述 Pod 亲和性调度规则(例如,将此 Pod 与其他 Pod(s) 放在相同的节点、区域等)。

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

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

preferredDuringSchedulingIgnoredDuringExecution[]

对象

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

requiredDuringSchedulingIgnoredDuringExecution

数组

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

requiredDuringSchedulingIgnoredDuringExecution[]

对象

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

.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • podAffinityTerm

  • weight

属性 类型 描述

podAffinityTerm

对象

必填。与相应的权重关联的 Pod 亲和性术语。

weight

整数

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

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

描述

必填。与相应的权重关联的 Pod 亲和性术语。

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

对象

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

matchLabelKeys

数组 (字符串)

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

mismatchLabelKeys

数组 (字符串)

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

namespaceSelector

对象

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

namespaces

数组 (字符串)

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

topologyKey

字符串

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

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

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

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

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

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

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

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

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

对象

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

matchLabelKeys

数组 (字符串)

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

mismatchLabelKeys

数组 (字符串)

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

namespaceSelector

对象

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

namespaces

数组 (字符串)

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

topologyKey

字符串

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

.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

.spec.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

.spec.affinity.podAntiAffinity

描述

描述 Pod 反亲和性调度规则(例如,避免将此 Pod 与其他 Pod(s) 放在相同的节点、区域等)。

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

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

preferredDuringSchedulingIgnoredDuringExecution[]

对象

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

requiredDuringSchedulingIgnoredDuringExecution

数组

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

requiredDuringSchedulingIgnoredDuringExecution[]

对象

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

.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • podAffinityTerm

  • weight

属性 类型 描述

podAffinityTerm

对象

必填。与相应的权重关联的 Pod 亲和性术语。

weight

整数

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

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

描述

必填。与相应的权重关联的 Pod 亲和性术语。

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

对象

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

matchLabelKeys

数组 (字符串)

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

mismatchLabelKeys

数组 (字符串)

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

namespaceSelector

对象

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

namespaces

数组 (字符串)

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

topologyKey

字符串

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

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

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

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

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

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

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

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

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

对象

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

matchLabelKeys

数组 (字符串)

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

mismatchLabelKeys

数组 (字符串)

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

namespaceSelector

对象

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

namespaces

数组 (字符串)

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

topologyKey

字符串

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

.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].labelSelector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[].namespaceSelector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

.spec.alertmanagerConfigMatcherStrategy

描述

AlertmanagerConfigMatcherStrategy 定义了 AlertmanagerConfig 对象如何匹配警报。将来可能会添加更多选项。

类型

对象

属性 类型 描述

类型

字符串

如果设置为OnNamespace,则操作符会注入一个标签匹配器,该匹配器会为其所有路由和抑制规则匹配 AlertmanagerConfig 对象的命名空间。None 不会添加任何额外的匹配器,除了 AlertmanagerConfig 中指定的匹配器之外。默认为OnNamespace

.spec.alertmanagerConfigNamespaceSelector

描述

要为 AlertmanagerConfig 发现选择的命名空间。如果为 nil,则只检查自己的命名空间。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

.spec.alertmanagerConfigNamespaceSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

.spec.alertmanagerConfigNamespaceSelector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

.spec.alertmanagerConfigSelector

描述

要选择的 AlertmanagerConfigs,用于与 Alertmanager 合并和配置。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

.spec.alertmanagerConfigSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

.spec.alertmanagerConfigSelector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

.spec.alertmanagerConfiguration

描述

alertmanagerConfiguration 指定 Alertmanager 的配置。

如果定义,则优先于configSecret字段。

这是一个**实验性功能**,它可能会在任何即将发布的版本中以破坏性的方式发生更改。

类型

对象

属性 类型 描述

全局

对象

定义 Alertmanager 配置的全局参数。

名称

字符串

用于生成 Alertmanager 配置的 AlertmanagerConfig 资源的名称。它必须定义在与 Alertmanager 对象相同的命名空间中。操作符不会为路由和抑制规则强制执行namespace标签。

模板

数组

自定义通知模板。

templates[]

对象

SecretOrConfigMap 允许将数据指定为 Secret 或 ConfigMap。字段是互斥的。

.spec.alertmanagerConfiguration.global

描述

定义 Alertmanager 配置的全局参数。

类型

对象

属性 类型 描述

httpConfig

对象

HTTP 客户端配置。

opsGenieApiKey

对象

默认的 OpsGenie API 密钥。

opsGenieApiUrl

对象

默认的 OpsGenie API URL。

pagerdutyUrl

字符串

默认的 Pagerduty URL。

resolveTimeout

字符串

ResolveTimeout 是 Alertmanager 在警报不包含 EndsAt 时使用的默认值,此时间过去后,如果警报未更新,它可以声明警报已解决。这对来自 Prometheus 的警报没有影响,因为它们总是包含 EndsAt。

slackApiUrl

对象

默认的 Slack API URL。

smtp

对象

配置全局 SMTP 参数。

.spec.alertmanagerConfiguration.global.httpConfig

描述

HTTP 客户端配置。

类型

对象

属性 类型 描述

授权

对象

客户端的授权标头配置。这与 BasicAuth 互斥,并且仅从 Alertmanager v0.22+ 开始可用。

基本认证

对象

客户端的基本身份验证。这与授权互斥。如果两者都定义,则 BasicAuth 优先。

bearerTokenSecret

对象

包含客户端用于身份验证的 bearer 令牌的密钥的密钥。该密钥需要与 Alertmanager 对象位于相同的命名空间中,并且 Prometheus Operator 可以访问。

followRedirects

布尔值

FollowRedirects 指定客户端是否应遵循 HTTP 3xx 重定向。

oauth2

对象

用于获取目标令牌的 OAuth2 客户端凭据。

proxyURL

字符串

可选的代理 URL。

tlsConfig

对象

客户端的 TLS 配置。

.spec.alertmanagerConfiguration.global.httpConfig.authorization

描述

客户端的授权标头配置。这与 BasicAuth 互斥,并且仅从 Alertmanager v0.22+ 开始可用。

类型

对象

属性 类型 描述

credentials

对象

选择命名空间中包含身份验证凭据的 Secret 的密钥。

类型

字符串

定义身份验证类型。值不区分大小写。

“Basic” 不是受支持的值。

默认值:“Bearer”

.spec.alertmanagerConfiguration.global.httpConfig.authorization.credentials

描述

选择命名空间中包含身份验证凭据的 Secret 的密钥。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.alertmanagerConfiguration.global.httpConfig.basicAuth

描述

客户端的基本身份验证。这与授权互斥。如果两者都定义,则 BasicAuth 优先。

类型

对象

属性 类型 描述

password

对象

password 指定包含身份验证密码的 Secret 的密钥。

username

对象

username 指定包含身份验证用户名密钥的 Secret。

.spec.alertmanagerConfiguration.global.httpConfig.basicAuth.password

描述

password 指定包含身份验证密码的 Secret 的密钥。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.alertmanagerConfiguration.global.httpConfig.basicAuth.username

描述

username 指定包含身份验证用户名密钥的 Secret。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.alertmanagerConfiguration.global.httpConfig.bearerTokenSecret

描述

包含客户端用于身份验证的 bearer 令牌的密钥的密钥。该密钥需要与 Alertmanager 对象位于相同的命名空间中,并且 Prometheus Operator 可以访问。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.alertmanagerConfiguration.global.httpConfig.oauth2

描述

用于获取目标令牌的 OAuth2 客户端凭据。

类型

对象

必需
  • clientId

  • clientSecret

  • tokenUrl

属性 类型 描述

clientId

对象

clientId 指定包含 OAuth2 客户端 ID 的 Secret 或 ConfigMap 的密钥。

clientSecret

对象

clientSecret 指定包含 OAuth2 客户端密钥的 Secret 的密钥。

endpointParams

对象(字符串)

endpointParams 配置要附加到令牌 URL 的 HTTP 参数。

scopes

数组 (字符串)

scopes 定义用于令牌请求的 OAuth2 作用域。

tokenUrl

字符串

tokenURL 配置从中获取令牌的 URL。

.spec.alertmanagerConfiguration.global.httpConfig.oauth2.clientId

描述

clientId 指定包含 OAuth2 客户端 ID 的 Secret 或 ConfigMap 的密钥。

类型

对象

属性 类型 描述

configMap

对象

包含用于目标的数据的 ConfigMap。

secret

对象

包含用于目标的数据的 Secret。

.spec.alertmanagerConfiguration.global.httpConfig.oauth2.clientId.configMap

描述

包含用于目标的数据的 ConfigMap。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 ConfigMap 或其密钥。

.spec.alertmanagerConfiguration.global.httpConfig.oauth2.clientId.secret

描述

包含用于目标的数据的 Secret。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.alertmanagerConfiguration.global.httpConfig.oauth2.clientSecret

描述

clientSecret 指定包含 OAuth2 客户端密钥的 Secret 的密钥。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.alertmanagerConfiguration.global.httpConfig.tlsConfig

描述

客户端的 TLS 配置。

类型

对象

属性 类型 描述

ca

对象

验证服务器证书时使用的证书颁发机构。

cert

对象

进行客户端身份验证时要提供的客户端证书。

insecureSkipVerify

布尔值

禁用目标证书验证。

keySecret

对象

包含目标客户端密钥文件的 Secret。

serverName

字符串

用于验证目标的主机名。

.spec.alertmanagerConfiguration.global.httpConfig.tlsConfig.ca

描述

验证服务器证书时使用的证书颁发机构。

类型

对象

属性 类型 描述

configMap

对象

包含用于目标的数据的 ConfigMap。

secret

对象

包含用于目标的数据的 Secret。

.spec.alertmanagerConfiguration.global.httpConfig.tlsConfig.ca.configMap

描述

包含用于目标的数据的 ConfigMap。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 ConfigMap 或其密钥。

.spec.alertmanagerConfiguration.global.httpConfig.tlsConfig.ca.secret

描述

包含用于目标的数据的 Secret。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.alertmanagerConfiguration.global.httpConfig.tlsConfig.cert

描述

进行客户端身份验证时要提供的客户端证书。

类型

对象

属性 类型 描述

configMap

对象

包含用于目标的数据的 ConfigMap。

secret

对象

包含用于目标的数据的 Secret。

.spec.alertmanagerConfiguration.global.httpConfig.tlsConfig.cert.configMap

描述

包含用于目标的数据的 ConfigMap。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 ConfigMap 或其密钥。

.spec.alertmanagerConfiguration.global.httpConfig.tlsConfig.cert.secret

描述

包含用于目标的数据的 Secret。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.alertmanagerConfiguration.global.httpConfig.tlsConfig.keySecret

描述

包含目标客户端密钥文件的 Secret。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.alertmanagerConfiguration.global.opsGenieApiKey

描述

默认的 OpsGenie API 密钥。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.alertmanagerConfiguration.global.opsGenieApiUrl

描述

默认的 OpsGenie API URL。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.alertmanagerConfiguration.global.slackApiUrl

描述

默认的 Slack API URL。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.alertmanagerConfiguration.global.smtp

描述

配置全局 SMTP 参数。

类型

对象

属性 类型 描述

authIdentity

字符串

使用 PLAIN 的 SMTP 身份验证

authPassword

对象

使用 LOGIN 和 PLAIN 的 SMTP 身份验证。

authSecret

对象

使用 CRAM-MD5 的 SMTP 身份验证。

authUsername

字符串

使用 CRAM-MD5、LOGIN 和 PLAIN 的 SMTP 身份验证。如果为空,Alertmanager 不会向 SMTP 服务器进行身份验证。

from

字符串

默认的 SMTP 发件人标头字段。

hello

字符串

用于标识 SMTP 服务器的默认主机名。

requireTLS

布尔值

默认的 SMTP TLS 要求。请注意,Go 不支持与远程 SMTP 端点进行未加密的连接。

smartHost

对象

用于发送电子邮件的默认 SMTP smarthost。

.spec.alertmanagerConfiguration.global.smtp.authPassword

描述

使用 LOGIN 和 PLAIN 的 SMTP 身份验证。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.alertmanagerConfiguration.global.smtp.authSecret

描述

使用 CRAM-MD5 的 SMTP 身份验证。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.alertmanagerConfiguration.global.smtp.smartHost

描述

用于发送电子邮件的默认 SMTP smarthost。

类型

对象

必需
  • host

  • port

属性 类型 描述

host

字符串

定义主机的地址,可以是 DNS 名称或文字 IP 地址。

port

字符串

定义主机的端口,可以是文字端口号或端口名称。

.spec.alertmanagerConfiguration.templates

描述

自定义通知模板。

类型

数组

.spec.alertmanagerConfiguration.templates[]

描述

SecretOrConfigMap 允许将数据指定为 Secret 或 ConfigMap。字段是互斥的。

类型

对象

属性 类型 描述

configMap

对象

包含用于目标的数据的 ConfigMap。

secret

对象

包含用于目标的数据的 Secret。

.spec.alertmanagerConfiguration.templates[].configMap

描述

包含用于目标的数据的 ConfigMap。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 ConfigMap 或其密钥。

.spec.alertmanagerConfiguration.templates[].secret

描述

包含用于目标的数据的 Secret。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.containers

描述

Containers 允许注入额外的容器。这旨在允许向 Alertmanager pod 添加身份验证代理。此处描述的容器如果共享相同的名称并且修改是通过策略性合并补丁完成的,则会修改操作员生成的容器。当前的容器名称为:alertmanagerconfig-reloader。覆盖容器完全不在维护人员将支持的范围内,这样做意味着您接受此行为可能会随时中断而无需通知。

类型

数组

.spec.containers[]

描述

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

类型

对象

必需
  • 名称

属性 类型 描述

args

数组 (字符串)

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

command

数组 (字符串)

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

env

数组

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

env[]

对象

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

envFrom

数组

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

envFrom[]

对象

EnvFromSource 表示一组 ConfigMap 的源。

image

字符串

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

imagePullPolicy

字符串

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

lifecycle

对象

管理系统应该根据容器生命周期事件采取的操作。无法更新。

livenessProbe

对象

容器存活状态的周期性探测。如果探测失败,容器将被重启。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

名称

字符串

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

ports

数组

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

ports[]

对象

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

readinessProbe

对象

容器服务就绪状态的周期性探测。如果探测失败,容器将从服务端点中移除。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

resizePolicy

数组

容器的资源调整策略。

resizePolicy[]

对象

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

resources

对象

此容器所需的计算资源。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

restartPolicy

字符串

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

securityContext

对象

SecurityContext 定义容器应运行的安全选项。如果设置,SecurityContext 的字段将覆盖 PodSecurityContext 的等效字段。更多信息:https://kubernetes.ac.cn/docs/tasks/configure-pod-container/security-context/

startupProbe

对象

StartupProbe 指示 Pod 已成功初始化。如果指定,则在成功完成此探测之前不会执行其他探测。如果此探测失败,Pod 将被重启,就像 livenessProbe 失败一样。这可以用于在 Pod 生命周期开始时提供不同的探测参数,此时加载数据或预热缓存可能需要很长时间,而稳态运行时则不需要。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

stdin

布尔值

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

stdinOnce

布尔值

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

terminationMessagePath

字符串

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

terminationMessagePolicy

字符串

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

tty

布尔值

是否为该容器分配 TTY,也需要 'stdin' 为 true。默认为 false。

volumeDevices

数组

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

volumeDevices[]

对象

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

volumeMounts

数组

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

volumeMounts[]

对象

VolumeMount 描述在容器内挂载卷。

workingDir

字符串

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

.spec.containers[].env

描述

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

类型

数组

.spec.containers[].env[]

描述

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

类型

对象

必需
  • 名称

属性 类型 描述

名称

字符串

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

value

字符串

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

valueFrom

对象

环境变量值的来源。如果 value 不为空,则不能使用。

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

描述

环境变量值的来源。如果 value 不为空,则不能使用。

类型

对象

属性 类型 描述

configMapKeyRef

对象

选择 ConfigMap 的一个键。

fieldRef

对象

选择 pod 的字段:支持 metadata.name、metadata.namespace、metadata.labels['<KEY>']metadata.annotations['<KEY>']、spec.nodeName、spec.serviceAccountName、status.hostIP、status.podIP、status.podIPs。

resourceFieldRef

对象

选择容器的资源:当前仅支持资源限制和请求 (limits.cpu、limits.memory、limits.ephemeral-storage、requests.cpu、requests.memory 和 requests.ephemeral-storage)。

secretKeyRef

对象

选择 pod 命名空间中的密钥。

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

描述

选择 ConfigMap 的一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 ConfigMap 或其密钥。

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

描述

选择 pod 的字段:支持 metadata.name、metadata.namespace、metadata.labels['<KEY>']metadata.annotations['<KEY>']、spec.nodeName、spec.serviceAccountName、status.hostIP、status.podIP、status.podIPs。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

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

fieldPath

字符串

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

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

描述

选择容器的资源:当前仅支持资源限制和请求 (limits.cpu、limits.memory、limits.ephemeral-storage、requests.cpu、requests.memory 和 requests.ephemeral-storage)。

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

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

divisor

整数或字符串

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

resource

字符串

必需:要选择的资源

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

描述

选择 pod 命名空间中的密钥。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.containers[].envFrom

描述

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

类型

数组

.spec.containers[].envFrom[]

描述

EnvFromSource 表示一组 ConfigMap 的源。

类型

对象

属性 类型 描述

configMapRef

对象

要从中选择的 ConfigMap

prefix

字符串

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

secretRef

对象

要从中选择的 Secret

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

描述

要从中选择的 ConfigMap

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 ConfigMap

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

描述

要从中选择的 Secret

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret

.spec.containers[].lifecycle

描述

管理系统应该根据容器生命周期事件采取的操作。无法更新。

类型

对象

属性 类型 描述

postStart

对象

PostStart 在容器创建后立即调用。如果处理程序失败,则根据其重启策略终止并重启容器。容器的其他管理将阻塞,直到挂钩完成。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

preStop

对象

PreStop 在由于 API 请求或管理事件(例如活性/启动探测失败、抢占、资源争用等)而终止容器之前立即调用。如果容器崩溃或退出,则不会调用处理程序。Pod 的终止宽限期倒计时在执行 PreStop 挂钩之前开始。无论处理程序的结果如何,容器最终都将在 Pod 的终止宽限期内终止(除非最终确定程序延迟)。容器的其他管理将阻塞,直到挂钩完成或达到终止宽限期。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

.spec.containers[].lifecycle.postStart

描述

PostStart 在容器创建后立即调用。如果处理程序失败,则根据其重启策略终止并重启容器。容器的其他管理将阻塞,直到挂钩完成。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

类型

对象

属性 类型 描述

exec

对象

Exec 指定要执行的操作。

httpGet

对象

HTTPGet 指定要执行的 http 请求。

sleep

对象

Sleep 表示容器在终止前应休眠的持续时间。

tcpSocket

对象

已弃用。TCPSocket 不支持作为 LifecycleHandler,保留是为了向后兼容。此字段没有验证,当指定 tcp 处理程序时,生命周期挂钩将在运行时失败。

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

描述

Exec 指定要执行的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

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

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

描述

HTTPGet 指定要执行的 http 请求。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

整数或字符串

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • 名称

  • value

属性 类型 描述

名称

字符串

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

value

字符串

标头字段值

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

描述

Sleep 表示容器在终止前应休眠的持续时间。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

已弃用。TCPSocket 不支持作为 LifecycleHandler,保留是为了向后兼容。此字段没有验证,当指定 tcp 处理程序时,生命周期挂钩将在运行时失败。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

整数或字符串

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

.spec.containers[].lifecycle.preStop

描述

PreStop 在由于 API 请求或管理事件(例如活性/启动探测失败、抢占、资源争用等)而终止容器之前立即调用。如果容器崩溃或退出,则不会调用处理程序。Pod 的终止宽限期倒计时在执行 PreStop 挂钩之前开始。无论处理程序的结果如何,容器最终都将在 Pod 的终止宽限期内终止(除非最终确定程序延迟)。容器的其他管理将阻塞,直到挂钩完成或达到终止宽限期。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

类型

对象

属性 类型 描述

exec

对象

Exec 指定要执行的操作。

httpGet

对象

HTTPGet 指定要执行的 http 请求。

sleep

对象

Sleep 表示容器在终止前应休眠的持续时间。

tcpSocket

对象

已弃用。TCPSocket 不支持作为 LifecycleHandler,保留是为了向后兼容。此字段没有验证,当指定 tcp 处理程序时,生命周期挂钩将在运行时失败。

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

描述

Exec 指定要执行的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

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

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

描述

HTTPGet 指定要执行的 http 请求。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

整数或字符串

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • 名称

  • value

属性 类型 描述

名称

字符串

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

value

字符串

标头字段值

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

描述

Sleep 表示容器在终止前应休眠的持续时间。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

已弃用。TCPSocket 不支持作为 LifecycleHandler,保留是为了向后兼容。此字段没有验证,当指定 tcp 处理程序时,生命周期挂钩将在运行时失败。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

整数或字符串

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

.spec.containers[].livenessProbe

描述

容器存活状态的周期性探测。如果探测失败,容器将被重启。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

类型

对象

属性 类型 描述

exec

对象

Exec 指定要执行的操作。

failureThreshold

整数

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

grpc

对象

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

httpGet

对象

HTTPGet 指定要执行的 http 请求。

initialDelaySeconds

整数

容器启动后等待执行存活探针的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

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

successThreshold

整数

探针在失败后被认为成功的连续成功次数最小值。默认为 1。对于存活探针和启动探针,必须为 1。最小值为 1。

tcpSocket

对象

TCPSocket 指定一个涉及 TCP 端口的操作。

terminationGracePeriodSeconds

整数

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

timeoutSeconds

整数

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

.spec.containers[].livenessProbe.exec

描述

Exec 指定要执行的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.spec.containers[].livenessProbe.grpc

描述

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

类型

对象

必需
  • port

属性 类型 描述

port

整数

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

service

字符串

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

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

.spec.containers[].livenessProbe.httpGet

描述

HTTPGet 指定要执行的 http 请求。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

整数或字符串

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • 名称

  • value

属性 类型 描述

名称

字符串

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

value

字符串

标头字段值

.spec.containers[].livenessProbe.tcpSocket

描述

TCPSocket 指定一个涉及 TCP 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

整数或字符串

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

.spec.containers[].ports

描述

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

类型

数组

.spec.containers[].ports[]

描述

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

类型

对象

必需
  • containerPort

属性 类型 描述

containerPort

整数

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

hostIP

字符串

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

hostPort

整数

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

名称

字符串

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

protocol

字符串

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

.spec.containers[].readinessProbe

描述

容器服务就绪状态的周期性探测。如果探测失败,容器将从服务端点中移除。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

类型

对象

属性 类型 描述

exec

对象

Exec 指定要执行的操作。

failureThreshold

整数

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

grpc

对象

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

httpGet

对象

HTTPGet 指定要执行的 http 请求。

initialDelaySeconds

整数

容器启动后等待执行存活探针的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

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

successThreshold

整数

探针在失败后被认为成功的连续成功次数最小值。默认为 1。对于存活探针和启动探针,必须为 1。最小值为 1。

tcpSocket

对象

TCPSocket 指定一个涉及 TCP 端口的操作。

terminationGracePeriodSeconds

整数

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

timeoutSeconds

整数

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

.spec.containers[].readinessProbe.exec

描述

Exec 指定要执行的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.spec.containers[].readinessProbe.grpc

描述

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

类型

对象

必需
  • port

属性 类型 描述

port

整数

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

service

字符串

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

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

.spec.containers[].readinessProbe.httpGet

描述

HTTPGet 指定要执行的 http 请求。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

整数或字符串

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • 名称

  • value

属性 类型 描述

名称

字符串

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

value

字符串

标头字段值

.spec.containers[].readinessProbe.tcpSocket

描述

TCPSocket 指定一个涉及 TCP 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

整数或字符串

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

.spec.containers[].resizePolicy

描述

容器的资源调整策略。

类型

数组

.spec.containers[].resizePolicy[]

描述

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

类型

对象

必需
  • resourceName

  • restartPolicy

属性 类型 描述

resourceName

字符串

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

restartPolicy

字符串

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

.spec.containers[].resources

描述

此容器所需的计算资源。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

类型

对象

属性 类型 描述

claims

数组

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

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

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

claims[]

对象

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

limits

整数或字符串

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

requests

整数或字符串

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

.spec.containers[].resources.claims

描述

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

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

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

类型

数组

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

描述

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

类型

对象

必需
  • 名称

属性 类型 描述

名称

字符串

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

.spec.containers[].securityContext

描述

SecurityContext 定义容器应运行的安全选项。如果设置,SecurityContext 的字段将覆盖 PodSecurityContext 的等效字段。更多信息:https://kubernetes.ac.cn/docs/tasks/configure-pod-container/security-context/

类型

对象

属性 类型 描述

allowPrivilegeEscalation

布尔值

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

appArmorProfile

对象

appArmorProfile 是此容器要使用的 AppArmor 选项。如果设置,此配置文件将覆盖 Pod 的 appArmorProfile。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

capabilities

对象

运行容器时要添加/删除的功能。默认为容器运行时授予的功能的默认集。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

privileged

布尔值

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

procMount

字符串

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

readOnlyRootFilesystem

布尔值

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

runAsGroup

整数

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

runAsNonRoot

布尔值

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

runAsUser

整数

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

seLinuxOptions

对象

应用于容器的 SELinux 上下文。如果未指定,容器运行时将为每个容器分配一个随机的 SELinux 上下文。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

seccompProfile

对象

此容器使用的 seccomp 选项。如果在 Pod 和容器级别都提供了 seccomp 选项,则容器选项会覆盖 Pod 选项。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

windowsOptions

对象

应用于所有容器的 Windows 特定设置。如果未指定,则使用 PodSecurityContext 中的选项。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 linux 时,无法设置此字段。

.spec.containers[].securityContext.appArmorProfile

描述

appArmorProfile 是此容器要使用的 AppArmor 选项。如果设置,此配置文件将覆盖 Pod 的 appArmorProfile。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

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

类型

字符串

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

.spec.containers[].securityContext.capabilities

描述

运行容器时要添加/删除的功能。默认为容器运行时授予的功能的默认集。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

类型

对象

属性 类型 描述

add

数组 (字符串)

添加的功能

drop

数组 (字符串)

删除的功能

.spec.containers[].securityContext.seLinuxOptions

描述

应用于容器的 SELinux 上下文。如果未指定,容器运行时将为每个容器分配一个随机的 SELinux 上下文。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

类型

对象

属性 类型 描述

level

字符串

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

role

字符串

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

类型

字符串

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

user

字符串

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

.spec.containers[].securityContext.seccompProfile

描述

此容器使用的 seccomp 选项。如果在 Pod 和容器级别都提供了 seccomp 选项,则容器选项会覆盖 Pod 选项。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

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

类型

字符串

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

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

.spec.containers[].securityContext.windowsOptions

描述

应用于所有容器的 Windows 特定设置。如果未指定,则使用 PodSecurityContext 中的选项。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 linux 时,无法设置此字段。

类型

对象

属性 类型 描述

gmsaCredentialSpec

字符串

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

gmsaCredentialSpecName

字符串

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

hostProcess

布尔值

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

runAsUserName

字符串

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

.spec.containers[].startupProbe

描述

StartupProbe 指示 Pod 已成功初始化。如果指定,则在成功完成此探测之前不会执行其他探测。如果此探测失败,Pod 将被重启,就像 livenessProbe 失败一样。这可以用于在 Pod 生命周期开始时提供不同的探测参数,此时加载数据或预热缓存可能需要很长时间,而稳态运行时则不需要。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

类型

对象

属性 类型 描述

exec

对象

Exec 指定要执行的操作。

failureThreshold

整数

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

grpc

对象

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

httpGet

对象

HTTPGet 指定要执行的 http 请求。

initialDelaySeconds

整数

容器启动后等待执行存活探针的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

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

successThreshold

整数

探针在失败后被认为成功的连续成功次数最小值。默认为 1。对于存活探针和启动探针,必须为 1。最小值为 1。

tcpSocket

对象

TCPSocket 指定一个涉及 TCP 端口的操作。

terminationGracePeriodSeconds

整数

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

timeoutSeconds

整数

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

.spec.containers[].startupProbe.exec

描述

Exec 指定要执行的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.spec.containers[].startupProbe.grpc

描述

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

类型

对象

必需
  • port

属性 类型 描述

port

整数

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

service

字符串

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

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

.spec.containers[].startupProbe.httpGet

描述

HTTPGet 指定要执行的 http 请求。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

整数或字符串

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • 名称

  • value

属性 类型 描述

名称

字符串

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

value

字符串

标头字段值

.spec.containers[].startupProbe.tcpSocket

描述

TCPSocket 指定一个涉及 TCP 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

整数或字符串

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

.spec.containers[].volumeDevices

描述

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

类型

数组

.spec.containers[].volumeDevices[]

描述

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

类型

对象

必需
  • devicePath

  • 名称

属性 类型 描述

devicePath

字符串

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

名称

字符串

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

.spec.containers[].volumeMounts

描述

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

类型

数组

.spec.containers[].volumeMounts[]

描述

VolumeMount 描述在容器内挂载卷。

类型

对象

必需
  • mountPath

  • 名称

属性 类型 描述

mountPath

字符串

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

mountPropagation

字符串

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

名称

字符串

此名称必须与卷的名称匹配。

readOnly

布尔值

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

recursiveReadOnly

字符串

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

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

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

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

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

subPath

字符串

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

subPathExpr

字符串

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

.spec.hostAliases

描述

Pod 的 hostAliases 配置

类型

数组

.spec.hostAliases[]

描述

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

类型

对象

必需
  • hostnames

  • ip

属性 类型 描述

hostnames

数组 (字符串)

上述 IP 地址的主机名。

ip

字符串

主机文件条目的 IP 地址。

.spec.imagePullSecrets

描述

从注册表中拉取 prometheus 和 alertmanager 镜像时,使用的同一命名空间中密钥的可选引用列表,请参见 https://kubernetes.ac.cn/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod

类型

数组

.spec.imagePullSecrets[]

描述

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

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

.spec.initContainers

描述

InitContainers 允许向 pod 定义添加 initContainers。这些可用于例如从外部来源获取用于注入 Alertmanager 配置的密钥。initContainer 执行期间的任何错误都将导致 Pod 重启。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/init-containers/ 此处描述的 InitContainers 如果共享相同的名称并且修改是通过策略性合并补丁完成的,则会修改操作员生成的 init 容器。当前的 init 容器名称为:init-config-reloader。覆盖 init 容器完全不在维护人员将支持的范围内,这样做意味着您接受此行为可能会随时中断而无需通知。

类型

数组

.spec.initContainers[]

描述

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

类型

对象

必需
  • 名称

属性 类型 描述

args

数组 (字符串)

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

command

数组 (字符串)

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

env

数组

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

env[]

对象

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

envFrom

数组

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

envFrom[]

对象

EnvFromSource 表示一组 ConfigMap 的源。

image

字符串

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

imagePullPolicy

字符串

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

lifecycle

对象

管理系统应该根据容器生命周期事件采取的操作。无法更新。

livenessProbe

对象

容器存活状态的周期性探测。如果探测失败,容器将被重启。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

名称

字符串

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

ports

数组

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

ports[]

对象

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

readinessProbe

对象

容器服务就绪状态的周期性探测。如果探测失败,容器将从服务端点中移除。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

resizePolicy

数组

容器的资源调整策略。

resizePolicy[]

对象

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

resources

对象

此容器所需的计算资源。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

restartPolicy

字符串

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

securityContext

对象

SecurityContext 定义容器应运行的安全选项。如果设置,SecurityContext 的字段将覆盖 PodSecurityContext 的等效字段。更多信息:https://kubernetes.ac.cn/docs/tasks/configure-pod-container/security-context/

startupProbe

对象

StartupProbe 指示 Pod 已成功初始化。如果指定,则在成功完成此探测之前不会执行其他探测。如果此探测失败,Pod 将被重启,就像 livenessProbe 失败一样。这可以用于在 Pod 生命周期开始时提供不同的探测参数,此时加载数据或预热缓存可能需要很长时间,而稳态运行时则不需要。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

stdin

布尔值

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

stdinOnce

布尔值

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

terminationMessagePath

字符串

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

terminationMessagePolicy

字符串

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

tty

布尔值

是否为该容器分配 TTY,也需要 'stdin' 为 true。默认为 false。

volumeDevices

数组

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

volumeDevices[]

对象

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

volumeMounts

数组

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

volumeMounts[]

对象

VolumeMount 描述在容器内挂载卷。

workingDir

字符串

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

.spec.initContainers[].env

描述

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

类型

数组

.spec.initContainers[].env[]

描述

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

类型

对象

必需
  • 名称

属性 类型 描述

名称

字符串

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

value

字符串

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

valueFrom

对象

环境变量值的来源。如果 value 不为空,则不能使用。

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

描述

环境变量值的来源。如果 value 不为空,则不能使用。

类型

对象

属性 类型 描述

configMapKeyRef

对象

选择 ConfigMap 的一个键。

fieldRef

对象

选择 pod 的字段:支持 metadata.name、metadata.namespace、metadata.labels['<KEY>']metadata.annotations['<KEY>']、spec.nodeName、spec.serviceAccountName、status.hostIP、status.podIP、status.podIPs。

resourceFieldRef

对象

选择容器的资源:当前仅支持资源限制和请求 (limits.cpu、limits.memory、limits.ephemeral-storage、requests.cpu、requests.memory 和 requests.ephemeral-storage)。

secretKeyRef

对象

选择 pod 命名空间中的密钥。

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

描述

选择 ConfigMap 的一个键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 ConfigMap 或其密钥。

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

描述

选择 pod 的字段:支持 metadata.name、metadata.namespace、metadata.labels['<KEY>']metadata.annotations['<KEY>']、spec.nodeName、spec.serviceAccountName、status.hostIP、status.podIP、status.podIPs。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

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

fieldPath

字符串

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

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

描述

选择容器的资源:当前仅支持资源限制和请求 (limits.cpu、limits.memory、limits.ephemeral-storage、requests.cpu、requests.memory 和 requests.ephemeral-storage)。

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

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

divisor

整数或字符串

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

resource

字符串

必需:要选择的资源

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

描述

选择 pod 命名空间中的密钥。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.initContainers[].envFrom

描述

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

类型

数组

.spec.initContainers[].envFrom[]

描述

EnvFromSource 表示一组 ConfigMap 的源。

类型

对象

属性 类型 描述

configMapRef

对象

要从中选择的 ConfigMap

prefix

字符串

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

secretRef

对象

要从中选择的 Secret

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

描述

要从中选择的 ConfigMap

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 ConfigMap

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

描述

要从中选择的 Secret

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret

.spec.initContainers[].lifecycle

描述

管理系统应该根据容器生命周期事件采取的操作。无法更新。

类型

对象

属性 类型 描述

postStart

对象

PostStart 在容器创建后立即调用。如果处理程序失败,则根据其重启策略终止并重启容器。容器的其他管理将阻塞,直到挂钩完成。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

preStop

对象

PreStop 在由于 API 请求或管理事件(例如活性/启动探测失败、抢占、资源争用等)而终止容器之前立即调用。如果容器崩溃或退出,则不会调用处理程序。Pod 的终止宽限期倒计时在执行 PreStop 挂钩之前开始。无论处理程序的结果如何,容器最终都将在 Pod 的终止宽限期内终止(除非最终确定程序延迟)。容器的其他管理将阻塞,直到挂钩完成或达到终止宽限期。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

.spec.initContainers[].lifecycle.postStart

描述

PostStart 在容器创建后立即调用。如果处理程序失败,则根据其重启策略终止并重启容器。容器的其他管理将阻塞,直到挂钩完成。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

类型

对象

属性 类型 描述

exec

对象

Exec 指定要执行的操作。

httpGet

对象

HTTPGet 指定要执行的 http 请求。

sleep

对象

Sleep 表示容器在终止前应休眠的持续时间。

tcpSocket

对象

已弃用。TCPSocket 不支持作为 LifecycleHandler,保留是为了向后兼容。此字段没有验证,当指定 tcp 处理程序时,生命周期挂钩将在运行时失败。

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

描述

Exec 指定要执行的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

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

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

描述

HTTPGet 指定要执行的 http 请求。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

整数或字符串

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • 名称

  • value

属性 类型 描述

名称

字符串

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

value

字符串

标头字段值

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

描述

Sleep 表示容器在终止前应休眠的持续时间。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

已弃用。TCPSocket 不支持作为 LifecycleHandler,保留是为了向后兼容。此字段没有验证,当指定 tcp 处理程序时,生命周期挂钩将在运行时失败。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

整数或字符串

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

.spec.initContainers[].lifecycle.preStop

描述

PreStop 在由于 API 请求或管理事件(例如活性/启动探测失败、抢占、资源争用等)而终止容器之前立即调用。如果容器崩溃或退出,则不会调用处理程序。Pod 的终止宽限期倒计时在执行 PreStop 挂钩之前开始。无论处理程序的结果如何,容器最终都将在 Pod 的终止宽限期内终止(除非最终确定程序延迟)。容器的其他管理将阻塞,直到挂钩完成或达到终止宽限期。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

类型

对象

属性 类型 描述

exec

对象

Exec 指定要执行的操作。

httpGet

对象

HTTPGet 指定要执行的 http 请求。

sleep

对象

Sleep 表示容器在终止前应休眠的持续时间。

tcpSocket

对象

已弃用。TCPSocket 不支持作为 LifecycleHandler,保留是为了向后兼容。此字段没有验证,当指定 tcp 处理程序时,生命周期挂钩将在运行时失败。

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

描述

Exec 指定要执行的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

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

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

描述

HTTPGet 指定要执行的 http 请求。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

整数或字符串

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • 名称

  • value

属性 类型 描述

名称

字符串

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

value

字符串

标头字段值

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

描述

Sleep 表示容器在终止前应休眠的持续时间。

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

已弃用。TCPSocket 不支持作为 LifecycleHandler,保留是为了向后兼容。此字段没有验证,当指定 tcp 处理程序时,生命周期挂钩将在运行时失败。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

整数或字符串

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

.spec.initContainers[].livenessProbe

描述

容器存活状态的周期性探测。如果探测失败,容器将被重启。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

类型

对象

属性 类型 描述

exec

对象

Exec 指定要执行的操作。

failureThreshold

整数

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

grpc

对象

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

httpGet

对象

HTTPGet 指定要执行的 http 请求。

initialDelaySeconds

整数

容器启动后等待执行存活探针的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

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

successThreshold

整数

探针在失败后被认为成功的连续成功次数最小值。默认为 1。对于存活探针和启动探针,必须为 1。最小值为 1。

tcpSocket

对象

TCPSocket 指定一个涉及 TCP 端口的操作。

terminationGracePeriodSeconds

整数

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

timeoutSeconds

整数

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

.spec.initContainers[].livenessProbe.exec

描述

Exec 指定要执行的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.spec.initContainers[].livenessProbe.grpc

描述

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

类型

对象

必需
  • port

属性 类型 描述

port

整数

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

service

字符串

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

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

.spec.initContainers[].livenessProbe.httpGet

描述

HTTPGet 指定要执行的 http 请求。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

整数或字符串

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • 名称

  • value

属性 类型 描述

名称

字符串

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

value

字符串

标头字段值

.spec.initContainers[].livenessProbe.tcpSocket

描述

TCPSocket 指定一个涉及 TCP 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

整数或字符串

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

.spec.initContainers[].ports

描述

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

类型

数组

.spec.initContainers[].ports[]

描述

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

类型

对象

必需
  • containerPort

属性 类型 描述

containerPort

整数

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

hostIP

字符串

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

hostPort

整数

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

名称

字符串

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

protocol

字符串

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

.spec.initContainers[].readinessProbe

描述

容器服务就绪状态的周期性探测。如果探测失败,容器将从服务端点中移除。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

类型

对象

属性 类型 描述

exec

对象

Exec 指定要执行的操作。

failureThreshold

整数

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

grpc

对象

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

httpGet

对象

HTTPGet 指定要执行的 http 请求。

initialDelaySeconds

整数

容器启动后等待执行存活探针的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

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

successThreshold

整数

探针在失败后被认为成功的连续成功次数最小值。默认为 1。对于存活探针和启动探针,必须为 1。最小值为 1。

tcpSocket

对象

TCPSocket 指定一个涉及 TCP 端口的操作。

terminationGracePeriodSeconds

整数

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

timeoutSeconds

整数

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

.spec.initContainers[].readinessProbe.exec

描述

Exec 指定要执行的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.spec.initContainers[].readinessProbe.grpc

描述

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

类型

对象

必需
  • port

属性 类型 描述

port

整数

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

service

字符串

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

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

.spec.initContainers[].readinessProbe.httpGet

描述

HTTPGet 指定要执行的 http 请求。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

整数或字符串

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • 名称

  • value

属性 类型 描述

名称

字符串

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

value

字符串

标头字段值

.spec.initContainers[].readinessProbe.tcpSocket

描述

TCPSocket 指定一个涉及 TCP 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

整数或字符串

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

.spec.initContainers[].resizePolicy

描述

容器的资源调整策略。

类型

数组

.spec.initContainers[].resizePolicy[]

描述

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

类型

对象

必需
  • resourceName

  • restartPolicy

属性 类型 描述

resourceName

字符串

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

restartPolicy

字符串

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

.spec.initContainers[].resources

描述

此容器所需的计算资源。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-resources-containers/

类型

对象

属性 类型 描述

claims

数组

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

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

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

claims[]

对象

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

limits

整数或字符串

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

requests

整数或字符串

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

.spec.initContainers[].resources.claims

描述

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

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

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

类型

数组

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

描述

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

类型

对象

必需
  • 名称

属性 类型 描述

名称

字符串

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

.spec.initContainers[].securityContext

描述

SecurityContext 定义容器应运行的安全选项。如果设置,SecurityContext 的字段将覆盖 PodSecurityContext 的等效字段。更多信息:https://kubernetes.ac.cn/docs/tasks/configure-pod-container/security-context/

类型

对象

属性 类型 描述

allowPrivilegeEscalation

布尔值

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

appArmorProfile

对象

appArmorProfile 是此容器要使用的 AppArmor 选项。如果设置,此配置文件将覆盖 Pod 的 appArmorProfile。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

capabilities

对象

运行容器时要添加/删除的功能。默认为容器运行时授予的功能的默认集。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

privileged

布尔值

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

procMount

字符串

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

readOnlyRootFilesystem

布尔值

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

runAsGroup

整数

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

runAsNonRoot

布尔值

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

runAsUser

整数

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

seLinuxOptions

对象

应用于容器的 SELinux 上下文。如果未指定,容器运行时将为每个容器分配一个随机的 SELinux 上下文。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

seccompProfile

对象

此容器使用的 seccomp 选项。如果在 Pod 和容器级别都提供了 seccomp 选项,则容器选项会覆盖 Pod 选项。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

windowsOptions

对象

应用于所有容器的 Windows 特定设置。如果未指定,则使用 PodSecurityContext 中的选项。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 linux 时,无法设置此字段。

.spec.initContainers[].securityContext.appArmorProfile

描述

appArmorProfile 是此容器要使用的 AppArmor 选项。如果设置,此配置文件将覆盖 Pod 的 appArmorProfile。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

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

类型

字符串

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

.spec.initContainers[].securityContext.capabilities

描述

运行容器时要添加/删除的功能。默认为容器运行时授予的功能的默认集。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

类型

对象

属性 类型 描述

add

数组 (字符串)

添加的功能

drop

数组 (字符串)

删除的功能

.spec.initContainers[].securityContext.seLinuxOptions

描述

应用于容器的 SELinux 上下文。如果未指定,容器运行时将为每个容器分配一个随机的 SELinux 上下文。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

类型

对象

属性 类型 描述

level

字符串

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

role

字符串

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

类型

字符串

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

user

字符串

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

.spec.initContainers[].securityContext.seccompProfile

描述

此容器使用的 seccomp 选项。如果在 Pod 和容器级别都提供了 seccomp 选项,则容器选项会覆盖 Pod 选项。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

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

类型

字符串

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

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

.spec.initContainers[].securityContext.windowsOptions

描述

应用于所有容器的 Windows 特定设置。如果未指定,则使用 PodSecurityContext 中的选项。如果在 SecurityContext 和 PodSecurityContext 中都设置了,则 SecurityContext 中指定的值优先。请注意,当 spec.os.name 为 linux 时,无法设置此字段。

类型

对象

属性 类型 描述

gmsaCredentialSpec

字符串

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

gmsaCredentialSpecName

字符串

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

hostProcess

布尔值

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

runAsUserName

字符串

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

.spec.initContainers[].startupProbe

描述

StartupProbe 指示 Pod 已成功初始化。如果指定,则在成功完成此探测之前不会执行其他探测。如果此探测失败,Pod 将被重启,就像 livenessProbe 失败一样。这可以用于在 Pod 生命周期开始时提供不同的探测参数,此时加载数据或预热缓存可能需要很长时间,而稳态运行时则不需要。无法更新。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

类型

对象

属性 类型 描述

exec

对象

Exec 指定要执行的操作。

failureThreshold

整数

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

grpc

对象

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

httpGet

对象

HTTPGet 指定要执行的 http 请求。

initialDelaySeconds

整数

容器启动后等待执行存活探针的秒数。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds

整数

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

successThreshold

整数

探针在失败后被认为成功的连续成功次数最小值。默认为 1。对于存活探针和启动探针,必须为 1。最小值为 1。

tcpSocket

对象

TCPSocket 指定一个涉及 TCP 端口的操作。

terminationGracePeriodSeconds

整数

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

timeoutSeconds

整数

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

.spec.initContainers[].startupProbe.exec

描述

Exec 指定要执行的操作。

类型

对象

属性 类型 描述

command

数组 (字符串)

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

.spec.initContainers[].startupProbe.grpc

描述

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

类型

对象

必需
  • port

属性 类型 描述

port

整数

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

service

字符串

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

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

.spec.initContainers[].startupProbe.httpGet

描述

HTTPGet 指定要执行的 http 请求。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

httpHeaders

数组

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

httpHeaders[]

对象

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

path

字符串

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

port

整数或字符串

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • 名称

  • value

属性 类型 描述

名称

字符串

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

value

字符串

标头字段值

.spec.initContainers[].startupProbe.tcpSocket

描述

TCPSocket 指定一个涉及 TCP 端口的操作。

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

整数或字符串

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

.spec.initContainers[].volumeDevices

描述

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

类型

数组

.spec.initContainers[].volumeDevices[]

描述

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

类型

对象

必需
  • devicePath

  • 名称

属性 类型 描述

devicePath

字符串

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

名称

字符串

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

.spec.initContainers[].volumeMounts

描述

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

类型

数组

.spec.initContainers[].volumeMounts[]

描述

VolumeMount 描述在容器内挂载卷。

类型

对象

必需
  • mountPath

  • 名称

属性 类型 描述

mountPath

字符串

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

mountPropagation

字符串

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

名称

字符串

此名称必须与卷的名称匹配。

readOnly

布尔值

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

recursiveReadOnly

字符串

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

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

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

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

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

subPath

字符串

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

subPathExpr

字符串

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

.spec.podMetadata

描述

PodMetadata 配置传播到 Alertmanager pod 的标签和注释。

以下项目是保留的,不能被覆盖:* "alertmanager" 标签,设置为 Alertmanager 实例的名称。* "app.kubernetes.io/instance" 标签,设置为 Alertmanager 实例的名称。* "app.kubernetes.io/managed-by" 标签,设置为 "prometheus-operator"。* "app.kubernetes.io/name" 标签,设置为 "alertmanager"。* "app.kubernetes.io/version" 标签,设置为 Alertmanager 版本。* "kubectl.kubernetes.io/default-container" 注释,设置为 "alertmanager"。

类型

对象

属性 类型 描述

annotations

对象(字符串)

Annotations 是一个存储在资源中的非结构化键值对映射,外部工具可以使用它来存储和检索任意元数据。它们不可查询,在修改对象时应予以保留。更多信息:https://kubernetes.ac.cn/docs/user-guide/annotations

labels

对象(字符串)

字符串键值对的映射,可用于组织和分类(范围和选择)对象。可能与复制控制器和服务的选取器匹配。更多信息:https://kubernetes.ac.cn/docs/user-guide/labels

名称

字符串

名称在命名空间内必须唯一。创建资源时是必需的,尽管某些资源可能允许客户端自动请求生成合适的名称。名称主要用于创建幂等性和配置定义。不能更新。更多信息:https://kubernetes.ac.cn/docs/user-guide/identifiers#names

.spec.resources

描述

定义单个 Pod 的资源请求和限制。

类型

对象

属性 类型 描述

claims

数组

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

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

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

claims[]

对象

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

limits

整数或字符串

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

requests

整数或字符串

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

.spec.resources.claims

描述

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

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

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

类型

数组

.spec.resources.claims[]

描述

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

类型

对象

必需
  • 名称

属性 类型 描述

名称

字符串

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

.spec.securityContext

描述

SecurityContext 保存 Pod 级别的安全属性和公共容器设置。默认为默认的 PodSecurityContext。

类型

对象

属性 类型 描述

appArmorProfile

对象

appArmorProfile 是此 Pod 中容器要使用的 AppArmor 选项。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

fsGroup

整数

应用于 Pod 中所有容器的一个特殊的补充组。某些卷类型允许 Kubelet 将该卷的所有权更改为 Pod 所有。

1. 拥有者 GID 将是 FSGroup 2. 设置 setgid 位(在卷中创建的新文件将由 FSGroup 拥有)3. 权限位将与 rw-rw---- 进行 OR 运算。

如果未设置,Kubelet 将不会修改任何卷的所有权和权限。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

fsGroupChangePolicy

字符串

fsGroupChangePolicy 定义了在卷暴露到 Pod 内部之前更改其所有权和权限的行为。此字段仅适用于支持基于 fsGroup 的所有权(和权限)的卷类型。它对短暂的卷类型(例如:secret、configmaps 和 emptydir)无效。有效值为 "OnRootMismatch" 和 "Always"。如果未指定,则使用 "Always"。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

runAsGroup

整数

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

runAsNonRoot

布尔值

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

runAsUser

整数

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

seLinuxOptions

对象

要应用于所有容器的 SELinux 上下文。如果未指定,则容器运行时将为每个容器分配一个随机的 SELinux 上下文。也可以在 SecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了此值,则 SecurityContext 中指定的值将优先用于该容器。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

seccompProfile

对象

此 Pod 中容器使用的 seccomp 选项。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

supplementalGroups

数组 (整数)

应用于每个容器中运行的第一个进程的一组组,此外还有容器的主要 GID、fsGroup(如果指定)以及容器镜像中为容器进程的 uid 定义的组成员身份。如果未指定,则不会向任何容器添加其他组。请注意,即使容器镜像中为容器进程的 uid 定义的组成员身份未包含在此列表中,它们仍然有效。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

sysctls

数组

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

sysctls[]

对象

Sysctl 定义要设置的内核参数

windowsOptions

对象

应用于所有容器的 Windows 特定设置。如果未指定,则将使用容器 SecurityContext 中的选项。如果在 SecurityContext 和 PodSecurityContext 中都设置了此值,则 SecurityContext 中指定的值将优先。请注意,当 spec.os.name 为 linux 时,无法设置此字段。

.spec.securityContext.appArmorProfile

描述

appArmorProfile 是此 Pod 中容器要使用的 AppArmor 选项。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

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

类型

字符串

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

.spec.securityContext.seLinuxOptions

描述

要应用于所有容器的 SELinux 上下文。如果未指定,则容器运行时将为每个容器分配一个随机的 SELinux 上下文。也可以在 SecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了此值,则 SecurityContext 中指定的值将优先用于该容器。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

类型

对象

属性 类型 描述

level

字符串

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

role

字符串

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

类型

字符串

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

user

字符串

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

.spec.securityContext.seccompProfile

描述

此 Pod 中容器使用的 seccomp 选项。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

类型

对象

必需
  • 类型

属性 类型 描述

localhostProfile

字符串

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

类型

字符串

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

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

.spec.securityContext.sysctls

描述

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

类型

数组

.spec.securityContext.sysctls[]

描述

Sysctl 定义要设置的内核参数

类型

对象

必需
  • 名称

  • value

属性 类型 描述

名称

字符串

要设置的属性名称

value

字符串

要设置的属性值

.spec.securityContext.windowsOptions

描述

应用于所有容器的 Windows 特定设置。如果未指定,则将使用容器 SecurityContext 中的选项。如果在 SecurityContext 和 PodSecurityContext 中都设置了此值,则 SecurityContext 中指定的值将优先。请注意,当 spec.os.name 为 linux 时,无法设置此字段。

类型

对象

属性 类型 描述

gmsaCredentialSpec

字符串

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

gmsaCredentialSpecName

字符串

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

hostProcess

布尔值

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

runAsUserName

字符串

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

.spec.storage

描述

Storage 定义了 Alertmanager 实例如何使用存储。

类型

对象

属性 类型 描述

disableMountSubPath

布尔值

已弃用:subPath 用法将在未来版本中删除。

emptyDir

对象

StatefulSet 将使用的 EmptyDirVolumeSource。如果指定,则它优先于 ephemeralvolumeClaimTemplate。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes/#emptydir

ephemeral

对象

StatefulSet 将使用的 EphemeralVolumeSource。这是 k8s 1.21 中的测试版字段,1.15 中的 GA 版本。对于较低版本,从 k8s 1.19 开始,它需要启用 GenericEphemeralVolume 功能网关。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes

volumeClaimTemplate

对象

定义 Prometheus StatefulSets 将使用的 PVC 规范。使用无法自动配置的卷的最简单方法是将标签选择器与手动创建的 PersistentVolume 一起使用。

.spec.storage.emptyDir

描述

StatefulSet 将使用的 EmptyDirVolumeSource。如果指定,则它优先于 ephemeralvolumeClaimTemplate。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes/#emptydir

类型

对象

属性 类型 描述

medium

字符串

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

sizeLimit

整数或字符串

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

.spec.storage.ephemeral

描述

StatefulSet 将使用的 EphemeralVolumeSource。这是 k8s 1.21 中的测试版字段,1.15 中的 GA 版本。对于较低版本,从 k8s 1.19 开始,它需要启用 GenericEphemeralVolume 功能网关。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes

类型

对象

属性 类型 描述

volumeClaimTemplate

对象

将用于创建独立的 PVC 来配置卷。嵌入此 EphemeralVolumeSource 的 Pod 将是 PVC 的所有者,即 PVC 将与 Pod 一起删除。PVC 的名称将为 <pod name>-<volume name>,其中 <volume name>PodSpec.Volumes 数组条目中的名称。如果连接后的名称对于 PVC 无效(例如,太长),则 Pod 验证将拒绝该 Pod。

Pod 将不会使用名称相同的现有 PVC(该 PVC 不属于该 Pod),以避免错误地使用不相关的卷。然后,Pod 的启动将被阻塞,直到不相关的 PVC 被删除。如果此类预先创建的 PVC 旨在由 Pod 使用,则一旦 Pod 存在,必须使用对 Pod 的所有者引用更新 PVC。通常不需要这样做,但在手动重建损坏的集群时可能很有用。

此字段是只读的,创建 PVC 后,Kubernetes 不会对其进行任何更改。

必需,不能为 nil。

.spec.storage.ephemeral.volumeClaimTemplate

描述

将用于创建独立的 PVC 来配置卷。嵌入此 EphemeralVolumeSource 的 Pod 将是 PVC 的所有者,即 PVC 将与 Pod 一起删除。PVC 的名称将为 <pod name>-<volume name>,其中 <volume name>PodSpec.Volumes 数组条目中的名称。如果连接后的名称对于 PVC 无效(例如,太长),则 Pod 验证将拒绝该 Pod。

Pod 将不会使用名称相同的现有 PVC(该 PVC 不属于该 Pod),以避免错误地使用不相关的卷。然后,Pod 的启动将被阻塞,直到不相关的 PVC 被删除。如果此类预先创建的 PVC 旨在由 Pod 使用,则一旦 Pod 存在,必须使用对 Pod 的所有者引用更新 PVC。通常不需要这样做,但在手动重建损坏的集群时可能很有用。

此字段是只读的,创建 PVC 后,Kubernetes 不会对其进行任何更改。

必需,不能为 nil。

类型

对象

必需
  • spec

属性 类型 描述

metadata

对象

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

spec

对象

PersistentVolumeClaim 的规范。整个内容将原封不动地复制到由此模板创建的 PVC 中。PersistentVolumeClaim 中的相同字段在此处也适用。

.spec.storage.ephemeral.volumeClaimTemplate.metadata

描述

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

类型

对象

.spec.storage.ephemeral.volumeClaimTemplate.spec

描述

PersistentVolumeClaim 的规范。整个内容将原封不动地复制到由此模板创建的 PVC 中。PersistentVolumeClaim 中的相同字段在此处也适用。

类型

对象

属性 类型 描述

accessModes

数组 (字符串)

accessModes 包含卷应具有的所需访问模式。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#access-modes-1

dataSource

对象

dataSource 字段可以用来指定:* 一个已存在的 VolumeSnapshot 对象 (snapshot.storage.k8s.io/VolumeSnapshot) * 一个已存在的 PVC (PersistentVolumeClaim) 如果 provisioner 或外部控制器支持指定的數據源,它将基于指定的數據源内容创建一个新的卷。当启用 AnyVolumeDataSource 功能特性门控时,dataSource 内容将被复制到 dataSourceRef,并且当 dataSourceRef.namespace 未指定时,dataSourceRef 内容将被复制到 dataSource。如果指定了 namespace,则 dataSourceRef 将不会复制到 dataSource。

dataSourceRef

对象

dataSourceRef 指定用于填充卷数据的对象,如果需要非空卷。这可以是任何来自非空 API 组(非核心对象)的对象或 PersistentVolumeClaim 对象。当指定此字段时,只有当指定对象的类型与某些已安装的卷填充程序或动态 provisioner 匹配时,卷绑定才会成功。此字段将替换 dataSource 字段的功能,因此,如果两个字段都非空,则它们必须具有相同的值。为了向后兼容,当 dataSourceRef 中未指定 namespace 时,如果其中一个字段为空而另一个字段非空,则这两个字段 (dataSource 和 dataSourceRef) 将自动设置为相同的值。当在 dataSourceRef 中指定 namespace 时,dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间存在三个重要区别:* dataSource 只允许两种特定类型的对象,而 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* dataSource 忽略不允许的值(丢弃它们),而 dataSourceRef 保留所有值,并在指定不允许的值时生成错误。* dataSource 只允许本地对象,而 dataSourceRef 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 功能特性门控。(Alpha)使用 dataSourceRef 的 namespace 字段需要启用 CrossNamespaceVolumeDataSource 功能特性门控。

resources

对象

resources 表示卷应具有的最小资源。如果启用了 RecoverVolumeExpansionFailure 功能,则允许用户指定低于先前值的资源需求,但仍必须高于声明状态字段中记录的容量。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#resources

selector

对象

selector 是对要考虑用于绑定的卷的标签查询。

storageClassName

字符串

storageClassName 是声明所需的 StorageClass 的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassName

字符串

volumeAttributesClassName 可用于设置此声明使用的 VolumeAttributesClass。如果指定,CSI 驱动程序将使用相应 VolumeAttributesClass 中定义的属性创建或更新卷。这与 storageClassName 的用途不同,可以在创建声明后更改它。空字符串值表示不会将任何 VolumeAttributesClass 应用于声明,但是一旦设置,就不允许将此字段重置为空字符串。如果未指定且 PersistentVolumeClaim 未绑定,则如果存在,持久卷控制器将设置默认的 VolumeAttributesClass。如果 volumeAttributesClass 引用的资源不存在,则此 PersistentVolumeClaim 将设置为 Pending 状态,这由 modifyVolumeStatus 字段反映,直到此类资源存在为止。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volume-attributes-classes/ (Alpha)使用此字段需要启用 VolumeAttributesClass 功能特性门控。

volumeMode

字符串

volumeMode 定义声明所需的卷类型。如果未包含在声明规范中,则隐含 Filesystem 值。

volumeName

字符串

volumeName 是对支持此声明的 PersistentVolume 的绑定引用。

.spec.storage.ephemeral.volumeClaimTemplate.spec.dataSource

描述

dataSource 字段可以用来指定:* 一个已存在的 VolumeSnapshot 对象 (snapshot.storage.k8s.io/VolumeSnapshot) * 一个已存在的 PVC (PersistentVolumeClaim) 如果 provisioner 或外部控制器支持指定的數據源,它将基于指定的數據源内容创建一个新的卷。当启用 AnyVolumeDataSource 功能特性门控时,dataSource 内容将被复制到 dataSourceRef,并且当 dataSourceRef.namespace 未指定时,dataSourceRef 内容将被复制到 dataSource。如果指定了 namespace,则 dataSourceRef 将不会复制到 dataSource。

类型

对象

必需
  • kind

  • 名称

属性 类型 描述

apiGroup

字符串

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

kind

字符串

Kind 是被引用的资源类型。

名称

字符串

Name 是被引用的资源名称。

.spec.storage.ephemeral.volumeClaimTemplate.spec.dataSourceRef

描述

dataSourceRef 指定用于填充卷数据的对象,如果需要非空卷。这可以是任何来自非空 API 组(非核心对象)的对象或 PersistentVolumeClaim 对象。当指定此字段时,只有当指定对象的类型与某些已安装的卷填充程序或动态 provisioner 匹配时,卷绑定才会成功。此字段将替换 dataSource 字段的功能,因此,如果两个字段都非空,则它们必须具有相同的值。为了向后兼容,当 dataSourceRef 中未指定 namespace 时,如果其中一个字段为空而另一个字段非空,则这两个字段 (dataSource 和 dataSourceRef) 将自动设置为相同的值。当在 dataSourceRef 中指定 namespace 时,dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间存在三个重要区别:* dataSource 只允许两种特定类型的对象,而 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* dataSource 忽略不允许的值(丢弃它们),而 dataSourceRef 保留所有值,并在指定不允许的值时生成错误。* dataSource 只允许本地对象,而 dataSourceRef 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 功能特性门控。(Alpha)使用 dataSourceRef 的 namespace 字段需要启用 CrossNamespaceVolumeDataSource 功能特性门控。

类型

对象

必需
  • kind

  • 名称

属性 类型 描述

apiGroup

字符串

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

kind

字符串

Kind 是被引用的资源类型。

名称

字符串

Name 是被引用的资源名称。

namespace

字符串

Namespace 是被引用的资源的命名空间。请注意,当指定命名空间时,需要在引用命名空间中使用 gateway.networking.k8s.io/ReferenceGrant 对象,以允许该命名空间的所有者接受该引用。有关详细信息,请参阅 ReferenceGrant 文档。(Alpha)此字段需要启用 CrossNamespaceVolumeDataSource 功能特性门控。

.spec.storage.ephemeral.volumeClaimTemplate.spec.resources

描述

resources 表示卷应具有的最小资源。如果启用了 RecoverVolumeExpansionFailure 功能,则允许用户指定低于先前值的资源需求,但仍必须高于声明状态字段中记录的容量。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#resources

类型

对象

属性 类型 描述

limits

整数或字符串

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

requests

整数或字符串

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

.spec.storage.ephemeral.volumeClaimTemplate.spec.selector

描述

selector 是对要考虑用于绑定的卷的标签查询。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

.spec.storage.ephemeral.volumeClaimTemplate.spec.selector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

.spec.storage.ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

.spec.storage.volumeClaimTemplate

描述

定义 Prometheus StatefulSets 将使用的 PVC 规范。使用无法自动配置的卷的最简单方法是将标签选择器与手动创建的 PersistentVolume 一起使用。

类型

对象

属性 类型 描述

apiVersion

字符串

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

kind

字符串

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

metadata

对象

EmbeddedMetadata 包含与 EmbeddedResource 相关的元数据。

spec

对象

定义 pod 作者请求的卷的所需特性。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

status

对象

已弃用:此字段从不设置。

.spec.storage.volumeClaimTemplate.metadata

描述

EmbeddedMetadata 包含与 EmbeddedResource 相关的元数据。

类型

对象

属性 类型 描述

annotations

对象(字符串)

Annotations 是一个存储在资源中的非结构化键值对映射,外部工具可以使用它来存储和检索任意元数据。它们不可查询,在修改对象时应予以保留。更多信息:https://kubernetes.ac.cn/docs/user-guide/annotations

labels

对象(字符串)

字符串键值对的映射,可用于组织和分类(范围和选择)对象。可能与复制控制器和服务的选取器匹配。更多信息:https://kubernetes.ac.cn/docs/user-guide/labels

名称

字符串

名称在命名空间内必须唯一。创建资源时是必需的,尽管某些资源可能允许客户端自动请求生成合适的名称。名称主要用于创建幂等性和配置定义。不能更新。更多信息:https://kubernetes.ac.cn/docs/user-guide/identifiers#names

.spec.storage.volumeClaimTemplate.spec

描述

定义 pod 作者请求的卷的所需特性。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

类型

对象

属性 类型 描述

accessModes

数组 (字符串)

accessModes 包含卷应具有的所需访问模式。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#access-modes-1

dataSource

对象

dataSource 字段可以用来指定:* 一个已存在的 VolumeSnapshot 对象 (snapshot.storage.k8s.io/VolumeSnapshot) * 一个已存在的 PVC (PersistentVolumeClaim) 如果 provisioner 或外部控制器支持指定的數據源,它将基于指定的數據源内容创建一个新的卷。当启用 AnyVolumeDataSource 功能特性门控时,dataSource 内容将被复制到 dataSourceRef,并且当 dataSourceRef.namespace 未指定时,dataSourceRef 内容将被复制到 dataSource。如果指定了 namespace,则 dataSourceRef 将不会复制到 dataSource。

dataSourceRef

对象

dataSourceRef 指定用于填充卷数据的对象,如果需要非空卷。这可以是任何来自非空 API 组(非核心对象)的对象或 PersistentVolumeClaim 对象。当指定此字段时,只有当指定对象的类型与某些已安装的卷填充程序或动态 provisioner 匹配时,卷绑定才会成功。此字段将替换 dataSource 字段的功能,因此,如果两个字段都非空,则它们必须具有相同的值。为了向后兼容,当 dataSourceRef 中未指定 namespace 时,如果其中一个字段为空而另一个字段非空,则这两个字段 (dataSource 和 dataSourceRef) 将自动设置为相同的值。当在 dataSourceRef 中指定 namespace 时,dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间存在三个重要区别:* dataSource 只允许两种特定类型的对象,而 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* dataSource 忽略不允许的值(丢弃它们),而 dataSourceRef 保留所有值,并在指定不允许的值时生成错误。* dataSource 只允许本地对象,而 dataSourceRef 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 功能特性门控。(Alpha)使用 dataSourceRef 的 namespace 字段需要启用 CrossNamespaceVolumeDataSource 功能特性门控。

resources

对象

resources 表示卷应具有的最小资源。如果启用了 RecoverVolumeExpansionFailure 功能,则允许用户指定低于先前值的资源需求,但仍必须高于声明状态字段中记录的容量。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#resources

selector

对象

selector 是对要考虑用于绑定的卷的标签查询。

storageClassName

字符串

storageClassName 是声明所需的 StorageClass 的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassName

字符串

volumeAttributesClassName 可用于设置此声明使用的 VolumeAttributesClass。如果指定,CSI 驱动程序将使用相应 VolumeAttributesClass 中定义的属性创建或更新卷。这与 storageClassName 的用途不同,可以在创建声明后更改它。空字符串值表示不会将任何 VolumeAttributesClass 应用于声明,但是一旦设置,就不允许将此字段重置为空字符串。如果未指定且 PersistentVolumeClaim 未绑定,则如果存在,持久卷控制器将设置默认的 VolumeAttributesClass。如果 volumeAttributesClass 引用的资源不存在,则此 PersistentVolumeClaim 将设置为 Pending 状态,这由 modifyVolumeStatus 字段反映,直到此类资源存在为止。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volume-attributes-classes/ (Alpha)使用此字段需要启用 VolumeAttributesClass 功能特性门控。

volumeMode

字符串

volumeMode 定义声明所需的卷类型。如果未包含在声明规范中,则隐含 Filesystem 值。

volumeName

字符串

volumeName 是对支持此声明的 PersistentVolume 的绑定引用。

.spec.storage.volumeClaimTemplate.spec.dataSource

描述

dataSource 字段可以用来指定:* 一个已存在的 VolumeSnapshot 对象 (snapshot.storage.k8s.io/VolumeSnapshot) * 一个已存在的 PVC (PersistentVolumeClaim) 如果 provisioner 或外部控制器支持指定的數據源,它将基于指定的數據源内容创建一个新的卷。当启用 AnyVolumeDataSource 功能特性门控时,dataSource 内容将被复制到 dataSourceRef,并且当 dataSourceRef.namespace 未指定时,dataSourceRef 内容将被复制到 dataSource。如果指定了 namespace,则 dataSourceRef 将不会复制到 dataSource。

类型

对象

必需
  • kind

  • 名称

属性 类型 描述

apiGroup

字符串

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

kind

字符串

Kind 是被引用的资源类型。

名称

字符串

Name 是被引用的资源名称。

.spec.storage.volumeClaimTemplate.spec.dataSourceRef

描述

dataSourceRef 指定用于填充卷数据的对象,如果需要非空卷。这可以是任何来自非空 API 组(非核心对象)的对象或 PersistentVolumeClaim 对象。当指定此字段时,只有当指定对象的类型与某些已安装的卷填充程序或动态 provisioner 匹配时,卷绑定才会成功。此字段将替换 dataSource 字段的功能,因此,如果两个字段都非空,则它们必须具有相同的值。为了向后兼容,当 dataSourceRef 中未指定 namespace 时,如果其中一个字段为空而另一个字段非空,则这两个字段 (dataSource 和 dataSourceRef) 将自动设置为相同的值。当在 dataSourceRef 中指定 namespace 时,dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间存在三个重要区别:* dataSource 只允许两种特定类型的对象,而 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* dataSource 忽略不允许的值(丢弃它们),而 dataSourceRef 保留所有值,并在指定不允许的值时生成错误。* dataSource 只允许本地对象,而 dataSourceRef 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 功能特性门控。(Alpha)使用 dataSourceRef 的 namespace 字段需要启用 CrossNamespaceVolumeDataSource 功能特性门控。

类型

对象

必需
  • kind

  • 名称

属性 类型 描述

apiGroup

字符串

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

kind

字符串

Kind 是被引用的资源类型。

名称

字符串

Name 是被引用的资源名称。

namespace

字符串

Namespace 是被引用的资源的命名空间。请注意,当指定命名空间时,需要在引用命名空间中使用 gateway.networking.k8s.io/ReferenceGrant 对象,以允许该命名空间的所有者接受该引用。有关详细信息,请参阅 ReferenceGrant 文档。(Alpha)此字段需要启用 CrossNamespaceVolumeDataSource 功能特性门控。

.spec.storage.volumeClaimTemplate.spec.resources

描述

resources 表示卷应具有的最小资源。如果启用了 RecoverVolumeExpansionFailure 功能,则允许用户指定低于先前值的资源需求,但仍必须高于声明状态字段中记录的容量。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#resources

类型

对象

属性 类型 描述

limits

整数或字符串

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

requests

整数或字符串

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

.spec.storage.volumeClaimTemplate.spec.selector

描述

selector 是对要考虑用于绑定的卷的标签查询。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

.spec.storage.volumeClaimTemplate.spec.selector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

.spec.storage.volumeClaimTemplate.spec.selector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

.spec.storage.volumeClaimTemplate.status

描述

已弃用:此字段从不设置。

类型

对象

属性 类型 描述

accessModes

数组 (字符串)

accessModes 包含支持 PVC 的卷的实际访问模式。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#access-modes-1

allocatedResourceStatuses

对象(字符串)

allocatedResourceStatuses 存储为给定 PVC 调整大小的资源的状态。键名遵循标准 Kubernetes 标签语法。有效值为:* 无前缀键:- storage - 卷的容量。* 自定义资源必须使用实现定义的前缀名称,例如“example.com/my-custom-resource” 除了上述值之外 - 无前缀或具有 kubernetes.io 前缀的键被认为是保留的,因此可能不会被使用。

ClaimResourceStatus 可以处于以下任何状态:- ControllerResizeInProgress:当调整大小控制器开始在控制平面中调整卷大小时设置的状态。- ControllerResizeFailed:当调整大小在调整大小控制器中因最终错误而失败时设置的状态。- NodeResizePending:当调整大小控制器完成调整卷大小但节点上仍需要进一步调整卷大小时设置的状态。- NodeResizeInProgress:当 kubelet 开始调整卷大小时设置的状态。- NodeResizeFailed:当调整大小在 kubelet 中因最终错误而失败时设置的状态。瞬态错误不会设置 NodeResizeFailed。例如:如果扩展 PVC 以获得更多容量 - 此字段可以是以下状态之一:- pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeInProgress" - pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeFailed" - pvc.status.allocatedResourceStatus['storage'] = "NodeResizePending" - pvc.status.allocatedResourceStatus['storage'] = "NodeResizeInProgress" - pvc.status.allocatedResourceStatus['storage'] = "NodeResizeFailed" 当此字段未设置时,表示对于给定的 PVC,没有调整大小操作正在进行。

接收 PVC 更新的控制器,如果更新包含之前未知的 resourceName 或 ClaimResourceStatus,则应忽略此更新,因为它与控制器设计目的不符。例如,仅负责调整卷大小的控制器,应忽略更改与 PVC 关联的其他有效资源的 PVC 更新。

这是一个 alpha 功能,需要启用 RecoverVolumeExpansionFailure 功能。

allocatedResources

整数或字符串

allocatedResources 追踪分配给 PVC 的资源,包括其容量。键名遵循标准 Kubernetes 标签语法。有效值为:* 无前缀键:- storage - 卷的容量。* 自定义资源必须使用实现定义的前缀名,例如 "example.com/my-custom-resource"。除了上述值之外,无前缀或具有 kubernetes.io 前缀的键被认为是保留的,因此不能使用。

当请求卷扩展操作时,此处报告的容量可能大于实际容量。对于存储配额,使用 allocatedResources 和 PVC.spec.resources 中较大的值。如果未设置 allocatedResources,则仅使用 PVC.spec.resources 进行配额计算。如果降低了卷扩展容量请求,则只有在没有扩展操作正在进行并且实际卷容量等于或小于请求容量的情况下,才会降低 allocatedResources。

接收 PVC 更新的控制器,如果更新包含之前未知的 resourceName,则应忽略此更新,因为它与控制器设计目的不符。例如,仅负责调整卷大小的控制器,应忽略更改与 PVC 关联的其他有效资源的 PVC 更新。

这是一个 alpha 功能,需要启用 RecoverVolumeExpansionFailure 功能。

capacity

整数或字符串

capacity 表示底层卷的实际资源。

conditions

数组

conditions 是持久卷声明的当前状态。如果底层持久卷正在调整大小,则状态将设置为 'Resizing'。

conditions[]

对象

PersistentVolumeClaimCondition 包含 pvc 状态的详细信息。

currentVolumeAttributesClassName

字符串

currentVolumeAttributesClassName 是 PVC 当前使用的 VolumeAttributesClass 的名称。未设置时,表示没有 VolumeAttributeClass 应用于此 PersistentVolumeClaim。这是一个 alpha 功能,需要启用 VolumeAttributesClass 功能。

modifyVolumeStatus

对象

ModifyVolumeStatus 表示 ControllerModifyVolume 操作的状态对象。未设置时,表示没有正在尝试进行 ModifyVolume 操作。这是一个 alpha 功能,需要启用 VolumeAttributesClass 功能。

phase

字符串

phase 表示 PersistentVolumeClaim 的当前阶段。

.spec.storage.volumeClaimTemplate.status.conditions

描述

conditions 是持久卷声明的当前状态。如果底层持久卷正在调整大小,则状态将设置为 'Resizing'。

类型

数组

.spec.storage.volumeClaimTemplate.status.conditions[]

描述

PersistentVolumeClaimCondition 包含 pvc 状态的详细信息。

类型

对象

必需
  • status

  • 类型

属性 类型 描述

lastProbeTime

字符串

lastProbeTime 是探测状态的时间。

lastTransitionTime

字符串

lastTransitionTime 是状态从一种状态转换到另一种状态的时间。

message

字符串

message 是指示上次转换详细信息的可读消息。

reason

字符串

reason 是一个唯一的、简短的、机器可理解的字符串,它给出状态最后一次转换的原因。如果它报告 "Resizing",则表示底层持久卷正在调整大小。

status

字符串

类型

字符串

PersistentVolumeClaimConditionType 是 PersistentVolumeClaimCondition.Type 的有效值。

.spec.storage.volumeClaimTemplate.status.modifyVolumeStatus

描述

ModifyVolumeStatus 表示 ControllerModifyVolume 操作的状态对象。未设置时,表示没有正在尝试进行 ModifyVolume 操作。这是一个 alpha 功能,需要启用 VolumeAttributesClass 功能。

类型

对象

必需
  • status

属性 类型 描述

status

字符串

status 是 ControllerModifyVolume 操作的状态。它可以处于以下任何状态:- Pending Pending 表示由于未满足要求(例如,指定的 VolumeAttributesClass 不存在)而无法修改 PersistentVolumeClaim。- InProgress InProgress 表示卷正在修改中。- Infeasible Infeasible 表示 CSI 驱动程序已拒绝该请求,因为它无效。要解决此错误,需要指定有效的 VolumeAttributesClass。注意:将来可以添加新的状态。使用者应检查未知状态并进行相应的失败处理。

targetVolumeAttributesClassName

字符串

targetVolumeAttributesClassName 是当前正在协调的 PVC 的 VolumeAttributesClass 的名称。

.spec.tolerations

描述

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

类型

数组

.spec.tolerations[]

描述

此容忍度附加到的 Pod 容忍任何与三元组 匹配的污点,使用匹配运算符

类型

对象

属性 类型 描述

effect

字符串

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

key

字符串

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

operator

字符串

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

tolerationSeconds

整数

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

value

字符串

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

.spec.topologySpreadConstraints

描述

如果指定,则为 Pod 的拓扑传播约束。

类型

数组

.spec.topologySpreadConstraints[]

描述

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

类型

对象

必需
  • maxSkew

  • topologyKey

  • whenUnsatisfiable

属性 类型 描述

labelSelector

对象

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

matchLabelKeys

数组 (字符串)

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

这是一个 beta 功能,需要启用 MatchLabelKeysInPodTopologySpread 功能门(默认启用)。

maxSkew

整数

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

minDomains

整数

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

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

nodeAffinityPolicy

字符串

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

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

nodeTaintsPolicy

字符串

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

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

topologyKey

字符串

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

whenUnsatisfiable

字符串

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

.spec.topologySpreadConstraints[].labelSelector

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

.spec.topologySpreadConstraints[].labelSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

.spec.topologySpreadConstraints[].labelSelector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

.spec.volumeMounts

描述

VolumeMounts 允许配置输出 StatefulSet 定义中的附加 VolumeMounts。指定的 VolumeMounts 将附加到 alertmanager 容器中的其他 VolumeMounts,这些 VolumeMounts 是 StorageSpec 对象生成的。

类型

数组

.spec.volumeMounts[]

描述

VolumeMount 描述在容器内挂载卷。

类型

对象

必需
  • mountPath

  • 名称

属性 类型 描述

mountPath

字符串

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

mountPropagation

字符串

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

名称

字符串

此名称必须与卷的名称匹配。

readOnly

布尔值

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

recursiveReadOnly

字符串

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

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

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

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

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

subPath

字符串

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

subPathExpr

字符串

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

.spec.volumes

描述

Volumes 允许配置输出 StatefulSet 定义中的附加卷。指定的卷将附加到 StorageSpec 对象生成的其它卷。

类型

数组

.spec.volumes[]

描述

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

类型

对象

必需
  • 名称

属性 类型 描述

awsElasticBlockStore

对象

awsElasticBlockStore 代表附加到 kubelet 主机并随后暴露给 Pod 的 AWS 磁盘资源。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

azureDisk

对象

azureDisk 代表主机上的 Azure 数据磁盘挂载并绑定挂载到 Pod。

azureFile

对象

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

cephfs

对象

cephFS 代表主机上与 Pod 生命周期共享的 Ceph FS 挂载。

cinder

对象

cinder 代表附加到 kubelet 主机并挂载在其上的 cinder 卷。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

configMap

对象

configMap 代表应该填充此卷的 configMap。

csi

对象

csi(容器存储接口)代表由某些外部 CSI 驱动程序处理的短暂存储(Beta 功能)。

downwardAPI

对象

downwardAPI 代表关于应该填充此卷的 Pod 的向下 API。

emptyDir

对象

emptyDir 代表与 Pod 生命周期共享的临时目录。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#emptydir

ephemeral

对象

ephemeral 代表由集群存储驱动程序处理的卷。卷的生命周期与定义它的 Pod 绑定 - 它将在 Pod 启动之前创建,并在 Pod 删除时删除。

如果您需要:a) 只在 Pod 运行时才需要卷,b) 需要普通卷的功能,例如从快照恢复或容量跟踪,c) 通过存储类指定存储驱动程序,以及 d) 存储驱动程序通过 PersistentVolumeClaim 支持动态卷配置(有关此卷类型和 PersistentVolumeClaim 之间连接的更多信息,请参阅 EphemeralVolumeSource)。

对于比单个 Pod 生命周期持续时间更长的卷,请使用 PersistentVolumeClaim 或其中一个供应商特定的 API。

如果 CSI 驱动程序旨在以这种方式使用,请使用 CSI 来实现轻量级本地短暂卷 - 有关更多信息,请参阅驱动程序的文档。

Pod 可以同时使用两种类型的短暂卷和持久卷。

fc

对象

fc 代表附加到 kubelet 主机并随后暴露给 Pod 的光纤通道资源。

flexVolume

对象

flexVolume 代表使用基于 exec 的插件进行配置/附加的通用卷资源。

flocker

对象

flocker 代表附加到 kubelet 主机的 Flocker 卷。这取决于 Flocker 控制服务的运行情况。

gcePersistentDisk

对象

gcePersistentDisk 代表附加到 kubelet 主机并随后暴露给 Pod 的 GCE 磁盘资源。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

gitRepo

对象

gitRepo 代表特定版本下的 Git 仓库。已弃用:GitRepo 已弃用。要使用 Git 仓库配置容器,请将 EmptyDir 挂载到 InitContainer 中,使用 git 克隆仓库,然后将 EmptyDir 挂载到 Pod 的容器中。

glusterfs

对象

glusterfs 代表主机上的 Glusterfs 挂载,其生命周期与 Pod 共享。更多信息:https://examples.k8s.io/volumes/glusterfs/README.md

hostPath

对象

hostPath 代表主机上已存在的文件或目录,直接暴露给容器。这通常用于系统代理或其他允许查看主机机的特权程序。大多数容器不需要这个。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) 我们需要限制谁可以使用主机目录挂载,以及谁可以/不可以以读/写方式挂载主机目录。

iscsi

对象

iscsi 代表附加到 kubelet 主机机并暴露给 Pod 的 ISCSI 磁盘资源。更多信息:https://examples.k8s.io/volumes/iscsi/README.md

名称

字符串

卷的名称。必须是 DNS_LABEL,并且在 Pod 内唯一。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

nfs

对象

nfs 代表主机上的 NFS 挂载,其生命周期与 Pod 共享。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#nfs

persistentVolumeClaim

对象

persistentVolumeClaimVolumeSource 代表对同一命名空间中 PersistentVolumeClaim 的引用。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

photonPersistentDisk

对象

photonPersistentDisk 代表附加到并挂载在 kubelet 主机机上的 PhotonController 持久性磁盘。

portworxVolume

对象

portworxVolume 代表附加到并挂载在 kubelet 主机机上的 Portworx 卷。

projected

对象

所有一体化资源的投影项:密钥、配置图和向下 API。

quobyte

对象

quobyte 代表主机上的 Quobyte 挂载,其生命周期与 Pod 共享。

rbd

对象

rbd 代表主机上的 Rados 块设备挂载,其生命周期与 Pod 共享。更多信息:https://examples.k8s.io/volumes/rbd/README.md

scaleIO

对象

scaleIO 代表附加到并挂载在 Kubernetes 节点上的 ScaleIO 持久卷。

secret

对象

secret 代表应该填充此卷的密钥。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#secret

storageos

对象

storageOS 代表附加到并挂载在 Kubernetes 节点上的 StorageOS 卷。

vsphereVolume

对象

vsphereVolume 代表附加到并挂载在 kubelet 主机机上的 vSphere 卷。

.spec.volumes[].awsElasticBlockStore

描述

awsElasticBlockStore 代表附加到 kubelet 主机并随后暴露给 Pod 的 AWS 磁盘资源。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

类型

对象

必需
  • volumeID

属性 类型 描述

fsType

字符串

fsType 是要挂载的卷的文件系统类型。提示:确保文件系统类型受主机操作系统支持。例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore TODO:我们如何防止文件系统中的错误影响机器?

partition

整数

partition 是要挂载的卷中的分区。如果省略,则默认按卷名挂载。例如:对于卷 /dev/sda1,您将分区指定为“1”。类似地,/dev/sda 的卷分区为“0”(或者您可以保留属性为空)。

readOnly

布尔值

readOnly 值 true 将强制执行 VolumeMounts 中的 readOnly 设置。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

volumeID

字符串

volumeID 是 AWS(Amazon EBS 卷)中持久性磁盘资源的唯一 ID。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

.spec.volumes[].azureDisk

描述

azureDisk 代表主机上的 Azure 数据磁盘挂载并绑定挂载到 Pod。

类型

对象

必需
  • diskName

  • diskURI

属性 类型 描述

cachingMode

字符串

cachingMode 是主机缓存模式:无、只读、读写。

diskName

字符串

diskName 是 Blob 存储中数据磁盘的名称。

diskURI

字符串

diskURI 是 Blob 存储中数据磁盘的 URI。

fsType

字符串

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

kind

字符串

kind 预期值为 Shared:每个存储帐户多个 Blob 磁盘;Dedicated:每个存储帐户单个 Blob 磁盘;Managed:Azure 托管数据磁盘(仅在托管可用性集中)。默认为 shared。

readOnly

布尔值

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

.spec.volumes[].azureFile

描述

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

类型

对象

必需
  • secretName

  • shareName

属性 类型 描述

readOnly

布尔值

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

secretName

字符串

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

shareName

字符串

shareName 是 Azure 共享名称。

.spec.volumes[].cephfs

描述

cephFS 代表主机上与 Pod 生命周期共享的 Ceph FS 挂载。

类型

对象

必需
  • monitors

属性 类型 描述

monitors

数组 (字符串)

monitors 是必需的:Monitors 是 Ceph 监控器的集合。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

path

字符串

path 是可选的:用作挂载的根目录,而不是完整的 Ceph 树,默认为 /。

readOnly

布尔值

readOnly 是可选的:默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

secretFile

字符串

secretFile 是可选的:SecretFile 是用户密钥环的路径,默认为 /etc/ceph/user.secret。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

secretRef

对象

secretRef 是可选的:SecretRef 是对用户身份验证密钥的引用,默认为空。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

user

字符串

user 是可选的:User 是 rados 用户名,默认为 admin。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

.spec.volumes[].cephfs.secretRef

描述

secretRef 是可选的:SecretRef 是对用户身份验证密钥的引用,默认为空。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

.spec.volumes[].cinder

描述

cinder 代表附加到 kubelet 主机并挂载在其上的 cinder 卷。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

类型

对象

必需
  • volumeID

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

readOnly

布尔值

readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

secretRef

对象

secretRef 是可选的:指向包含用于连接 OpenStack 的参数的密钥对象。

volumeID

字符串

volumeID 用于在 cinder 中标识卷。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

.spec.volumes[].cinder.secretRef

描述

secretRef 是可选的:指向包含用于连接 OpenStack 的参数的密钥对象。

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

.spec.volumes[].configMap

描述

configMap 代表应该填充此卷的 configMap。

类型

对象

属性 类型 描述

defaultMode

整数

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

items

数组

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

items[]

对象

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

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

.spec.volumes[].configMap.items

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

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

path

字符串

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

.spec.volumes[].csi

描述

csi(容器存储接口)代表由某些外部 CSI 驱动程序处理的短暂存储(Beta 功能)。

类型

对象

必需
  • driver

属性 类型 描述

driver

字符串

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

fsType

字符串

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

nodePublishSecretRef

对象

nodePublishSecretRef 是对包含敏感信息的 secret 对象的引用,这些敏感信息将传递给 CSI 驱动程序以完成 CSI NodePublishVolume 和 NodeUnpublishVolume 调用。此字段是可选的,如果不需要 secret,则可以为空。如果 secret 对象包含多个 secret,则将传递所有 secret 引用。

readOnly

布尔值

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

volumeAttributes

对象(字符串)

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

.spec.volumes[].csi.nodePublishSecretRef

描述

nodePublishSecretRef 是对包含敏感信息的 secret 对象的引用,这些敏感信息将传递给 CSI 驱动程序以完成 CSI NodePublishVolume 和 NodeUnpublishVolume 调用。此字段是可选的,如果不需要 secret,则可以为空。如果 secret 对象包含多个 secret,则将传递所有 secret 引用。

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

.spec.volumes[].downwardAPI

描述

downwardAPI 代表关于应该填充此卷的 Pod 的向下 API。

类型

对象

属性 类型 描述

defaultMode

整数

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

items

数组

Items 是向下 API 卷文件的列表

items[]

对象

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

.spec.volumes[].downwardAPI.items

描述

Items 是向下 API 卷文件的列表

类型

数组

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

描述

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

类型

对象

必需
  • path

属性 类型 描述

fieldRef

对象

必填:选择 pod 的字段:仅支持注释、标签、名称、命名空间和 uid。

mode

整数

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

path

字符串

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

resourceFieldRef

对象

选择容器的资源:目前仅支持资源限制和请求 (limits.cpu、limits.memory、requests.cpu 和 requests.memory)。

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

描述

必填:选择 pod 的字段:仅支持注释、标签、名称、命名空间和 uid。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

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

fieldPath

字符串

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

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

描述

选择容器的资源:目前仅支持资源限制和请求 (limits.cpu、limits.memory、requests.cpu 和 requests.memory)。

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

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

divisor

整数或字符串

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

resource

字符串

必需:要选择的资源

.spec.volumes[].emptyDir

描述

emptyDir 代表与 Pod 生命周期共享的临时目录。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#emptydir

类型

对象

属性 类型 描述

medium

字符串

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

sizeLimit

整数或字符串

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

.spec.volumes[].ephemeral

描述

ephemeral 代表由集群存储驱动程序处理的卷。卷的生命周期与定义它的 Pod 绑定 - 它将在 Pod 启动之前创建,并在 Pod 删除时删除。

如果您需要:a) 只在 Pod 运行时才需要卷,b) 需要普通卷的功能,例如从快照恢复或容量跟踪,c) 通过存储类指定存储驱动程序,以及 d) 存储驱动程序通过 PersistentVolumeClaim 支持动态卷配置(有关此卷类型和 PersistentVolumeClaim 之间连接的更多信息,请参阅 EphemeralVolumeSource)。

对于比单个 Pod 生命周期持续时间更长的卷,请使用 PersistentVolumeClaim 或其中一个供应商特定的 API。

如果 CSI 驱动程序旨在以这种方式使用,请使用 CSI 来实现轻量级本地短暂卷 - 有关更多信息,请参阅驱动程序的文档。

Pod 可以同时使用两种类型的短暂卷和持久卷。

类型

对象

属性 类型 描述

volumeClaimTemplate

对象

将用于创建独立的 PVC 来配置卷。嵌入此 EphemeralVolumeSource 的 Pod 将是 PVC 的所有者,即 PVC 将与 Pod 一起删除。PVC 的名称将为 <pod name>-<volume name>,其中 <volume name>PodSpec.Volumes 数组条目中的名称。如果连接后的名称对于 PVC 无效(例如,太长),则 Pod 验证将拒绝该 Pod。

Pod 将不会使用名称相同的现有 PVC(该 PVC 不属于该 Pod),以避免错误地使用不相关的卷。然后,Pod 的启动将被阻塞,直到不相关的 PVC 被删除。如果此类预先创建的 PVC 旨在由 Pod 使用,则一旦 Pod 存在,必须使用对 Pod 的所有者引用更新 PVC。通常不需要这样做,但在手动重建损坏的集群时可能很有用。

此字段是只读的,创建 PVC 后,Kubernetes 不会对其进行任何更改。

必需,不能为 nil。

.spec.volumes[].ephemeral.volumeClaimTemplate

描述

将用于创建独立的 PVC 来配置卷。嵌入此 EphemeralVolumeSource 的 Pod 将是 PVC 的所有者,即 PVC 将与 Pod 一起删除。PVC 的名称将为 <pod name>-<volume name>,其中 <volume name>PodSpec.Volumes 数组条目中的名称。如果连接后的名称对于 PVC 无效(例如,太长),则 Pod 验证将拒绝该 Pod。

Pod 将不会使用名称相同的现有 PVC(该 PVC 不属于该 Pod),以避免错误地使用不相关的卷。然后,Pod 的启动将被阻塞,直到不相关的 PVC 被删除。如果此类预先创建的 PVC 旨在由 Pod 使用,则一旦 Pod 存在,必须使用对 Pod 的所有者引用更新 PVC。通常不需要这样做,但在手动重建损坏的集群时可能很有用。

此字段是只读的,创建 PVC 后,Kubernetes 不会对其进行任何更改。

必需,不能为 nil。

类型

对象

必需
  • spec

属性 类型 描述

metadata

对象

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

spec

对象

PersistentVolumeClaim 的规范。整个内容将原封不动地复制到由此模板创建的 PVC 中。PersistentVolumeClaim 中的相同字段在此处也适用。

.spec.volumes[].ephemeral.volumeClaimTemplate.metadata

描述

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

类型

对象

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

描述

PersistentVolumeClaim 的规范。整个内容将原封不动地复制到由此模板创建的 PVC 中。PersistentVolumeClaim 中的相同字段在此处也适用。

类型

对象

属性 类型 描述

accessModes

数组 (字符串)

accessModes 包含卷应具有的所需访问模式。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#access-modes-1

dataSource

对象

dataSource 字段可以用来指定:* 一个已存在的 VolumeSnapshot 对象 (snapshot.storage.k8s.io/VolumeSnapshot) * 一个已存在的 PVC (PersistentVolumeClaim) 如果 provisioner 或外部控制器支持指定的數據源,它将基于指定的數據源内容创建一个新的卷。当启用 AnyVolumeDataSource 功能特性门控时,dataSource 内容将被复制到 dataSourceRef,并且当 dataSourceRef.namespace 未指定时,dataSourceRef 内容将被复制到 dataSource。如果指定了 namespace,则 dataSourceRef 将不会复制到 dataSource。

dataSourceRef

对象

dataSourceRef 指定用于填充卷数据的对象,如果需要非空卷。这可以是任何来自非空 API 组(非核心对象)的对象或 PersistentVolumeClaim 对象。当指定此字段时,只有当指定对象的类型与某些已安装的卷填充程序或动态 provisioner 匹配时,卷绑定才会成功。此字段将替换 dataSource 字段的功能,因此,如果两个字段都非空,则它们必须具有相同的值。为了向后兼容,当 dataSourceRef 中未指定 namespace 时,如果其中一个字段为空而另一个字段非空,则这两个字段 (dataSource 和 dataSourceRef) 将自动设置为相同的值。当在 dataSourceRef 中指定 namespace 时,dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间存在三个重要区别:* dataSource 只允许两种特定类型的对象,而 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* dataSource 忽略不允许的值(丢弃它们),而 dataSourceRef 保留所有值,并在指定不允许的值时生成错误。* dataSource 只允许本地对象,而 dataSourceRef 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 功能特性门控。(Alpha)使用 dataSourceRef 的 namespace 字段需要启用 CrossNamespaceVolumeDataSource 功能特性门控。

resources

对象

resources 表示卷应具有的最小资源。如果启用了 RecoverVolumeExpansionFailure 功能,则允许用户指定低于先前值的资源需求,但仍必须高于声明状态字段中记录的容量。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#resources

selector

对象

selector 是对要考虑用于绑定的卷的标签查询。

storageClassName

字符串

storageClassName 是声明所需的 StorageClass 的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassName

字符串

volumeAttributesClassName 可用于设置此声明使用的 VolumeAttributesClass。如果指定,CSI 驱动程序将使用相应 VolumeAttributesClass 中定义的属性创建或更新卷。这与 storageClassName 的用途不同,可以在创建声明后更改它。空字符串值表示不会将任何 VolumeAttributesClass 应用于声明,但是一旦设置,就不允许将此字段重置为空字符串。如果未指定且 PersistentVolumeClaim 未绑定,则如果存在,持久卷控制器将设置默认的 VolumeAttributesClass。如果 volumeAttributesClass 引用的资源不存在,则此 PersistentVolumeClaim 将设置为 Pending 状态,这由 modifyVolumeStatus 字段反映,直到此类资源存在为止。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volume-attributes-classes/ (Alpha)使用此字段需要启用 VolumeAttributesClass 功能特性门控。

volumeMode

字符串

volumeMode 定义声明所需的卷类型。如果未包含在声明规范中,则隐含 Filesystem 值。

volumeName

字符串

volumeName 是对支持此声明的 PersistentVolume 的绑定引用。

.spec.volumes[].ephemeral.volumeClaimTemplate.spec.dataSource

描述

dataSource 字段可以用来指定:* 一个已存在的 VolumeSnapshot 对象 (snapshot.storage.k8s.io/VolumeSnapshot) * 一个已存在的 PVC (PersistentVolumeClaim) 如果 provisioner 或外部控制器支持指定的數據源,它将基于指定的數據源内容创建一个新的卷。当启用 AnyVolumeDataSource 功能特性门控时,dataSource 内容将被复制到 dataSourceRef,并且当 dataSourceRef.namespace 未指定时,dataSourceRef 内容将被复制到 dataSource。如果指定了 namespace,则 dataSourceRef 将不会复制到 dataSource。

类型

对象

必需
  • kind

  • 名称

属性 类型 描述

apiGroup

字符串

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

kind

字符串

Kind 是被引用的资源类型。

名称

字符串

Name 是被引用的资源名称。

.spec.volumes[].ephemeral.volumeClaimTemplate.spec.dataSourceRef

描述

dataSourceRef 指定用于填充卷数据的对象,如果需要非空卷。这可以是任何来自非空 API 组(非核心对象)的对象或 PersistentVolumeClaim 对象。当指定此字段时,只有当指定对象的类型与某些已安装的卷填充程序或动态 provisioner 匹配时,卷绑定才会成功。此字段将替换 dataSource 字段的功能,因此,如果两个字段都非空,则它们必须具有相同的值。为了向后兼容,当 dataSourceRef 中未指定 namespace 时,如果其中一个字段为空而另一个字段非空,则这两个字段 (dataSource 和 dataSourceRef) 将自动设置为相同的值。当在 dataSourceRef 中指定 namespace 时,dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间存在三个重要区别:* dataSource 只允许两种特定类型的对象,而 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* dataSource 忽略不允许的值(丢弃它们),而 dataSourceRef 保留所有值,并在指定不允许的值时生成错误。* dataSource 只允许本地对象,而 dataSourceRef 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 功能特性门控。(Alpha)使用 dataSourceRef 的 namespace 字段需要启用 CrossNamespaceVolumeDataSource 功能特性门控。

类型

对象

必需
  • kind

  • 名称

属性 类型 描述

apiGroup

字符串

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

kind

字符串

Kind 是被引用的资源类型。

名称

字符串

Name 是被引用的资源名称。

namespace

字符串

Namespace 是被引用的资源的命名空间。请注意,当指定命名空间时,需要在引用命名空间中使用 gateway.networking.k8s.io/ReferenceGrant 对象,以允许该命名空间的所有者接受该引用。有关详细信息,请参阅 ReferenceGrant 文档。(Alpha)此字段需要启用 CrossNamespaceVolumeDataSource 功能特性门控。

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

描述

resources 表示卷应具有的最小资源。如果启用了 RecoverVolumeExpansionFailure 功能,则允许用户指定低于先前值的资源需求,但仍必须高于声明状态字段中记录的容量。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#resources

类型

对象

属性 类型 描述

limits

整数或字符串

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

requests

整数或字符串

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

.spec.volumes[].ephemeral.volumeClaimTemplate.spec.selector

描述

selector 是对要考虑用于绑定的卷的标签查询。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

.spec.volumes[].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

.spec.volumes[].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

.spec.volumes[].fc

描述

fc 代表附加到 kubelet 主机并随后暴露给 Pod 的光纤通道资源。

类型

对象

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。待办事项:我们如何防止文件系统中的错误危及机器

lun

整数

lun 为可选参数:FC 目标 LUN 号码

readOnly

布尔值

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

targetWWNs

数组 (字符串)

targetWWNs 为可选参数:FC 目标全球名称 (WWNs)

wwids

数组 (字符串)

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

.spec.volumes[].flexVolume

描述

flexVolume 代表使用基于 exec 的插件进行配置/附加的通用卷资源。

类型

对象

必需
  • driver

属性 类型 描述

driver

字符串

driver 是为此卷使用的驱动程序的名称。

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如“ext4”、“xfs”、“ntfs”。默认文件系统取决于 FlexVolume 脚本。

options

对象(字符串)

options 为可选参数:此字段包含任何额外的命令选项。

readOnly

布尔值

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

secretRef

对象

secretRef 为可选参数:secretRef 是对包含敏感信息的 secret 对象的引用,这些敏感信息将传递给插件脚本。如果未指定 secret 对象,则此字段可以为空。如果 secret 对象包含多个 secret,则所有 secret 都将传递给插件脚本。

.spec.volumes[].flexVolume.secretRef

描述

secretRef 为可选参数:secretRef 是对包含敏感信息的 secret 对象的引用,这些敏感信息将传递给插件脚本。如果未指定 secret 对象,则此字段可以为空。如果 secret 对象包含多个 secret,则所有 secret 都将传递给插件脚本。

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

.spec.volumes[].flocker

描述

flocker 代表附加到 kubelet 主机的 Flocker 卷。这取决于 Flocker 控制服务的运行情况。

类型

对象

属性 类型 描述

datasetName

字符串

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

datasetUUID

字符串

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

.spec.volumes[].gcePersistentDisk

描述

gcePersistentDisk 代表附加到 kubelet 主机并随后暴露给 Pod 的 GCE 磁盘资源。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

类型

对象

必需
  • pdName

属性 类型 描述

fsType

字符串

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

partition

整数

partition 是您要挂载的卷中的分区。如果省略,则默认为按卷名挂载。例如:对于卷 /dev/sda1,您将分区指定为“1”。类似地,/dev/sda 的卷分区为“0”(或者您可以保留属性为空)。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

pdName

字符串

pdName 是 GCE 中 PD 资源的唯一名称。用于标识 GCE 中的磁盘。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

readOnly

布尔值

readOnly 将强制在 VolumeMounts 中设置 ReadOnly。默认为 false。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

.spec.volumes[].gitRepo

描述

gitRepo 代表特定版本下的 Git 仓库。已弃用:GitRepo 已弃用。要使用 Git 仓库配置容器,请将 EmptyDir 挂载到 InitContainer 中,使用 git 克隆仓库,然后将 EmptyDir 挂载到 Pod 的容器中。

类型

对象

必需
  • repository

属性 类型 描述

directory

字符串

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

repository

字符串

repository 是 URL

revision

字符串

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

.spec.volumes[].glusterfs

描述

glusterfs 代表主机上的 Glusterfs 挂载,其生命周期与 Pod 共享。更多信息:https://examples.k8s.io/volumes/glusterfs/README.md

类型

对象

必需
  • endpoints

  • path

属性 类型 描述

endpoints

字符串

endpoints 是详细说明 Glusterfs 拓扑的端点名称。更多信息:https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod

path

字符串

path 是 Glusterfs 卷路径。更多信息:https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod

readOnly

布尔值

readOnly 将强制 Glusterfs 卷以只读权限挂载。默认为 false。更多信息:https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod

.spec.volumes[].hostPath

描述

hostPath 代表主机上已存在的文件或目录,直接暴露给容器。这通常用于系统代理或其他允许查看主机机的特权程序。大多数容器不需要这个。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) 我们需要限制谁可以使用主机目录挂载,以及谁可以/不可以以读/写方式挂载主机目录。

类型

对象

必需
  • path

属性 类型 描述

path

字符串

主机上目录的路径。如果路径是符号链接,它将跟踪链接到实际路径。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#hostpath

类型

字符串

HostPath 卷的类型,默认为""。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#hostpath

.spec.volumes[].iscsi

描述

iscsi 代表附加到 kubelet 主机机并暴露给 Pod 的 ISCSI 磁盘资源。更多信息:https://examples.k8s.io/volumes/iscsi/README.md

类型

对象

必需
  • iqn

  • lun

  • targetPortal

属性 类型 描述

chapAuthDiscovery

布尔值

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

chapAuthSession

布尔值

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

fsType

字符串

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

initiatorName

字符串

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

iqn

字符串

iqn 是目标 iSCSI 限定名称。

iscsiInterface

字符串

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

lun

整数

lun 表示 iSCSI 目标 LUN 编号。

portals

数组 (字符串)

portals 是 iSCSI 目标端口列表。端口是 IP 或 ip_addr:port(如果端口不是默认端口,通常为 TCP 端口 860 和 3260)。

readOnly

布尔值

readOnly 将强制在 VolumeMounts 中设置 ReadOnly。默认为 false。

secretRef

对象

secretRef 是用于 iSCSI 目标和发起程序身份验证的 CHAP 密钥。

targetPortal

字符串

targetPortal 是 iSCSI 目标端口。端口是 IP 或 ip_addr:port(如果端口不是默认端口,通常为 TCP 端口 860 和 3260)。

.spec.volumes[].iscsi.secretRef

描述

secretRef 是用于 iSCSI 目标和发起程序身份验证的 CHAP 密钥。

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

.spec.volumes[].nfs

描述

nfs 代表主机上的 NFS 挂载,其生命周期与 Pod 共享。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#nfs

类型

对象

必需
  • path

  • server

属性 类型 描述

path

字符串

NFS 服务器导出的路径。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#nfs

readOnly

布尔值

readOnly 将强制 NFS 导出以只读权限挂载。默认为 false。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#nfs

server

字符串

server 是 NFS 服务器的主机名或 IP 地址。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#nfs

.spec.volumes[].persistentVolumeClaim

描述

persistentVolumeClaimVolumeSource 代表对同一命名空间中 PersistentVolumeClaim 的引用。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

类型

对象

必需
  • claimName

属性 类型 描述

claimName

字符串

claimName 是与使用此卷的 Pod 位于同一命名空间中的 PersistentVolumeClaim 的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

readOnly

布尔值

readOnly 将强制在 VolumeMounts 中设置 ReadOnly。默认为 false。

.spec.volumes[].photonPersistentDisk

描述

photonPersistentDisk 代表附加到并挂载在 kubelet 主机机上的 PhotonController 持久性磁盘。

类型

对象

必需
  • pdID

属性 类型 描述

fsType

字符串

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

pdID

字符串

pdID 是标识 Photon Controller 持久磁盘的 ID。

.spec.volumes[].portworxVolume

描述

portworxVolume 代表附加到并挂载在 kubelet 主机机上的 Portworx 卷。

类型

对象

必需
  • volumeID

属性 类型 描述

fsType

字符串

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

readOnly

布尔值

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

volumeID

字符串

volumeID 唯一标识 Portworx 卷。

.spec.volumes[].projected

描述

所有一体化资源的投影项:密钥、配置图和向下 API。

类型

对象

属性 类型 描述

defaultMode

整数

defaultMode 是用于默认设置创建文件的权限模式位。必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 需要十进制值表示模式位。路径中的目录不受此设置的影响。这可能会与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

sources

数组

sources 是卷投影的列表

sources[]

对象

可以与其他支持的卷类型一起投影的投影

.spec.volumes[].projected.sources

描述

sources 是卷投影的列表

类型

数组

.spec.volumes[].projected.sources[]

描述

可以与其他支持的卷类型一起投影的投影

类型

对象

属性 类型 描述

clusterTrustBundle

对象

ClusterTrustBundle 允许 Pod 访问 ClusterTrustBundle 对象的 .spec.trustBundle 字段中的自动更新文件。

Alpha 版本,受 ClusterTrustBundleProjection 功能网关控制。

ClusterTrustBundle 对象可以通过名称或签名者名称和标签选择器的组合来选择。

Kubelet 对写入 Pod 文件系统的 PEM 内容执行积极的规范化。诸如块间注释和块标题之类的深奥的 PEM 功能将被删除。证书将被去重。文件中的证书顺序是任意的,Kubelet 可能会随着时间的推移而更改顺序。

configMap

对象

configMap 关于要投影的 configMap 数据的信息

downwardAPI

对象

downwardAPI 关于要投影的 downwardAPI 数据的信息

secret

对象

secret 关于要投影的 secret 数据的信息

serviceAccountToken

对象

serviceAccountToken 是关于要投影的 serviceAccountToken 数据的信息

.spec.volumes[].projected.sources[].clusterTrustBundle

描述

ClusterTrustBundle 允许 Pod 访问 ClusterTrustBundle 对象的 .spec.trustBundle 字段中的自动更新文件。

Alpha 版本,受 ClusterTrustBundleProjection 功能网关控制。

ClusterTrustBundle 对象可以通过名称或签名者名称和标签选择器的组合来选择。

Kubelet 对写入 Pod 文件系统的 PEM 内容执行积极的规范化。诸如块间注释和块标题之类的深奥的 PEM 功能将被删除。证书将被去重。文件中的证书顺序是任意的,Kubelet 可能会随着时间的推移而更改顺序。

类型

对象

必需
  • path

属性 类型 描述

labelSelector

对象

选择与该标签选择器匹配的所有 ClusterTrustBundles。只有在设置 signerName 时才有效。与 name 相互排斥。如果未设置,则解释为“不匹配任何内容”。如果设置为空,则解释为“匹配所有内容”。

名称

字符串

按对象名称选择单个 ClusterTrustBundle。与 signerName 和 labelSelector 互斥。

optional

布尔值

如果为 true,则在引用的 ClusterTrustBundle(s) 不可用时,不会阻止 Pod 启动。如果使用 name,则允许指定的 ClusterTrustBundle 不存在。如果使用 signerName,则允许 signerName 和 labelSelector 的组合匹配零个 ClusterTrustBundle。

path

字符串

相对于卷根目录的写入 bundle 的相对路径。

signerName

字符串

选择所有与该签名者名称匹配的 ClusterTrustBundle。与 name 互斥。所有选定 ClusterTrustBundle 的内容将被统一和去重。

.spec.volumes[].projected.sources[].clusterTrustBundle.labelSelector

描述

选择与该标签选择器匹配的所有 ClusterTrustBundles。只有在设置 signerName 时才有效。与 name 相互排斥。如果未设置,则解释为“不匹配任何内容”。如果设置为空,则解释为“匹配所有内容”。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

matchExpressions[]

对象

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等效于 matchExpressions 的一个元素,其 key 字段为“key”,运算符为“In”,而 values 数组仅包含“value”。这些要求是 AND 运算的结果。

.spec.volumes[].projected.sources[].clusterTrustBundle.labelSelector.matchExpressions

描述

matchExpressions 是标签选择器要求的列表。这些要求是 AND 运算的结果。

类型

数组

.spec.volumes[].projected.sources[].clusterTrustBundle.labelSelector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和一个关联键和值的运算符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器应用到的标签键。

operator

字符串

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

values

数组 (字符串)

values 是字符串值的数组。如果运算符为 In 或 NotIn,则 values 数组必须是非空的。如果运算符为 Exists 或 DoesNotExist,则 values 数组必须为空。此数组在策略性合并修补程序期间将被替换。

.spec.volumes[].projected.sources[].configMap

描述

configMap 关于要投影的 configMap 数据的信息

类型

对象

属性 类型 描述

items

数组

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

items[]

对象

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

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

.spec.volumes[].projected.sources[].configMap.items

描述

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

类型

数组

.spec.volumes[].projected.sources[].configMap.items[]

描述

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

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

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

path

字符串

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

.spec.volumes[].projected.sources[].downwardAPI

描述

downwardAPI 关于要投影的 downwardAPI 数据的信息

类型

对象

属性 类型 描述

items

数组

Items 是 DownwardAPIVolume 文件的列表

items[]

对象

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

.spec.volumes[].projected.sources[].downwardAPI.items

描述

Items 是 DownwardAPIVolume 文件的列表

类型

数组

.spec.volumes[].projected.sources[].downwardAPI.items[]

描述

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

类型

对象

必需
  • path

属性 类型 描述

fieldRef

对象

必填:选择 pod 的字段:仅支持注释、标签、名称、命名空间和 uid。

mode

整数

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

path

字符串

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

resourceFieldRef

对象

选择容器的资源:目前仅支持资源限制和请求 (limits.cpu、limits.memory、requests.cpu 和 requests.memory)。

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

描述

必填:选择 pod 的字段:仅支持注释、标签、名称、命名空间和 uid。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

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

fieldPath

字符串

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

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

描述

选择容器的资源:目前仅支持资源限制和请求 (limits.cpu、limits.memory、requests.cpu 和 requests.memory)。

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

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

divisor

整数或字符串

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

resource

字符串

必需:要选择的资源

.spec.volumes[].projected.sources[].secret

描述

secret 关于要投影的 secret 数据的信息

类型

对象

属性 类型 描述

items

数组

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

items[]

对象

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

可选字段,指定 Secret 或其键是否必须定义。

.spec.volumes[].projected.sources[].secret.items

描述

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

类型

数组

.spec.volumes[].projected.sources[].secret.items[]

描述

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

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

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

path

字符串

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

.spec.volumes[].projected.sources[].serviceAccountToken

描述

serviceAccountToken 是关于要投影的 serviceAccountToken 数据的信息

类型

对象

必需
  • path

属性 类型 描述

audience

字符串

audience 是令牌的目标受众。令牌的接收者必须使用令牌的 audience 中指定的标识符来标识自身,否则应拒绝令牌。audience 默认值为 apiserver 的标识符。

expirationSeconds

整数

expirationSeconds 是请求的服务帐户令牌的有效期。当令牌接近过期时,kubelet 卷插件将主动轮换服务帐户令牌。如果令牌的剩余时间少于其生命周期的 80%,或者令牌已超过 24 小时,kubelet 将开始尝试轮换令牌。默认为 1 小时,必须至少为 10 分钟。

path

字符串

path 是将令牌投影到的文件的挂载点相对路径。

.spec.volumes[].quobyte

描述

quobyte 代表主机上的 Quobyte 挂载,其生命周期与 Pod 共享。

类型

对象

必需
  • registry

  • volume

属性 类型 描述

group

字符串

将卷访问权限映射到的组。默认为无组。

readOnly

布尔值

此处将强制以只读权限挂载 Quobyte 卷。默认为 false。

registry

字符串

registry 表示一个或多个 Quobyte Registry 服务,指定为字符串,格式为 host:port 对(多个条目用逗号分隔),它充当卷的中央注册表。

tenant

字符串

后端中拥有给定 Quobyte 卷的租户。用于动态配置的 Quobyte 卷,值由插件设置。

user

字符串

将卷访问权限映射到的用户。默认为 service account 用户。

volume

字符串

volume 是一个字符串,它通过名称引用已创建的 Quobyte 卷。

.spec.volumes[].rbd

描述

rbd 代表主机上的 Rados 块设备挂载,其生命周期与 Pod 共享。更多信息:https://examples.k8s.io/volumes/rbd/README.md

类型

对象

必需
  • image

  • monitors

属性 类型 描述

fsType

字符串

fsType 是要挂载的卷的文件系统类型。提示:确保主机操作系统支持文件系统类型。示例:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#rbd 待办事项:我们如何防止文件系统中的错误影响机器

image

字符串

image 是 rados 镜像名称。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

keyring

字符串

keyring 是 RBDUser 的密钥环路径。默认为 /etc/ceph/keyring。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

monitors

数组 (字符串)

monitors 是 Ceph monitor 的集合。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

pool

字符串

pool 是 rados 池名称。默认为 rbd。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

readOnly

布尔值

readOnly 将强制在 VolumeMounts 中设置 ReadOnly。默认为 false。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

secretRef

对象

secretRef 是 RBDUser 的身份验证密钥的名称。如果提供,则会覆盖 keyring。默认为 nil。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

user

字符串

user 是 rados 用户名。默认为 admin。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

.spec.volumes[].rbd.secretRef

描述

secretRef 是 RBDUser 的身份验证密钥的名称。如果提供,则会覆盖 keyring。默认为 nil。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

.spec.volumes[].scaleIO

描述

scaleIO 代表附加到并挂载在 Kubernetes 节点上的 ScaleIO 持久卷。

类型

对象

必需
  • gateway

  • secretRef

  • system

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。默认为“xfs”。

gateway

字符串

gateway 是 ScaleIO API Gateway 的主机地址。

protectionDomain

字符串

protectionDomain 是为配置的存储配置的 ScaleIO 保护域的名称。

readOnly

布尔值

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

secretRef

对象

secretRef 引用 ScaleIO 用户和其他敏感信息的密钥。如果没有提供此信息,登录操作将失败。

sslEnabled

布尔值

sslEnabled 标志启用/禁用与 Gateway 的 SSL 通信,默认为 false。

storageMode

字符串

storageMode 指示卷的存储应该是 ThickProvisioned 还是 ThinProvisioned。默认为 ThinProvisioned。

storagePool

字符串

storagePool 是与保护域关联的 ScaleIO 存储池。

system

字符串

system 是在 ScaleIO 中配置的存储系统的名称。

volumeName

字符串

volumeName 是已在与该卷源关联的 ScaleIO 系统中创建的卷的名称。

.spec.volumes[].scaleIO.secretRef

描述

secretRef 引用 ScaleIO 用户和其他敏感信息的密钥。如果没有提供此信息,登录操作将失败。

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

.spec.volumes[].secret

描述

secret 代表应该填充此卷的密钥。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#secret

类型

对象

属性 类型 描述

defaultMode

整数

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

items

数组

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

items[]

对象

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

optional

布尔值

optional 字段 指定 Secret 或其键是否必须定义

secretName

字符串

secretName 是要使用的 pod 命名空间中 secret 的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#secret

.spec.volumes[].secret.items

描述

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

类型

数组

.spec.volumes[].secret.items[]

描述

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

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

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

path

字符串

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

.spec.volumes[].storageos

描述

storageOS 代表附加到并挂载在 Kubernetes 节点上的 StorageOS 卷。

类型

对象

属性 类型 描述

fsType

字符串

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

readOnly

布尔值

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

secretRef

对象

secretRef 指定用于获取 StorageOS API 凭据的 secret。如果未指定,将尝试使用默认值。

volumeName

字符串

volumeName 是 StorageOS 卷的可读名称。卷名称仅在命名空间内唯一。

volumeNamespace

字符串

volumeNamespace 指定 StorageOS 中卷的范围。如果未指定命名空间,则将使用 Pod 的命名空间。这允许 Kubernetes 命名范围在 StorageOS 内镜像,以实现更紧密的集成。将 VolumeName 设置为任何名称以覆盖默认行为。如果您不在 StorageOS 中使用命名空间,则设置为“default”。StorageOS 中不存在的命名空间将被创建。

.spec.volumes[].storageos.secretRef

描述

secretRef 指定用于获取 StorageOS API 凭据的 secret。如果未指定,将尝试使用默认值。

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

.spec.volumes[].vsphereVolume

描述

vsphereVolume 代表附加到并挂载在 kubelet 主机机上的 vSphere 卷。

类型

对象

必需
  • volumePath

属性 类型 描述

fsType

字符串

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

storagePolicyID

字符串

storagePolicyID 与 StoragePolicyName 关联的基于存储策略的管理 (SPBM) 配置文件 ID。

storagePolicyName

字符串

storagePolicyName 是基于存储策略的管理 (SPBM) 配置文件名称。

volumePath

字符串

volumePath 是标识 vSphere 卷 vmdk 的路径

.spec.web

描述

定义启动 Alertmanager 时 web 命令行标志。

类型

对象

属性 类型 描述

getConcurrency

整数

并发处理 GET 请求的最大数量。这对应于 Alertmanager 的--web.get-concurrency标志。

httpConfig

对象

定义 Web 服务器的 HTTP 参数。

timeout

整数

HTTP 请求的超时时间。这对应于 Alertmanager 的--web.timeout标志。

tlsConfig

对象

定义 HTTPS 的 TLS 参数。

.spec.web.httpConfig

描述

定义 Web 服务器的 HTTP 参数。

类型

对象

属性 类型 描述

headers

对象

可以添加到 HTTP 响应的标头列表。

http2

布尔值

启用 HTTP/2 支持。请注意,HTTP/2 仅支持 TLS。当未配置 TLSConfig 时,HTTP/2 将被禁用。无论字段的值如何变化,都会触发滚动更新。

.spec.web.httpConfig.headers

描述

可以添加到 HTTP 响应的标头列表。

类型

对象

属性 类型 描述

contentSecurityPolicy

字符串

将 Content-Security-Policy 标头设置为 HTTP 响应。如果为空则取消设置。

strictTransportSecurity

字符串

将 Strict-Transport-Security 标头设置为 HTTP 响应。如果为空则取消设置。请确保谨慎使用此标头,因为此标头可能会强制浏览器通过 HTTPS 加载托管在同一域和子域上的 Prometheus 和其他应用程序。https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security

xContentTypeOptions

字符串

将 X-Content-Type-Options 标头设置为 HTTP 响应。如果为空则取消设置。接受的值为 nosniff。https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options

xFrameOptions

字符串

将 X-Frame-Options 标头设置为 HTTP 响应。如果为空则取消设置。接受的值为 deny 和 sameorigin。https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/X-Frame-Options

xXSSProtection

字符串

将 X-XSS-Protection 标头设置为所有响应。如果为空则取消设置。https://mdn.org.cn/en-US/docs/Web/HTTP/Headers/X-XSS-Protection

.spec.web.tlsConfig

描述

定义 HTTPS 的 TLS 参数。

类型

对象

必需
  • cert

  • keySecret

属性 类型 描述

cert

对象

包含服务器的 TLS 证书。

cipherSuites

数组 (字符串)

最高支持 TLS 1.2 版本的加密套件列表。如果为空,则使用 Go 默认加密套件。可用的加密套件在 Go 文档中有所说明:https://golang.ac.cn/pkg/crypto/tls/#pkg-constants

clientAuthType

字符串

客户端身份验证的服务器策略。映射到 ClientAuth 策略。有关 clientAuth 选项的更多详细信息:https://golang.ac.cn/pkg/crypto/tls/#ClientAuthType

client_ca

对象

包含用于对服务器进行客户端证书身份验证的 CA 证书。

curvePreferences

数组 (字符串)

将在 ECDHE 握手过程中使用的椭圆曲线,按优先级排序。可用的曲线在 Go 文档中有所说明:https://golang.ac.cn/pkg/crypto/tls/#CurveID

keySecret

对象

包含服务器 TLS 密钥的 Secret。

maxVersion

字符串

可接受的最大 TLS 版本。默认为 TLS13。

minVersion

字符串

可接受的最小 TLS 版本。默认为 TLS12。

preferServerCipherSuites

布尔值

控制服务器是选择客户端最偏好的加密套件,还是服务器最偏好的加密套件。如果为 true,则使用服务器的偏好,如 cipherSuites 中元素的顺序所示。

.spec.web.tlsConfig.cert

描述

包含服务器的 TLS 证书。

类型

对象

属性 类型 描述

configMap

对象

包含用于目标的数据的 ConfigMap。

secret

对象

包含用于目标的数据的 Secret。

.spec.web.tlsConfig.cert.configMap

描述

包含用于目标的数据的 ConfigMap。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 ConfigMap 或其密钥。

.spec.web.tlsConfig.cert.secret

描述

包含用于目标的数据的 Secret。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.web.tlsConfig.client_ca

描述

包含用于对服务器进行客户端证书身份验证的 CA 证书。

类型

对象

属性 类型 描述

configMap

对象

包含用于目标的数据的 ConfigMap。

secret

对象

包含用于目标的数据的 Secret。

.spec.web.tlsConfig.client_ca.configMap

描述

包含用于目标的数据的 ConfigMap。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 ConfigMap 或其密钥。

.spec.web.tlsConfig.client_ca.secret

描述

包含用于目标的数据的 Secret。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.spec.web.tlsConfig.keySecret

描述

包含服务器 TLS 密钥的 Secret。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此类型的实例在此处为空值几乎肯定是错误的。待办事项:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names 待办事项:当 controller-gen 不需要时删除 kubebuilder:default https://github.com/kubernetes-sigs/kubebuilder/issues/3896

optional

布尔值

指定是否必须定义 Secret 或其密钥。

.status

描述
类型

对象

必需
  • availableReplicas

  • paused

  • replicas

  • unavailableReplicas

  • updatedReplicas

属性 类型 描述

availableReplicas

整数

此 Alertmanager 集群目标的可用 Pod 总数(至少准备了 minReadySeconds)。

conditions

数组

Alertmanager 对象的当前状态。

conditions[]

对象

Condition 代表与 Prometheus、Alertmanager 或 ThanosRuler 资源关联的资源状态。

paused

布尔值

表示是否正在对底层托管对象执行任何操作。只执行删除操作。

replicas

整数

此 Alertmanager 对象目标的未终止 Pod 总数(它们的标签与选择器匹配)。

unavailableReplicas

整数

此 Alertmanager 对象目标的不可用 Pod 总数。

updatedReplicas

整数

此 Alertmanager 对象目标的未终止 Pod 总数,这些 Pod 具有所需的版本规范。

.status.conditions

描述

Alertmanager 对象的当前状态。

类型

数组

.status.conditions[]

描述

Condition 代表与 Prometheus、Alertmanager 或 ThanosRuler 资源关联的资源状态。

类型

对象

必需
  • lastTransitionTime

  • status

  • 类型

属性 类型 描述

lastTransitionTime

字符串

lastTransitionTime 是上次更新当前状态属性的时间。

message

字符串

指示条件上次转换详细信息的人类可读消息。

observedGeneration

整数

ObservedGeneration 表示设置条件所基于的 .metadata.generation。例如,如果 .metadata.generation 当前为 12,但 .status.conditions[].observedGeneration 为 9,则该条件相对于实例的当前状态已过期。

reason

字符串

条件最后一次转换的原因。

status

字符串

条件的状态。

类型

字符串

所报告条件的类型。

API 端点

提供以下 API 端点:

  • /apis/monitoring.coreos.com/v1/alertmanagers

    • GET:列出 Alertmanager 对象

  • /apis/monitoring.coreos.com/v1/namespaces/{namespace}/alertmanagers

    • DELETE:删除 Alertmanager 集合

    • GET:列出 Alertmanager 对象

    • POST:创建 Alertmanager

  • /apis/monitoring.coreos.com/v1/namespaces/{namespace}/alertmanagers/{name}

    • DELETE:删除 Alertmanager

    • GET:读取指定的 Alertmanager

    • PATCH:部分更新指定的 Alertmanager

    • PUT:替换指定的 Alertmanager

  • /apis/monitoring.coreos.com/v1/namespaces/{namespace}/alertmanagers/{name}/status

    • GET:读取指定 Alertmanager 的状态

    • PATCH:部分更新指定 Alertmanager 的状态

    • PUT:替换指定 Alertmanager 的状态

/apis/monitoring.coreos.com/v1/alertmanagers

HTTP 方法

GET

描述

列出 Alertmanager 对象

表 1. HTTP 响应
HTTP 代码 响应体

200 - OK

AlertmanagerList 模式

401 - 未授权

/apis/monitoring.coreos.com/v1/namespaces/{namespace}/alertmanagers

HTTP 方法

DELETE

描述

删除 Alertmanager 集合

表 2. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出 Alertmanager 对象

表 3. HTTP 响应
HTTP 代码 响应体

200 - OK

AlertmanagerList 模式

401 - 未授权

HTTP 方法

POST

描述

创建 Alertmanager

表 4. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值 - Strict:如果从对象中删除任何未知字段,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。从服务器返回的错误将包含遇到的所有未知和重复字段。

表 5. 请求体参数
参数 类型 描述

body

Alertmanager 模式

表 6. HTTP 响应
HTTP 代码 响应体

200 - OK

Alertmanager 模式

201 - 已创建

Alertmanager 模式

202 - 已接受

Alertmanager 模式

401 - 未授权

/apis/monitoring.coreos.com/v1/namespaces/{namespace}/alertmanagers/{name}

表 7. 全局路径参数
参数 类型 描述

名称

字符串

Alertmanager 的名称

HTTP 方法

DELETE

描述

删除 Alertmanager

表 8. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 9. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 Alertmanager

表 10. HTTP 响应
HTTP 代码 响应体

200 - OK

Alertmanager 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 Alertmanager

表 11. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值 - Strict:如果从对象中删除任何未知字段,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。从服务器返回的错误将包含遇到的所有未知和重复字段。

表 12. HTTP 响应
HTTP 代码 响应体

200 - OK

Alertmanager 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 Alertmanager

表 13. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值 - Strict:如果从对象中删除任何未知字段,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。从服务器返回的错误将包含遇到的所有未知和重复字段。

表 14. 请求体参数
参数 类型 描述

body

Alertmanager 模式

表 15. HTTP 响应
HTTP 代码 响应体

200 - OK

Alertmanager 模式

201 - 已创建

Alertmanager 模式

401 - 未授权

/apis/monitoring.coreos.com/v1/namespaces/{namespace}/alertmanagers/{name}/status

表 16. 全局路径参数
参数 类型 描述

名称

字符串

Alertmanager 的名称

HTTP 方法

GET

描述

读取指定 Alertmanager 的状态

表 17. HTTP 响应
HTTP 代码 响应体

200 - OK

Alertmanager 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定 Alertmanager 的状态

表 18. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值 - Strict:如果从对象中删除任何未知字段,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。从服务器返回的错误将包含遇到的所有未知和重复字段。

表 19. HTTP 响应
HTTP 代码 响应体

200 - OK

Alertmanager 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定 Alertmanager 的状态

表 20. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略从对象中静默删除的任何未知字段,并将忽略解码器遇到的最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这将通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值 - Strict:如果从对象中删除任何未知字段,或者存在任何重复字段,这将使请求失败并出现 BadRequest 错误。从服务器返回的错误将包含遇到的所有未知和重复字段。

表 21. 请求体参数
参数 类型 描述

body

Alertmanager 模式

表 22. HTTP 响应
HTTP 代码 响应体

200 - OK

Alertmanager 模式

201 - 已创建

Alertmanager 模式

401 - 未授权