×
描述

ThanosRuler 定义了一个 ThanosRuler 部署。

类型

对象

必需
  • spec

规范

属性 类型 描述

apiVersion

字符串

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

kind

字符串

Kind 是一个字符串值,表示此对象代表的 REST 资源。服务器可以从客户端提交请求的端点推断出此值。不可更新。采用 CamelCase 形式。更多信息: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

对象

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

status

对象

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

.spec

属性 类型 描述

additionalArgs

数组

AdditionalArgs 允许为 ThanosRuler 容器设置额外的参数。它旨在用于例如激活尚未被专用配置选项支持的隐藏标志。这些参数按原样传递给 ThanosRuler 容器,如果它们无效或给定 ThanosRuler 版本不支持,可能会导致问题。如果出现参数冲突(例如,操作员本身已设置的参数)或提供无效参数时,协调将失败并记录错误。

additionalArgs[]

对象

作为 AdditionalArgs 列表一部分的参数。

affinity

对象

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

alertDropLabels

数组 (字符串)

AlertDropLabels 配置应在 ThanosRuler 警报中删除的标签名称。副本标签 thanos_ruler_replica 将始终在警报中删除。

alertQueryUrl

字符串

Thanos Ruler 将在所有警报的“Source”字段中设置的外部查询 URL。映射到 '--alert.query-url' CLI 参数。

alertRelabelConfigFile

字符串

AlertRelabelConfigFile 指定警报重新标记配置文件的路径。当与 AlertRelabelConfigs 一起使用时,alertRelabelConfigFile 优先。

alertRelabelConfigs

对象

AlertRelabelConfigs 在 ThanosRuler 中配置警报重新标记。警报重新标记配置必须具有官方 Prometheus 文档中指定的格式:https://prometheus.ac.cn/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs 是 AlertRelabelConfigFile 的替代方案,优先级较低。

alertmanagersConfig

对象

定义连接到 Alertmanager 的配置。仅在 thanos v0.10.0 及更高版本中可用。映射到 alertmanagers.config 参数。

alertmanagersUrl

数组 (字符串)

定义将警报发送到 Alertmanager 的 URL。对于 Thanos v0.10.0 及更高版本,应使用 AlertManagersConfig 代替。注意:如果指定了 AlertManagersConfig,则将忽略此字段。映射到 alertmanagers.url 参数。

containers

数组

Containers 允许注入额外的容器或修改 Operator 生成的容器。这可以用来允许向 ThanosRuler pod 添加身份验证代理,或者更改 Operator 生成的容器的行为。此处描述的容器如果共享相同的名称,则会修改 Operator 生成的容器,并且修改是通过策略性合并补丁完成的。当前的容器名称是:thanos-rulerconfig-reloader。覆盖容器完全不在维护者支持的范围内,这样做,您接受此行为可能随时中断,恕不另行通知。

containers[]

对象

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

enforcedNamespaceLabel

字符串

EnforcedNamespaceLabel 强制为每个用户创建的警报和指标添加一个源命名空间标签。标签值将始终是要创建的对象的命名空间。

evaluationInterval

字符串

连续评估之间的时间间隔。

excludedFromEnforcement

数组

要从强制添加源命名空间标签中排除的 PrometheusRule 对象引用列表。仅当 enforcedNamespaceLabel 设置为 true 时适用。

excludedFromEnforcement[]

对象

ObjectReference 引用 PodMonitor、ServiceMonitor、Probe 或 PrometheusRule 对象。

externalPrefix

字符串

Thanos Ruler 实例可用的外部 URL。这是生成正确 URL 所必需的。如果 Thanos Ruler 不是从 DNS 名称的根目录提供的,则这是必需的。

grpcServerTlsConfig

对象

GRPCServerTLSConfig 配置 Thanos Querier 从中读取记录的规则数据的 gRPC 服务器。注意:目前仅支持 CAFile、CertFile 和 KeyFile 字段。映射到 '--grpc-server-tls-*' 命令行参数。

hostAliases

数组

Pod 的 hostAliases 配置

hostAliases[]

对象

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

image

字符串

Thanos 容器镜像 URL。

imagePullPolicy

字符串

用于 'thanos'、'init-config-reloader' 和 'config-reloader' 容器的镜像拉取策略。有关更多详细信息,请参阅 https://kubernetes.ac.cn/docs/concepts/containers/images/#image-pull-policy

imagePullSecrets

数组

同一命名空间中用于从注册表拉取 thanos 镜像的可选 secret 引用列表,请参阅 https://kubernetes.ac.cn/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod

imagePullSecrets[]

对象

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

initContainers

数组

InitContainers 允许向 pod 定义添加 initContainers。这些可以用来例如从外部源获取 secret 以注入到 ThanosRuler 配置中。initContainer 执行期间的任何错误都将导致 Pod 重新启动。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/init-containers/ 将 initContainers 用于 secret 获取以外的任何用例完全不在维护者支持的范围内,这样做,您接受此行为可能随时中断,恕不另行通知。

initContainers[]

对象

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

labels

对象 (string)

标签配置 ThanosRuler 的外部标签对。默认副本标签 thanos_ruler_replica 将始终作为标签添加,其值为 pod 的名称,并且将在警报中删除。

listenLocal

布尔值

ListenLocal 使 Thanos ruler 监听回环,使其不绑定到 Pod IP。

logFormat

字符串

ThanosRuler 要配置的日志格式。

logLevel

字符串

ThanosRuler 要配置的日志级别。

minReadySeconds

整数

新创建的 pod 在其任何容器崩溃之前应保持就绪的最小秒数,才被视为可用。默认为 0(pod 将在就绪后立即被视为可用)。这是 kubernetes 1.22 到 1.24 的一个 alpha 字段,需要启用 StatefulSetMinReadySeconds 功能门。

nodeSelector

对象 (string)

定义 Pod 计划在哪些节点上。

objectStorageConfig

对象

ObjectStorageConfig 配置 Thanos 中的对象存储。是 ObjectStorageConfigFile 的替代方案,且优先级较低。

objectStorageConfigFile

字符串

ObjectStorageConfigFile 指定对象存储配置文件的路径。当与 ObjectStorageConfig 一起使用时,ObjectStorageConfigFile 优先。

paused

布尔值

当 ThanosRuler 部署被暂停时,除了删除之外,不会对底层对象执行任何操作。

podMetadata

对象

PodMetadata 配置传播到 ThanosRuler pod 的标签和注解。

以下项目是保留的,不能被覆盖:* “app.kubernetes.io/name” 标签,设置为“thanos-ruler”。* “app.kubernetes.io/managed-by” 标签,设置为“prometheus-operator”。* “app.kubernetes.io/instance” 标签,设置为 ThanosRuler 实例的名称。* “thanos-ruler” 标签,设置为 ThanosRuler 实例的名称。* “kubectl.kubernetes.io/default-container” 注解,设置为“thanos-ruler”。

portName

字符串

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

priorityClassName

字符串

分配给 Pod 的优先级类

prometheusRulesExcludedFromEnforce

数组

PrometheusRulesExcludedFromEnforce - 要从强制添加命名空间标签中排除的 Prometheus 规则列表。仅当 enforcedNamespaceLabel 设置为 true 时才有效。确保为每一对都设置了 ruleNamespace 和 ruleName。已弃用:请改用 excludedFromEnforcement。

prometheusRulesExcludedFromEnforce[]

对象

PrometheusRuleExcludeConfig 允许用户配置要忽略的排除的 PrometheusRule 名称及其命名空间,同时强制为警报和指标添加命名空间标签。

queryConfig

对象

定义连接到 thanos 查询实例的配置。如果定义了此项,则将忽略 QueryEndpoints 字段。映射到 query.config 命令行参数。仅在 thanos v0.11.0 及更高版本中可用。

queryEndpoints

数组 (字符串)

QueryEndpoints 定义了从中查询指标的 Thanos 查询器端点。映射到 thanos ruler 的 --query 标志。

replicas

整数

要部署的 thanos ruler 实例数。

resources

对象

Resources 定义单个 Pod 的资源需求。如果未提供,则不会设置请求/限制

retention

字符串

ThanosRuler 应保留数据的时间长度。默认值为“24h”,并且必须匹配正则表达式 [0-9]+(ms|s|m|h|d|w|y)(毫秒 秒 分钟 小时 天 周 年)。

routePrefix

字符串

ThanosRuler 为其注册 HTTP 处理程序的路由前缀。这允许在子路径上提供 thanos UI。

ruleNamespaceSelector

对象

要选择用于规则发现的命名空间。如果未指定,则仅使用与 ThanosRuler 对象所在的命名空间相同的命名空间。

ruleSelector

对象

用于选择要挂载以进行警报和记录的 PrometheusRules 的标签选择器。

securityContext

对象

SecurityContext 保存 pod 级别的安全属性和通用容器设置。这默认为默认的 PodSecurityContext。

serviceAccountName

字符串

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

storage

对象

用于指定如何使用存储的存储规范。

tolerations

数组

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

tolerations[]

对象

附加此 Toleration 的 pod 可以容忍任何匹配 三元组的污点,使用匹配运算符 <operator>。

topologySpreadConstraints

数组

如果指定,则为 pod 的拓扑分布约束。

topologySpreadConstraints[]

对象

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

tracingConfig

对象

TracingConfig 配置 Thanos 中的跟踪。

tracingConfigFile 优先于此字段。

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

tracingConfigFile

字符串

TracingConfig 指定跟踪配置文件的路径。

此字段优先于 tracingConfig

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

version

字符串

要部署的 Thanos 版本。

volumeMounts

数组

VolumeMounts 允许在输出 StatefulSet 定义上配置额外的 VolumeMounts。指定的 VolumeMounts 将附加到 ruler 容器中的其他 VolumeMounts,这些 VolumeMounts 是作为 StorageSpec 对象的结果生成的。

volumeMounts[]

对象

VolumeMount 描述容器内 Volume 的挂载。

volumes

数组

Volumes 允许在输出 StatefulSet 定义上配置额外的卷。指定的卷将附加到作为 StorageSpec 对象的结果生成的其他卷。

volumes[]

对象

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

web

对象

定义 ThanosRuler Web 服务器的配置。

.spec.additionalArgs

描述

AdditionalArgs 允许为 ThanosRuler 容器设置额外的参数。它旨在用于例如激活尚未被专用配置选项支持的隐藏标志。这些参数按原样传递给 ThanosRuler 容器,如果它们无效或给定 ThanosRuler 版本不支持,可能会导致问题。如果出现参数冲突(例如,操作员本身已设置的参数)或提供无效参数时,协调将失败并记录错误。

类型

数组

.spec.additionalArgs[]

描述

作为 AdditionalArgs 列表一部分的参数。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

参数的名称,例如 "scrape.discovery-reload-interval"。

value

字符串

参数值,例如 30s。对于仅限名称的参数(例如 --storage.tsdb.no-lockfile),可以为空

.spec.affinity

描述

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

类型

对象

属性 类型 描述

nodeAffinity

对象

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

podAffinity

对象

描述 pod 亲和性调度规则(例如,将此 pod 与某些其他 pod(s) 定位在同一节点、区域等)。

podAntiAffinity

对象

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

.spec.affinity.nodeAffinity

描述

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

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

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

preferredDuringSchedulingIgnoredDuringExecution[]

对象

一个空的偏好调度项匹配所有对象,隐式权重为 0(即,它是无操作)。一个空的偏好调度项不匹配任何对象(即,也是一个无操作)。

requiredDuringSchedulingIgnoredDuringExecution

对象

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

.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

一个空的偏好调度项匹配所有对象,隐式权重为 0(即,它是无操作)。一个空的偏好调度项不匹配任何对象(即,也是一个无操作)。

类型

对象

必需
  • 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[]

对象

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

.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms

描述

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

类型

数组

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

描述

一个空或空的节点选择器项不匹配任何对象。它们的要求是 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 亲和性表达式等),通过迭代此字段的元素并添加 “weight” 到总和来计算总和,如果该节点拥有匹配相应 podAffinityTerm 的 Pod;总和最高的节点是最倾向的节点。

preferredDuringSchedulingIgnoredDuringExecution[]

对象

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

requiredDuringSchedulingIgnoredDuringExecution

数组

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

requiredDuringSchedulingIgnoredDuringExecution[]

对象

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

.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • podAffinityTerm

  • weight

属性 类型 描述

podAffinityTerm

对象

必需。与相应权重关联的 Pod 亲和性项。

weight

整数

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

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

描述

必需。与相应权重关联的 Pod 亲和性项。

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

对象

对一组资源(在此示例中为 Pod)的标签查询。如果为空,则此 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 字段中列出的命名空间的并集。空选择器和空或空的命名空间列表表示“此 Pod 的命名空间”。空选择器 ({}) 匹配所有命名空间。

namespaces

数组 (字符串)

namespaces 指定了该项应用到的命名空间名称的静态列表。该项应用于此字段中列出的命名空间和由 namespaceSelector 选择的命名空间的并集。空或空的命名空间列表以及空的 namespaceSelector 表示“此 Pod 的命名空间”。

topologyKey

字符串

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

matchExpressions[]

对象

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

matchLabels

对象 (string)

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 字段中列出的命名空间的并集。空选择器和空或空的命名空间列表表示“此 Pod 的命名空间”。空选择器 ({}) 匹配所有命名空间。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

matchExpressions[]

对象

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

matchLabels

对象 (string)

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 共址(亲和性)或不共址(反亲和性),其中共址被定义为运行在标签键为 <topologyKey> 的值与 Pod 集合中任何 Pod 运行所在的节点的标签值匹配的节点上。

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

对象

对一组资源(在此示例中为 Pod)的标签查询。如果为空,则此 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 字段中列出的命名空间的并集。空选择器和空或空的命名空间列表表示“此 Pod 的命名空间”。空选择器 ({}) 匹配所有命名空间。

namespaces

数组 (字符串)

namespaces 指定了该项应用到的命名空间名称的静态列表。该项应用于此字段中列出的命名空间和由 namespaceSelector 选择的命名空间的并集。空或空的命名空间列表以及空的 namespaceSelector 表示“此 Pod 的命名空间”。

topologyKey

字符串

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

matchExpressions[]

对象

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

matchLabels

对象 (string)

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 字段中列出的命名空间的并集。空选择器和空或空的命名空间列表表示“此 Pod 的命名空间”。空选择器 ({}) 匹配所有命名空间。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

matchExpressions[]

对象

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

matchLabels

对象 (string)

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 反亲和性表达式等)的节点,通过迭代此字段的元素并添加 “weight” 到总和来计算总和,如果节点具有与相应 podAffinityTerm 匹配的 Pod;总和最高的节点是最优先的。

preferredDuringSchedulingIgnoredDuringExecution[]

对象

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

requiredDuringSchedulingIgnoredDuringExecution

数组

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

requiredDuringSchedulingIgnoredDuringExecution[]

对象

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

.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • podAffinityTerm

  • weight

属性 类型 描述

podAffinityTerm

对象

必需。与相应权重关联的 Pod 亲和性项。

weight

整数

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

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

描述

必需。与相应权重关联的 Pod 亲和性项。

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

对象

对一组资源(在此示例中为 Pod)的标签查询。如果为空,则此 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 字段中列出的命名空间的并集。空选择器和空或空的命名空间列表表示“此 Pod 的命名空间”。空选择器 ({}) 匹配所有命名空间。

namespaces

数组 (字符串)

namespaces 指定了该项应用到的命名空间名称的静态列表。该项应用于此字段中列出的命名空间和由 namespaceSelector 选择的命名空间的并集。空或空的命名空间列表以及空的 namespaceSelector 表示“此 Pod 的命名空间”。

topologyKey

字符串

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

matchExpressions[]

对象

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

matchLabels

对象 (string)

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 字段中列出的命名空间的并集。空选择器和空或空的命名空间列表表示“此 Pod 的命名空间”。空选择器 ({}) 匹配所有命名空间。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

matchExpressions[]

对象

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

matchLabels

对象 (string)

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 标签更新),此字段指定的反亲和性要求不再满足,则系统可能会也可能不会尝试最终从其节点驱逐该 Pod。当有多个元素时,与每个 podAffinityTerm 对应的节点列表会相交,即必须满足所有条件。

类型

数组

.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

对象

对一组资源(在此示例中为 Pod)的标签查询。如果为空,则此 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 字段中列出的命名空间的并集。空选择器和空或空的命名空间列表表示“此 Pod 的命名空间”。空选择器 ({}) 匹配所有命名空间。

namespaces

数组 (字符串)

namespaces 指定了该项应用到的命名空间名称的静态列表。该项应用于此字段中列出的命名空间和由 namespaceSelector 选择的命名空间的并集。空或空的命名空间列表以及空的 namespaceSelector 表示“此 Pod 的命名空间”。

topologyKey

字符串

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

matchExpressions[]

对象

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

matchLabels

对象 (string)

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 字段中列出的命名空间的并集。空选择器和空或空的命名空间列表表示“此 Pod 的命名空间”。空选择器 ({}) 匹配所有命名空间。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

matchExpressions[]

对象

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

matchLabels

对象 (string)

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

描述

AlertRelabelConfigs 在 ThanosRuler 中配置警报重新标记。警报重新标记配置必须具有官方 Prometheus 文档中指定的格式:https://prometheus.ac.cn/docs/prometheus/latest/configuration/configuration/#alert_relabel_configs 是 AlertRelabelConfigFile 的替代方案,优先级较低。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的 Secret 的键。必须是有效的 Secret 键。

name

字符串

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

可选

布尔值

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

.spec.alertmanagersConfig

描述

定义连接到 Alertmanager 的配置。仅在 thanos v0.10.0 及更高版本中可用。映射到 alertmanagers.config 参数。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的 Secret 的键。必须是有效的 Secret 键。

name

字符串

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

可选

布尔值

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

.spec.containers

描述

Containers 允许注入额外的容器或修改 Operator 生成的容器。这可以用来允许向 ThanosRuler pod 添加身份验证代理,或者更改 Operator 生成的容器的行为。此处描述的容器如果共享相同的名称,则会修改 Operator 生成的容器,并且修改是通过策略性合并补丁完成的。当前的容器名称是:thanos-rulerconfig-reloader。覆盖容器完全不在维护者支持的范围内,这样做,您接受此行为可能随时中断,恕不另行通知。

类型

数组

.spec.containers[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

args

数组 (字符串)

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

command

数组 (字符串)

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

env

数组

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

env[]

对象

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

envFrom

数组

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

envFrom[]

对象

EnvFromSource 表示一组 ConfigMap 的来源

image

字符串

容器镜像名称。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images 此字段是可选的,允许更高级别的配置管理在诸如 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

name

字符串

指定为 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 中各个容器的重启行为。此字段只能为初始化容器设置,并且唯一允许的值是 “Always”。对于非初始化容器或未指定此字段时,重启行为由 Pod 的重启策略和容器类型定义。将初始化容器的 RestartPolicy 设置为 “Always” 将产生以下影响:此初始化容器将在退出时持续重启,直到所有常规容器都已终止。一旦所有常规容器都已完成,所有重启策略为 “Always” 的初始化容器都将关闭。此生命周期与普通的初始化容器不同,通常称为 “边车” 容器。尽管此初始化容器仍会在初始化容器序列中启动,但它不会等待容器完成,然后才继续下一个初始化容器。相反,下一个初始化容器会在此初始化容器启动后立即启动,或者在任何 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 描述容器内 Volume 的挂载。

workingDir

字符串

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

.spec.containers[].env

描述

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

类型

数组

.spec.containers[].env[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

环境变量的名称。必须是 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 命名空间中 secret 的键

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

描述

选择 ConfigMap 的键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

name

字符串

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

可选

布尔值

指定是否必须定义 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

integer-or-string

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

resource

字符串

必需:要选择的资源

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

描述

选择 Pod 命名空间中 secret 的键

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的 Secret 的键。必须是有效的 Secret 键。

name

字符串

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

可选

布尔值

指定是否必须定义 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

类型

对象

属性 类型 描述

name

字符串

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

可选

布尔值

指定是否必须定义 ConfigMap

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

描述

要从中选择的 Secret

类型

对象

属性 类型 描述

name

字符串

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

可选

布尔值

指定是否必须定义 Secret

.spec.containers[].lifecycle

描述

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

类型

对象

属性 类型 描述

postStart

对象

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

preStop

对象

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

.spec.containers[].lifecycle.postStart

描述

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

类型

对象

属性 类型 描述

exec

对象

Exec 指定要执行的操作。

httpGet

对象

HTTPGet 指定要执行的 http 请求。

sleep

对象

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

tcpSocket

对象

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

.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

integer-or-string

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

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

描述

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

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

integer-or-string

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

.spec.containers[].lifecycle.preStop

描述

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

类型

对象

属性 类型 描述

exec

对象

Exec 指定要执行的操作。

httpGet

对象

HTTPGet 指定要执行的 http 请求。

sleep

对象

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

tcpSocket

对象

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

.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

integer-or-string

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

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

描述

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

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

integer-or-string

要访问容器的端口的编号或名称。数字必须在 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 spec 提供的值。值必须是非负整数。值 0 表示通过 kill 信号立即停止(没有关闭的机会)。这是一个 beta 字段,需要启用 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

integer-or-string

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.containers[].livenessProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

integer-or-string

要访问容器的端口的编号或名称。数字必须在 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 匹配。大多数容器不需要此设置。

name

字符串

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

协议

字符串

端口的协议。必须是 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 spec 提供的值。值必须是非负整数。值 0 表示通过 kill 信号立即停止(没有关闭的机会)。这是一个 beta 字段,需要启用 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

integer-or-string

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.containers[].readinessProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

integer-or-string

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

.spec.containers[].resizePolicy

描述

容器的资源调整策略。

类型

数组

.spec.containers[].resizePolicy[]

描述

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

类型

对象

必需
  • 资源名称

  • restartPolicy

属性 类型 描述

资源名称

字符串

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

restartPolicy

字符串

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

.spec.containers[].resources

描述

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

类型

对象

属性 类型 描述

声明

数组

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

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

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

claims[]

对象

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

限制

integer-or-string

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

请求

integer-or-string

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

.spec.containers[].resources.claims

描述

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

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

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

类型

数组

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

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

Name 必须与使用此字段的 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 标志。当容器满足以下条件时,AllowPrivilegeEscalation 始终为 true:1) 以特权模式运行 2) 具有 CAP_SYS_ADMIN。请注意,当 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) 身份运行,如果镜像以 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 是应用于容器的 SELinux 级别标签。

角色

字符串

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

类型

字符串

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

用户

字符串

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 中用于运行容器进程的入口点的 UserName。如果未指定,则默认为镜像元数据中指定的用户。也可以在 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 spec 提供的值。值必须是非负整数。值 0 表示通过 kill 信号立即停止(没有关闭的机会)。这是一个 beta 字段,需要启用 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

integer-or-string

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.containers[].startupProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

integer-or-string

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

.spec.containers[].volumeDevices

描述

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

类型

数组

.spec.containers[].volumeDevices[]

描述

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

类型

对象

必需
  • devicePath

  • name

属性 类型 描述

devicePath

字符串

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

name

字符串

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

.spec.containers[].volumeMounts

描述

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

类型

数组

.spec.containers[].volumeMounts[]

描述

VolumeMount 描述容器内 Volume 的挂载。

类型

对象

必需
  • mountPath

  • name

属性 类型 描述

mountPath

字符串

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

mountPropagation

字符串

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

name

字符串

这必须与 Volume 的 Name 匹配。

readOnly

布尔值

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

recursiveReadOnly

字符串

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

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

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

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

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

subPath

字符串

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

subPathExpr

字符串

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

.spec.excludedFromEnforcement

描述

要从强制添加源命名空间标签中排除的 PrometheusRule 对象引用列表。仅当 enforcedNamespaceLabel 设置为 true 时适用。

类型

数组

.spec.excludedFromEnforcement[]

描述

ObjectReference 引用 PodMonitor、ServiceMonitor、Probe 或 PrometheusRule 对象。

类型

对象

必需
  • 命名空间

  • resource

属性 类型 描述

字符串

引用的组。如果未指定,则默认为 monitoring.coreos.com

name

字符串

引用的名称。如果未设置,则会匹配命名空间中的所有资源。

命名空间

字符串

引用的命名空间。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/namespaces/

resource

字符串

引用的资源。

.spec.grpcServerTlsConfig

描述

GRPCServerTLSConfig 配置 Thanos Querier 从中读取记录的规则数据的 gRPC 服务器。注意:目前仅支持 CAFile、CertFile 和 KeyFile 字段。映射到 '--grpc-server-tls-*' 命令行参数。

类型

对象

属性 类型 描述

ca

对象

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

caFile

字符串

用于目标的 Prometheus 容器中 CA 证书的路径。

cert

对象

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

certFile

字符串

用于目标的 Prometheus 容器中客户端证书文件的路径。

insecureSkipVerify

布尔值

禁用目标证书验证。

keyFile

字符串

用于目标的 Prometheus 容器中客户端密钥文件的路径。

keySecret

对象

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

serverName

字符串

用于验证目标的主机名。

.spec.grpcServerTlsConfig.ca

描述

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

类型

对象

属性 类型 描述

configMap

对象

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

secret

对象

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

.spec.grpcServerTlsConfig.ca.configMap

描述

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

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

name

字符串

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

可选

布尔值

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

.spec.grpcServerTlsConfig.ca.secret

描述

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

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的 Secret 的键。必须是有效的 Secret 键。

name

字符串

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

可选

布尔值

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

.spec.grpcServerTlsConfig.cert

描述

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

类型

对象

属性 类型 描述

configMap

对象

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

secret

对象

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

.spec.grpcServerTlsConfig.cert.configMap

描述

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

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

name

字符串

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

可选

布尔值

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

.spec.grpcServerTlsConfig.cert.secret

描述

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

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的 Secret 的键。必须是有效的 Secret 键。

name

字符串

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

可选

布尔值

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

.spec.grpcServerTlsConfig.keySecret

描述

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

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的 Secret 的键。必须是有效的 Secret 键。

name

字符串

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

可选

布尔值

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

.spec.hostAliases

描述

Pod 的 hostAliases 配置

类型

数组

.spec.hostAliases[]

描述

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

类型

对象

必需
  • hostnames

  • ip

属性 类型 描述

hostnames

数组 (字符串)

上述 IP 地址的主机名。

ip

字符串

主机文件条目的 IP 地址。

.spec.imagePullSecrets

描述

同一命名空间中用于从注册表拉取 thanos 镜像的可选 secret 引用列表,请参阅 https://kubernetes.ac.cn/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod

类型

数组

.spec.imagePullSecrets[]

描述

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

类型

对象

属性 类型 描述

name

字符串

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

.spec.initContainers

描述

InitContainers 允许向 pod 定义添加 initContainers。这些可以用来例如从外部源获取 secret 以注入到 ThanosRuler 配置中。initContainer 执行期间的任何错误都将导致 Pod 重新启动。更多信息:https://kubernetes.ac.cn/docs/concepts/workloads/pods/init-containers/ 将 initContainers 用于 secret 获取以外的任何用例完全不在维护者支持的范围内,这样做,您接受此行为可能随时中断,恕不另行通知。

类型

数组

.spec.initContainers[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

args

数组 (字符串)

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

command

数组 (字符串)

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

env

数组

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

env[]

对象

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

envFrom

数组

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

envFrom[]

对象

EnvFromSource 表示一组 ConfigMap 的来源

image

字符串

容器镜像名称。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images 此字段是可选的,允许更高级别的配置管理在诸如 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

name

字符串

指定为 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 中各个容器的重启行为。此字段只能为初始化容器设置,并且唯一允许的值是 “Always”。对于非初始化容器或未指定此字段时,重启行为由 Pod 的重启策略和容器类型定义。将初始化容器的 RestartPolicy 设置为 “Always” 将产生以下影响:此初始化容器将在退出时持续重启,直到所有常规容器都已终止。一旦所有常规容器都已完成,所有重启策略为 “Always” 的初始化容器都将关闭。此生命周期与普通的初始化容器不同,通常称为 “边车” 容器。尽管此初始化容器仍会在初始化容器序列中启动,但它不会等待容器完成,然后才继续下一个初始化容器。相反,下一个初始化容器会在此初始化容器启动后立即启动,或者在任何 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 描述容器内 Volume 的挂载。

workingDir

字符串

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

.spec.initContainers[].env

描述

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

类型

数组

.spec.initContainers[].env[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

环境变量的名称。必须是 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 命名空间中 secret 的键

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

描述

选择 ConfigMap 的键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

name

字符串

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

可选

布尔值

指定是否必须定义 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

integer-or-string

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

resource

字符串

必需:要选择的资源

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

描述

选择 Pod 命名空间中 secret 的键

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的 Secret 的键。必须是有效的 Secret 键。

name

字符串

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

可选

布尔值

指定是否必须定义 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

类型

对象

属性 类型 描述

name

字符串

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

可选

布尔值

指定是否必须定义 ConfigMap

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

描述

要从中选择的 Secret

类型

对象

属性 类型 描述

name

字符串

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

可选

布尔值

指定是否必须定义 Secret

.spec.initContainers[].lifecycle

描述

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

类型

对象

属性 类型 描述

postStart

对象

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

preStop

对象

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

.spec.initContainers[].lifecycle.postStart

描述

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

类型

对象

属性 类型 描述

exec

对象

Exec 指定要执行的操作。

httpGet

对象

HTTPGet 指定要执行的 http 请求。

sleep

对象

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

tcpSocket

对象

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

.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

integer-or-string

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

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

描述

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

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

integer-or-string

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

.spec.initContainers[].lifecycle.preStop

描述

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

类型

对象

属性 类型 描述

exec

对象

Exec 指定要执行的操作。

httpGet

对象

HTTPGet 指定要执行的 http 请求。

sleep

对象

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

tcpSocket

对象

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

.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

integer-or-string

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

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

描述

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

类型

对象

必需
  • seconds

属性 类型 描述

seconds

整数

Seconds 是要休眠的秒数。

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

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

integer-or-string

要访问容器的端口的编号或名称。数字必须在 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 spec 提供的值。值必须是非负整数。值 0 表示通过 kill 信号立即停止(没有关闭的机会)。这是一个 beta 字段,需要启用 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

integer-or-string

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.initContainers[].livenessProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

integer-or-string

要访问容器的端口的编号或名称。数字必须在 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 匹配。大多数容器不需要此设置。

name

字符串

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

协议

字符串

端口的协议。必须是 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 spec 提供的值。值必须是非负整数。值 0 表示通过 kill 信号立即停止(没有关闭的机会)。这是一个 beta 字段,需要启用 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

integer-or-string

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.initContainers[].readinessProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

integer-or-string

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

.spec.initContainers[].resizePolicy

描述

容器的资源调整策略。

类型

数组

.spec.initContainers[].resizePolicy[]

描述

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

类型

对象

必需
  • 资源名称

  • restartPolicy

属性 类型 描述

资源名称

字符串

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

restartPolicy

字符串

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

.spec.initContainers[].resources

描述

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

类型

对象

属性 类型 描述

声明

数组

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

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

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

claims[]

对象

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

限制

integer-or-string

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

请求

integer-or-string

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

.spec.initContainers[].resources.claims

描述

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

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

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

类型

数组

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

描述

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

类型

对象

必需
  • name

属性 类型 描述

name

字符串

Name 必须与使用此字段的 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 标志。当容器满足以下条件时,AllowPrivilegeEscalation 始终为 true:1) 以特权模式运行 2) 具有 CAP_SYS_ADMIN。请注意,当 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) 身份运行,如果镜像以 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 是应用于容器的 SELinux 级别标签。

角色

字符串

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

类型

字符串

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

用户

字符串

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 中用于运行容器进程的入口点的 UserName。如果未指定,则默认为镜像元数据中指定的用户。也可以在 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 spec 提供的值。值必须是非负整数。值 0 表示通过 kill 信号立即停止(没有关闭的机会)。这是一个 beta 字段,需要启用 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

integer-or-string

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

scheme

字符串

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

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

value

字符串

标头字段值

.spec.initContainers[].startupProbe.tcpSocket

描述

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

类型

对象

必需
  • port

属性 类型 描述

host

字符串

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

port

integer-or-string

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

.spec.initContainers[].volumeDevices

描述

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

类型

数组

.spec.initContainers[].volumeDevices[]

描述

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

类型

对象

必需
  • devicePath

  • name

属性 类型 描述

devicePath

字符串

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

name

字符串

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

.spec.initContainers[].volumeMounts

描述

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

类型

数组

.spec.initContainers[].volumeMounts[]

描述

VolumeMount 描述容器内 Volume 的挂载。

类型

对象

必需
  • mountPath

  • name

属性 类型 描述

mountPath

字符串

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

mountPropagation

字符串

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

name

字符串

这必须与 Volume 的 Name 匹配。

readOnly

布尔值

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

recursiveReadOnly

字符串

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

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

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

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

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

subPath

字符串

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

subPathExpr

字符串

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

.spec.objectStorageConfig

描述

ObjectStorageConfig 配置 Thanos 中的对象存储。是 ObjectStorageConfigFile 的替代方案,且优先级较低。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的 Secret 的键。必须是有效的 Secret 键。

name

字符串

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

可选

布尔值

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

.spec.podMetadata

描述

PodMetadata 配置传播到 ThanosRuler pod 的标签和注解。

以下项目是保留的,不能被覆盖:* “app.kubernetes.io/name” 标签,设置为“thanos-ruler”。* “app.kubernetes.io/managed-by” 标签,设置为“prometheus-operator”。* “app.kubernetes.io/instance” 标签,设置为 ThanosRuler 实例的名称。* “thanos-ruler” 标签,设置为 ThanosRuler 实例的名称。* “kubectl.kubernetes.io/default-container” 注解,设置为“thanos-ruler”。

类型

对象

属性 类型 描述

annotations

对象 (string)

注释是一个与资源一起存储的非结构化键值映射,外部工具可以使用它来存储和检索任意元数据。它们是不可查询的,并且在修改对象时应保留。更多信息:https://kubernetes.ac.cn/docs/user-guide/annotations

labels

对象 (string)

可用于组织和分类(范围和选择)对象的字符串键和值映射。可能与复制控制器和服务的选择器匹配。更多信息:https://kubernetes.ac.cn/docs/user-guide/labels

name

字符串

名称在命名空间内必须是唯一的。创建资源时是必需的,尽管某些资源可能允许客户端请求自动生成适当的名称。名称主要用于创建幂等性和配置定义。不能更新。更多信息:https://kubernetes.ac.cn/docs/user-guide/identifiers#names

.spec.prometheusRulesExcludedFromEnforce

描述

PrometheusRulesExcludedFromEnforce - 要从强制添加命名空间标签中排除的 Prometheus 规则列表。仅当 enforcedNamespaceLabel 设置为 true 时才有效。确保为每一对都设置了 ruleNamespace 和 ruleName。已弃用:请改用 excludedFromEnforcement。

类型

数组

.spec.prometheusRulesExcludedFromEnforce[]

描述

PrometheusRuleExcludeConfig 允许用户配置要忽略的排除的 PrometheusRule 名称及其命名空间,同时强制为警报和指标添加命名空间标签。

类型

对象

必需
  • ruleName

  • ruleNamespace

属性 类型 描述

ruleName

字符串

排除的 PrometheusRule 对象的名称。

ruleNamespace

字符串

排除的 PrometheusRule 对象的命名空间。

.spec.queryConfig

描述

定义连接到 thanos 查询实例的配置。如果定义了此项,则将忽略 QueryEndpoints 字段。映射到 query.config 命令行参数。仅在 thanos v0.11.0 及更高版本中可用。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的 Secret 的键。必须是有效的 Secret 键。

name

字符串

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

可选

布尔值

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

.spec.resources

描述

Resources 定义单个 Pod 的资源需求。如果未提供,则不会设置请求/限制

类型

对象

属性 类型 描述

声明

数组

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

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

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

claims[]

对象

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

限制

integer-or-string

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

请求

integer-or-string

Requests 描述了所需的最小计算资源量。如果省略容器的 Requests,则如果明确指定了 Limits,则默认为 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 中的一个条目。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

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

.spec.ruleNamespaceSelector

描述

要选择用于规则发现的命名空间。如果未指定,则仅使用与 ThanosRuler 对象所在的命名空间相同的命名空间。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

matchExpressions[]

对象

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

matchLabels

对象 (string)

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

.spec.ruleNamespaceSelector.matchExpressions

描述

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

类型

数组

.spec.ruleNamespaceSelector.matchExpressions[]

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

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

operator

字符串

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

values

数组 (字符串)

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

.spec.ruleSelector

描述

用于选择要挂载以进行警报和记录的 PrometheusRules 的标签选择器。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

matchExpressions[]

对象

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

matchLabels

对象 (string)

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

.spec.ruleSelector.matchExpressions

描述

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

类型

数组

.spec.ruleSelector.matchExpressions[]

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

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

operator

字符串

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

values

数组 (字符串)

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

.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)身份运行,如果它以 UID 0 身份运行,则无法启动容器。如果未设置或为 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 的命名空间 sysctl 列表。具有不支持的 sysctl(由容器运行时)的 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 是应用于容器的 SELinux 级别标签。

角色

字符串

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

类型

字符串

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

用户

字符串

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 的命名空间 sysctl 列表。具有不支持的 sysctl(由容器运行时)的 Pod 可能无法启动。请注意,当 spec.os.name 为 windows 时,无法设置此字段。

类型

数组

.spec.securityContext.sysctls[]

描述

Sysctl 定义要设置的内核参数

类型

对象

必需
  • name

  • value

属性 类型 描述

name

字符串

要设置的属性的名称

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 中用于运行容器进程的入口点的 UserName。如果未指定,则默认为镜像元数据中指定的用户。也可以在 PodSecurityContext 中设置。如果在 SecurityContext 和 PodSecurityContext 中都设置了该值,则以 SecurityContext 中指定的值为准。

.spec.storage

描述

用于指定如何使用存储的存储规范。

类型

对象

属性 类型 描述

disableMountSubPath

布尔值

已弃用:子路径的使用将在未来的版本中移除。

emptyDir

对象

StatefulSet 要使用的 EmptyDirVolumeSource。如果指定,它将优先于 ephemeralvolumeClaimTemplate。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes/#emptydir

ephemeral

对象

StatefulSet 要使用的 EphemeralVolumeSource。这是 k8s 1.21 中的 Beta 字段,在 1.15 中为 GA。对于较低版本,从 k8s 1.19 开始,它需要启用 GenericEphemeralVolume 功能门。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes

volumeClaimTemplate

对象

定义 Prometheus StatefulSets 要使用的 PVC 规范。使用无法自动配置的卷的最简单方法是使用标签选择器以及手动创建的 PersistentVolumes。

.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

integer-or-string

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

.spec.storage.ephemeral

描述

StatefulSet 要使用的 EphemeralVolumeSource。这是 k8s 1.21 中的 Beta 字段,在 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 将 用于 Pod,以避免错误地使用不相关的卷。然后,启动 Pod 将被阻止,直到删除不相关的 PVC。如果此预先创建的 PVC 旨在供 Pod 使用,则一旦 Pod 存在,必须使用指向 Pod 的所有者引用来更新 PVC。通常,这不应该是不必要的,但在手动重建损坏的集群时可能很有用。

此字段是只读的,Kubernetes 在创建 PVC 后不会对其进行任何更改。

必需,不能为空。

.spec.storage.ephemeral.volumeClaimTemplate

描述

将用于创建独立的 PVC 来配置卷。嵌入此 EphemeralVolumeSource 的 Pod 将是 PVC 的所有者,即 PVC 将与 Pod 一起删除。PVC 的名称将是 <pod name>-<volume name>,其中 <volume name>PodSpec.Volumes 数组条目中的名称。如果串联的名称对于 PVC 无效(例如,太长),则 Pod 验证将拒绝该 Pod。

具有该名称且不属于 Pod 的现有 PVC 将 用于 Pod,以避免错误地使用不相关的卷。然后,启动 Pod 将被阻止,直到删除不相关的 PVC。如果此预先创建的 PVC 旨在供 Pod 使用,则一旦 Pod 存在,必须使用指向 Pod 的所有者引用来更新 PVC。通常,这不应该是不必要的,但在手动重建损坏的集群时可能很有用。

此字段是只读的,Kubernetes 在创建 PVC 后不会对其进行任何更改。

必需,不能为空。

类型

对象

必需
  • spec

属性 类型 描述

metadata

对象

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

spec

对象

PersistentVolumeClaim 的规范。整个内容将原样复制到从此模板创建的 PVC 中。PersistentVolumeClaim 中的相同字段在此也有效。

.spec.storage.ephemeral.volumeClaimTemplate.metadata

描述

可以包含标签和注释,这些标签和注释将在创建 PVC 时复制到 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) 如果配置器或外部控制器可以支持指定的数据源,它将基于指定数据源的内容创建一个新卷。启用 AnyVolumeDataSource 功能门后,dataSource 内容将复制到 dataSourceRef,并且当未指定 dataSourceRef.namespace 时,dataSourceRef 内容将复制到 dataSource。如果指定了命名空间,则不会将 dataSourceRef 复制到 dataSource。

dataSourceRef

对象

dataSourceRef 指定从中填充卷数据的对象(如果需要非空卷)。这可以是来自非空 API 组(非核心对象)的任何对象或 PersistentVolumeClaim 对象。如果指定此字段,则仅当指定对象的类型与某些已安装的卷填充程序或动态配置器匹配时,卷绑定才会成功。此字段将取代 dataSource 字段的功能,因此,如果两个字段都为非空,则它们必须具有相同的值。为了向后兼容,当 dataSourceRef 中未指定命名空间时,如果其中一个字段为空,而另一个字段为非空,则两个字段(dataSource 和 dataSourceRef)将自动设置为相同的值。当在 dataSourceRef 中指定命名空间时,dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间有三个重要的区别:* 虽然 dataSource 只允许两种特定类型的对象,但 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* 虽然 dataSource 会忽略不允许的值(删除它们),但 dataSourceRef 会保留所有值,并且如果指定了不允许的值,则会生成错误。* 虽然 dataSource 只允许本地对象,但 dataSourceRef 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 功能门。(Alpha)使用 dataSourceRef 的命名空间字段需要启用 CrossNamespaceVolumeDataSource 功能门。

resources

对象

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 将由 persistentvolume 控制器设置。如果 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) 如果配置器或外部控制器可以支持指定的数据源,它将基于指定数据源的内容创建一个新卷。启用 AnyVolumeDataSource 功能门后,dataSource 内容将复制到 dataSourceRef,并且当未指定 dataSourceRef.namespace 时,dataSourceRef 内容将复制到 dataSource。如果指定了命名空间,则不会将 dataSourceRef 复制到 dataSource。

类型

对象

必需
  • kind

  • name

属性 类型 描述

apiGroup

字符串

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

kind

字符串

Kind 是被引用资源的类型

name

字符串

Name 是被引用资源的名称

.spec.storage.ephemeral.volumeClaimTemplate.spec.dataSourceRef

描述

dataSourceRef 指定从中填充卷数据的对象(如果需要非空卷)。这可以是来自非空 API 组(非核心对象)的任何对象或 PersistentVolumeClaim 对象。如果指定此字段,则仅当指定对象的类型与某些已安装的卷填充程序或动态配置器匹配时,卷绑定才会成功。此字段将取代 dataSource 字段的功能,因此,如果两个字段都为非空,则它们必须具有相同的值。为了向后兼容,当 dataSourceRef 中未指定命名空间时,如果其中一个字段为空,而另一个字段为非空,则两个字段(dataSource 和 dataSourceRef)将自动设置为相同的值。当在 dataSourceRef 中指定命名空间时,dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间有三个重要的区别:* 虽然 dataSource 只允许两种特定类型的对象,但 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* 虽然 dataSource 会忽略不允许的值(删除它们),但 dataSourceRef 会保留所有值,并且如果指定了不允许的值,则会生成错误。* 虽然 dataSource 只允许本地对象,但 dataSourceRef 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 功能门。(Alpha)使用 dataSourceRef 的命名空间字段需要启用 CrossNamespaceVolumeDataSource 功能门。

类型

对象

必需
  • kind

  • name

属性 类型 描述

apiGroup

字符串

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

kind

字符串

Kind 是被引用资源的类型

name

字符串

Name 是被引用资源的名称

命名空间

字符串

Namespace 是被引用资源的命名空间。请注意,当指定命名空间时,需要被引用命名空间中的 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

类型

对象

属性 类型 描述

限制

integer-or-string

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

请求

integer-or-string

Requests 描述了所需的最小计算资源量。如果省略容器的 Requests,则如果明确指定了 Limits,则默认为 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

对象 (string)

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 规范。使用无法自动配置的卷的最简单方法是使用标签选择器以及手动创建的 PersistentVolumes。

类型

对象

属性 类型 描述

apiVersion

字符串

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

kind

字符串

Kind 是一个字符串值,表示此对象代表的 REST 资源。服务器可以从客户端提交请求的端点推断出此值。不可更新。采用 CamelCase 形式。更多信息: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

对象 (string)

注释是一个与资源一起存储的非结构化键值映射,外部工具可以使用它来存储和检索任意元数据。它们是不可查询的,并且在修改对象时应保留。更多信息:https://kubernetes.ac.cn/docs/user-guide/annotations

labels

对象 (string)

可用于组织和分类(范围和选择)对象的字符串键和值映射。可能与复制控制器和服务的选择器匹配。更多信息:https://kubernetes.ac.cn/docs/user-guide/labels

name

字符串

名称在命名空间内必须是唯一的。创建资源时是必需的,尽管某些资源可能允许客户端请求自动生成适当的名称。名称主要用于创建幂等性和配置定义。不能更新。更多信息: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) 如果配置器或外部控制器可以支持指定的数据源,它将基于指定数据源的内容创建一个新卷。启用 AnyVolumeDataSource 功能门后,dataSource 内容将复制到 dataSourceRef,并且当未指定 dataSourceRef.namespace 时,dataSourceRef 内容将复制到 dataSource。如果指定了命名空间,则不会将 dataSourceRef 复制到 dataSource。

dataSourceRef

对象

dataSourceRef 指定从中填充卷数据的对象(如果需要非空卷)。这可以是来自非空 API 组(非核心对象)的任何对象或 PersistentVolumeClaim 对象。如果指定此字段,则仅当指定对象的类型与某些已安装的卷填充程序或动态配置器匹配时,卷绑定才会成功。此字段将取代 dataSource 字段的功能,因此,如果两个字段都为非空,则它们必须具有相同的值。为了向后兼容,当 dataSourceRef 中未指定命名空间时,如果其中一个字段为空,而另一个字段为非空,则两个字段(dataSource 和 dataSourceRef)将自动设置为相同的值。当在 dataSourceRef 中指定命名空间时,dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间有三个重要的区别:* 虽然 dataSource 只允许两种特定类型的对象,但 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* 虽然 dataSource 会忽略不允许的值(删除它们),但 dataSourceRef 会保留所有值,并且如果指定了不允许的值,则会生成错误。* 虽然 dataSource 只允许本地对象,但 dataSourceRef 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 功能门。(Alpha)使用 dataSourceRef 的命名空间字段需要启用 CrossNamespaceVolumeDataSource 功能门。

resources

对象

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 将由 persistentvolume 控制器设置。如果 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) 如果配置器或外部控制器可以支持指定的数据源,它将基于指定数据源的内容创建一个新卷。启用 AnyVolumeDataSource 功能门后,dataSource 内容将复制到 dataSourceRef,并且当未指定 dataSourceRef.namespace 时,dataSourceRef 内容将复制到 dataSource。如果指定了命名空间,则不会将 dataSourceRef 复制到 dataSource。

类型

对象

必需
  • kind

  • name

属性 类型 描述

apiGroup

字符串

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

kind

字符串

Kind 是被引用资源的类型

name

字符串

Name 是被引用资源的名称

.spec.storage.volumeClaimTemplate.spec.dataSourceRef

描述

dataSourceRef 指定从中填充卷数据的对象(如果需要非空卷)。这可以是来自非空 API 组(非核心对象)的任何对象或 PersistentVolumeClaim 对象。如果指定此字段,则仅当指定对象的类型与某些已安装的卷填充程序或动态配置器匹配时,卷绑定才会成功。此字段将取代 dataSource 字段的功能,因此,如果两个字段都为非空,则它们必须具有相同的值。为了向后兼容,当 dataSourceRef 中未指定命名空间时,如果其中一个字段为空,而另一个字段为非空,则两个字段(dataSource 和 dataSourceRef)将自动设置为相同的值。当在 dataSourceRef 中指定命名空间时,dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间有三个重要的区别:* 虽然 dataSource 只允许两种特定类型的对象,但 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* 虽然 dataSource 会忽略不允许的值(删除它们),但 dataSourceRef 会保留所有值,并且如果指定了不允许的值,则会生成错误。* 虽然 dataSource 只允许本地对象,但 dataSourceRef 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 功能门。(Alpha)使用 dataSourceRef 的命名空间字段需要启用 CrossNamespaceVolumeDataSource 功能门。

类型

对象

必需
  • kind

  • name

属性 类型 描述

apiGroup

字符串

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

kind

字符串

Kind 是被引用资源的类型

name

字符串

Name 是被引用资源的名称

命名空间

字符串

Namespace 是被引用资源的命名空间。请注意,当指定命名空间时,需要被引用命名空间中的 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

类型

对象

属性 类型 描述

限制

integer-or-string

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

请求

integer-or-string

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

.spec.storage.volumeClaimTemplate.spec.selector

描述

selector 是一个针对要考虑绑定的卷的标签查询。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

matchExpressions[]

对象

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

matchLabels

对象 (string)

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

对象 (string)

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 没有正在进行的调整大小操作。

接收到具有先前未知 resourceName 或 ClaimResourceStatus 的 PVC 更新的控制器应忽略更新,以达到其设计目的。例如 - 仅负责调整卷容量的控制器应忽略更改与 PVC 关联的其他有效资源的 PVC 更新。

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

allocatedResources

integer-or-string

allocatedResources 跟踪分配给 PVC 的资源,包括其容量。键名称遵循标准的 Kubernetes 标签语法。有效值是: * 无前缀的键: - storage - 卷的容量。 * 自定义资源必须使用实现定义的带有前缀的名称,例如 "example.com/my-custom-resource" 除了以上值之外 - 没有前缀或带有 kubernetes.io 前缀的键被认为是保留的,因此可能不会被使用。

当请求卷扩展操作时,此处报告的容量可能大于实际容量。对于存储配额,使用 allocatedResources 和 PVC.spec.resources 中较大的值。如果未设置 allocatedResources,则仅使用 PVC.spec.resources 进行配额计算。如果降低卷扩展容量请求,则仅当没有正在进行的扩展操作并且实际卷容量等于或小于请求的容量时,才会降低 allocatedResources。

接收到具有先前未知 resourceName 的 PVC 更新的控制器应忽略更新,以达到其设计目的。例如 - 仅负责调整卷容量的控制器应忽略更改与 PVC 关联的其他有效资源的 PVC 更新。

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

capacity

integer-or-string

capacity 表示底层卷的实际资源。

conditions

数组

conditions 是持久卷声明的当前状态。如果正在调整底层持久卷的大小,则 Condition 将设置为 '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 是持久卷声明的当前状态。如果正在调整底层持久卷的大小,则 Condition 将设置为 '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[]

描述

附加此 Toleration 的 pod 可以容忍任何匹配 三元组的污点,使用匹配运算符 <operator>。

类型

对象

属性 类型 描述

effect

字符串

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

key

字符串

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

operator

字符串

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

tolerationSeconds

整数

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

value

字符串

Value 是容忍度匹配的污点值。如果 operator 是 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 标签中不存在的键。空列表或空列表意味着仅与 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 拓扑分布会将“全局最小值”视为 0,然后执行 Skew 的计算。当具有匹配拓扑键的符合条件的域的数量等于或大于 minDomains 时,此值对调度没有影响。因此,当符合条件的域的数量小于 minDomains 时,调度器不会将超过 maxSkew 个 Pod 调度到这些域。如果值为 nil,则约束的行为就像 MinDomains 等于 1 一样。有效值是大于 0 的整数。当值不为 nil 时,WhenUnsatisfiable 必须为 DoNotSchedule。

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

nodeAffinityPolicy

字符串

NodeAffinityPolicy 指示在计算 pod 拓扑分布偏差时,我们将如何处理 Pod 的 nodeAffinity/nodeSelector。选项包括: - Honor:仅在计算中包括与 nodeAffinity/nodeSelector 匹配的节点。 - Ignore:忽略 nodeAffinity/nodeSelector。所有节点都包含在计算中。

如果此值为 nil,则行为等同于 Honor 策略。这是由 NodeInclusionPolicyInPodTopologySpread 功能标志默认启用的 Beta 级功能。

nodeTaintsPolicy

字符串

NodeTaintsPolicy 指示在计算 pod 拓扑分布偏差时,我们将如何处理节点污点。选项包括: - Honor:包括没有污点的节点,以及传入 pod 具有容忍度的已污点节点。 - Ignore:忽略节点污点。所有节点都包含在计算中。

如果此值为 nil,则行为等同于 Ignore 策略。这是由 NodeInclusionPolicyInPodTopologySpread 功能标志默认启用的 Beta 级功能。

topologyKey

字符串

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

whenUnsatisfiable

字符串

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

.spec.topologySpreadConstraints[].labelSelector

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

matchExpressions[]

对象

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

matchLabels

对象 (string)

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

描述

TracingConfig 配置 Thanos 中的跟踪。

tracingConfigFile 优先于此字段。

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

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的 Secret 的键。必须是有效的 Secret 键。

name

字符串

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

可选

布尔值

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

.spec.volumeMounts

描述

VolumeMounts 允许在输出 StatefulSet 定义上配置额外的 VolumeMounts。指定的 VolumeMounts 将附加到 ruler 容器中的其他 VolumeMounts,这些 VolumeMounts 是作为 StorageSpec 对象的结果生成的。

类型

数组

.spec.volumeMounts[]

描述

VolumeMount 描述容器内 Volume 的挂载。

类型

对象

必需
  • mountPath

  • name

属性 类型 描述

mountPath

字符串

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

mountPropagation

字符串

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

name

字符串

这必须与 Volume 的 Name 匹配。

readOnly

布尔值

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

recursiveReadOnly

字符串

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

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

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

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

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

subPath

字符串

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

subPathExpr

字符串

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

.spec.volumes

描述

Volumes 允许在输出 StatefulSet 定义上配置额外的卷。指定的卷将附加到作为 StorageSpec 对象的结果生成的其他卷。

类型

数组

.spec.volumes[]

描述

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

类型

对象

必需
  • name

属性 类型 描述

awsElasticBlockStore

对象

awsElasticBlockStore 表示一个附加到 kubelet 主机并暴露给 pod 的 AWS 磁盘资源。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

azureDisk

对象

azureDisk 表示主机上的 Azure 数据磁盘挂载,并绑定挂载到 pod。

azureFile

对象

azureFile 表示主机上的 Azure 文件服务挂载,并绑定挂载到 pod。

cephfs

对象

cephFS 表示主机上的 Ceph FS 挂载,与 pod 的生命周期共享。

cinder

对象

cinder 表示一个附加并挂载在 kubelet 主机上的 cinder 卷。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

configMap

对象

configMap 表示应该填充此卷的 configMap。

csi

对象

csi(容器存储接口)表示由某些外部 CSI 驱动程序处理的临时存储(Beta 功能)。

downwardAPI

对象

downwardAPI 表示关于应该填充此卷的 pod 的 downward 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 挂载到使用 git 克隆存储库的 InitContainer 中,然后将 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

name

字符串

卷的名称。必须是 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

对象

用于将所有资源 secrets、configmaps 和 downward API 项目到一起。

quobyte

对象

quobyte 表示主机上的 Quobyte 挂载,与 pod 的生命周期共享。

rbd

对象

rbd 表示主机上的 Rados 块设备挂载,与 pod 的生命周期共享。更多信息:https://examples.k8s.io/volumes/rbd/README.md

scaleIO

对象

scaleIO 表示一个附加并挂载在 Kubernetes 节点上的 ScaleIO 持久卷。

secret

对象

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 是主机缓存模式:None、Read Only、Read Write。

diskName

字符串

diskName 是 blob 存储中数据磁盘的名称。

diskURI

字符串

diskURI 是 blob 存储中数据磁盘的 URI。

fsType

字符串

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

kind

字符串

kind 期望的值为 Shared:每个存储帐户多个 blob 磁盘。Dedicated:每个存储帐户单个 blob 磁盘。Managed:azure 托管数据磁盘(仅在托管可用性集中)。默认为共享。

readOnly

布尔值

readOnly 默认为 false(读/写)。这里的 ReadOnly 将强制在 VolumeMounts 中设置 ReadOnly。

.spec.volumes[].azureFile

描述

azureFile 表示主机上的 Azure 文件服务挂载,并绑定挂载到 pod。

类型

对象

必需
  • secretName

  • shareName

属性 类型 描述

readOnly

布尔值

readOnly 默认为 false (读/写)。这里的 ReadOnly 将强制 VolumeMounts 中的 ReadOnly 设置。

secretName

字符串

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

shareName

字符串

shareName 是 Azure 共享名称

.spec.volumes[].cephfs

描述

cephFS 表示主机上的 Ceph FS 挂载,与 pod 的生命周期共享。

类型

对象

必需
  • 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 是对用户身份验证 secret 的引用,默认为空。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

用户

字符串

user 是可选的:User 是 rados 用户名,默认为 admin。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

.spec.volumes[].cephfs.secretRef

描述

secretRef 是可选的:SecretRef 是对用户身份验证 secret 的引用,默认为空。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

类型

对象

属性 类型 描述

name

字符串

引用对象的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处具有空值的此类类型的实例几乎肯定是错误的。TODO:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names TODO:当 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 的参数的 secret 对象。

volumeID

字符串

volumeID 用于标识 cinder 中的卷。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

.spec.volumes[].cinder.secretRef

描述

secretRef 是可选的:指向包含用于连接到 OpenStack 的参数的 secret 对象。

类型

对象

属性 类型 描述

name

字符串

引用对象的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处具有空值的此类类型的实例几乎肯定是错误的。TODO:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names TODO:当 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 字段中的每个键值对都将作为文件投影到卷中,该文件的名称是键,内容是值。如果指定,则列出的键将投影到指定的路径中,并且未列出的键将不存在。如果指定的键在 ConfigMap 中不存在,则除非标记为可选,否则卷设置将出错。路径必须是相对的,并且不得包含 '..' 路径或以 '..' 开头。

items[]

对象

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

name

字符串

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

可选

布尔值

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

.spec.volumes[].configMap.items

描述

items 如果未指定,则引用的 ConfigMap 的 Data 字段中的每个键值对都将作为文件投影到卷中,该文件的名称是键,内容是值。如果指定,则列出的键将投影到指定的路径中,并且未列出的键将不存在。如果指定的键在 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

对象 (string)

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

.spec.volumes[].csi.nodePublishSecretRef

描述

nodePublishSecretRef 是对包含敏感信息的 secret 对象的引用,该信息将传递给 CSI 驱动程序以完成 CSI NodePublishVolume 和 NodeUnpublishVolume 调用。此字段是可选的,如果不需要 secret,则可以为空。如果 secret 对象包含多个 secret,则会传递所有 secret 引用。

类型

对象

属性 类型 描述

name

字符串

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

.spec.volumes[].downwardAPI

描述

downwardAPI 表示关于应该填充此卷的 pod 的 downward API。

类型

对象

属性 类型 描述

defaultMode

整数

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

items

数组

Items 是 downward API 卷文件列表

items[]

对象

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

.spec.volumes[].downwardAPI.items

描述

Items 是 downward API 卷文件列表

类型

数组

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

描述

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

类型

对象

必需
  • path

属性 类型 描述

fieldRef

对象

必需:选择 pod 的字段:仅支持 annotations、labels、name、namespace 和 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 的字段:仅支持 annotations、labels、name、namespace 和 uid。

类型

对象

必需
  • fieldPath

属性 类型 描述

apiVersion

字符串

编写 FieldPath 所依据的模式版本,默认为 "v1"。

fieldPath

字符串

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

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

描述

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

类型

对象

必需
  • resource

属性 类型 描述

containerName

字符串

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

divisor

integer-or-string

指定公开资源的输出格式,默认为 "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

integer-or-string

sizeLimit 是此 EmptyDir 卷所需的本地存储总量。大小限制也适用于内存介质。内存介质 EmptyDir 的最大使用量将是此处指定的大小限制与 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 将 用于 Pod,以避免错误地使用不相关的卷。然后,启动 Pod 将被阻止,直到删除不相关的 PVC。如果此预先创建的 PVC 旨在供 Pod 使用,则一旦 Pod 存在,必须使用指向 Pod 的所有者引用来更新 PVC。通常,这不应该是不必要的,但在手动重建损坏的集群时可能很有用。

此字段是只读的,Kubernetes 在创建 PVC 后不会对其进行任何更改。

必需,不能为空。

.spec.volumes[].ephemeral.volumeClaimTemplate

描述

将用于创建独立的 PVC 来配置卷。嵌入此 EphemeralVolumeSource 的 Pod 将是 PVC 的所有者,即 PVC 将与 Pod 一起删除。PVC 的名称将是 <pod name>-<volume name>,其中 <volume name>PodSpec.Volumes 数组条目中的名称。如果串联的名称对于 PVC 无效(例如,太长),则 Pod 验证将拒绝该 Pod。

具有该名称且不属于 Pod 的现有 PVC 将 用于 Pod,以避免错误地使用不相关的卷。然后,启动 Pod 将被阻止,直到删除不相关的 PVC。如果此预先创建的 PVC 旨在供 Pod 使用,则一旦 Pod 存在,必须使用指向 Pod 的所有者引用来更新 PVC。通常,这不应该是不必要的,但在手动重建损坏的集群时可能很有用。

此字段是只读的,Kubernetes 在创建 PVC 后不会对其进行任何更改。

必需,不能为空。

类型

对象

必需
  • spec

属性 类型 描述

metadata

对象

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

spec

对象

PersistentVolumeClaim 的规范。整个内容将原样复制到从此模板创建的 PVC 中。PersistentVolumeClaim 中的相同字段在此也有效。

.spec.volumes[].ephemeral.volumeClaimTemplate.metadata

描述

可以包含标签和注释,这些标签和注释将在创建 PVC 时复制到 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) 如果配置器或外部控制器可以支持指定的数据源,它将基于指定数据源的内容创建一个新卷。启用 AnyVolumeDataSource 功能门后,dataSource 内容将复制到 dataSourceRef,并且当未指定 dataSourceRef.namespace 时,dataSourceRef 内容将复制到 dataSource。如果指定了命名空间,则不会将 dataSourceRef 复制到 dataSource。

dataSourceRef

对象

dataSourceRef 指定从中填充卷数据的对象(如果需要非空卷)。这可以是来自非空 API 组(非核心对象)的任何对象或 PersistentVolumeClaim 对象。如果指定此字段,则仅当指定对象的类型与某些已安装的卷填充程序或动态配置器匹配时,卷绑定才会成功。此字段将取代 dataSource 字段的功能,因此,如果两个字段都为非空,则它们必须具有相同的值。为了向后兼容,当 dataSourceRef 中未指定命名空间时,如果其中一个字段为空,而另一个字段为非空,则两个字段(dataSource 和 dataSourceRef)将自动设置为相同的值。当在 dataSourceRef 中指定命名空间时,dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间有三个重要的区别:* 虽然 dataSource 只允许两种特定类型的对象,但 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* 虽然 dataSource 会忽略不允许的值(删除它们),但 dataSourceRef 会保留所有值,并且如果指定了不允许的值,则会生成错误。* 虽然 dataSource 只允许本地对象,但 dataSourceRef 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 功能门。(Alpha)使用 dataSourceRef 的命名空间字段需要启用 CrossNamespaceVolumeDataSource 功能门。

resources

对象

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 将由 persistentvolume 控制器设置。如果 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) 如果配置器或外部控制器可以支持指定的数据源,它将基于指定数据源的内容创建一个新卷。启用 AnyVolumeDataSource 功能门后,dataSource 内容将复制到 dataSourceRef,并且当未指定 dataSourceRef.namespace 时,dataSourceRef 内容将复制到 dataSource。如果指定了命名空间,则不会将 dataSourceRef 复制到 dataSource。

类型

对象

必需
  • kind

  • name

属性 类型 描述

apiGroup

字符串

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

kind

字符串

Kind 是被引用资源的类型

name

字符串

Name 是被引用资源的名称

.spec.volumes[].ephemeral.volumeClaimTemplate.spec.dataSourceRef

描述

dataSourceRef 指定从中填充卷数据的对象(如果需要非空卷)。这可以是来自非空 API 组(非核心对象)的任何对象或 PersistentVolumeClaim 对象。如果指定此字段,则仅当指定对象的类型与某些已安装的卷填充程序或动态配置器匹配时,卷绑定才会成功。此字段将取代 dataSource 字段的功能,因此,如果两个字段都为非空,则它们必须具有相同的值。为了向后兼容,当 dataSourceRef 中未指定命名空间时,如果其中一个字段为空,而另一个字段为非空,则两个字段(dataSource 和 dataSourceRef)将自动设置为相同的值。当在 dataSourceRef 中指定命名空间时,dataSource 不会设置为相同的值,并且必须为空。dataSource 和 dataSourceRef 之间有三个重要的区别:* 虽然 dataSource 只允许两种特定类型的对象,但 dataSourceRef 允许任何非核心对象以及 PersistentVolumeClaim 对象。* 虽然 dataSource 会忽略不允许的值(删除它们),但 dataSourceRef 会保留所有值,并且如果指定了不允许的值,则会生成错误。* 虽然 dataSource 只允许本地对象,但 dataSourceRef 允许任何命名空间中的对象。(Beta)使用此字段需要启用 AnyVolumeDataSource 功能门。(Alpha)使用 dataSourceRef 的命名空间字段需要启用 CrossNamespaceVolumeDataSource 功能门。

类型

对象

必需
  • kind

  • name

属性 类型 描述

apiGroup

字符串

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

kind

字符串

Kind 是被引用资源的类型

name

字符串

Name 是被引用资源的名称

命名空间

字符串

Namespace 是被引用资源的命名空间。请注意,当指定命名空间时,需要被引用命名空间中的 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

类型

对象

属性 类型 描述

限制

integer-or-string

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

请求

integer-or-string

Requests 描述了所需的最小计算资源量。如果省略容器的 Requests,则如果明确指定了 Limits,则默认为 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

对象 (string)

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”。TODO:我们如何防止文件系统中的错误危及机器

lun

整数

lun 是可选的:FC 目标 lun 号

readOnly

布尔值

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

targetWWNs

数组 (字符串)

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

wwids

数组 (字符串)

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

.spec.volumes[].flexVolume

描述

flexVolume 表示使用基于 exec 的插件配置/附加的通用卷资源。

类型

对象

必需
  • driver

属性 类型 描述

driver

字符串

driver 是用于此卷的驱动程序的名称。

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。默认文件系统取决于 FlexVolume 脚本。

options

对象 (string)

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 都将传递给插件脚本。

类型

对象

属性 类型 描述

name

字符串

引用对象的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处具有空值的此类类型的实例几乎肯定是错误的。TODO:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names TODO:当 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 挂载到使用 git 克隆存储库的 InitContainer 中,然后将 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 发现 CHAP 身份验证

chapAuthSession

布尔值

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

fsType

字符串

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

initiatorName

字符串

initiatorName 是自定义 iSCSI 发起程序名称。如果 initiatorName 与 iscsiInterface 同时指定,将为连接创建新的 iSCSI 接口 <target portal>:<volume name>。

iqn

字符串

iqn 是目标 iSCSI 限定名称。

iscsiInterface

字符串

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

lun

整数

lun 表示 iSCSI 目标 Lun 编号。

portals

数组 (字符串)

portals 是 iSCSI 目标门户列表。如果端口不是默认端口(通常是 TCP 端口 860 和 3260),则门户可以是 IP 或 ip_addr:port。

readOnly

布尔值

这里的 readOnly 将强制设置 VolumeMounts 中的 ReadOnly 设置。默认为 false。

secretRef

对象

secretRef 是用于 iSCSI 目标和发起程序身份验证的 CHAP 密钥

targetPortal

字符串

targetPortal 是 iSCSI 目标门户。如果端口不是默认端口(通常是 TCP 端口 860 和 3260),则门户可以是 IP 或 ip_addr:port。

.spec.volumes[].iscsi.secretRef

描述

secretRef 是用于 iSCSI 目标和发起程序身份验证的 CHAP 密钥

类型

对象

属性 类型 描述

name

字符串

引用对象的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处具有空值的此类类型的实例几乎肯定是错误的。TODO:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names TODO:当 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

描述

用于将所有资源 secrets、configmaps 和 downward 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

对象

选择与此标签选择器匹配的所有 ClusterTrustBundle。仅在设置 signerName 时有效。与 name 互斥。如果未设置,则解释为“不匹配任何内容”。如果设置但为空,则解释为“匹配所有内容”。

name

字符串

按对象名称选择单个 ClusterTrustBundle。与 signerName 和 labelSelector 互斥。

可选

布尔值

如果为 true,则如果引用的 ClusterTrustBundle 不可用,则不阻止 Pod 启动。如果使用 name,则允许命名的 ClusterTrustBundle 不存在。如果使用 signerName,则允许 signerName 和 labelSelector 的组合匹配零个 ClusterTrustBundle。

path

字符串

从卷根目录到写入捆绑包的相对路径。

signerName

字符串

选择与此签名者名称匹配的所有 ClusterTrustBundle。与 name 互斥。所有选定的 ClusterTrustBundle 的内容将被统一并删除重复。

.spec.volumes[].projected.sources[].clusterTrustBundle.labelSelector

描述

选择与此标签选择器匹配的所有 ClusterTrustBundle。仅在设置 signerName 时有效。与 name 互斥。如果未设置,则解释为“不匹配任何内容”。如果设置但为空,则解释为“匹配所有内容”。

类型

对象

属性 类型 描述

matchExpressions

数组

matchExpressions 是标签选择器要求列表。这些要求是 AND 的关系。

matchExpressions[]

对象

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

matchLabels

对象 (string)

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 字段中的每个键值对都将作为文件投影到卷中,该文件的名称是键,内容是值。如果指定,则列出的键将投影到指定的路径中,并且未列出的键将不存在。如果指定的键在 ConfigMap 中不存在,则除非标记为可选,否则卷设置将出错。路径必须是相对的,并且不得包含 '..' 路径或以 '..' 开头。

items[]

对象

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

name

字符串

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

可选

布尔值

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

.spec.volumes[].projected.sources[].configMap.items

描述

items 如果未指定,则引用的 ConfigMap 的 Data 字段中的每个键值对都将作为文件投影到卷中,该文件的名称是键,内容是值。如果指定,则列出的键将投影到指定的路径中,并且未列出的键将不存在。如果指定的键在 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 的字段:仅支持 annotations、labels、name、namespace 和 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 的字段:仅支持 annotations、labels、name、namespace 和 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

integer-or-string

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

resource

字符串

必需:要选择的资源

.spec.volumes[].projected.sources[].secret

描述

secret 关于要投影的 secret 数据的信息

类型

对象

属性 类型 描述

items

数组

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

items[]

对象

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

name

字符串

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

可选

布尔值

optional 字段指定是否必须定义 Secret 或其键

.spec.volumes[].projected.sources[].secret.items

描述

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

类型

数组

.spec.volumes[].projected.sources[].secret.items[]

描述

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

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key 是要投影的键。

mode

整数

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

path

字符串

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

.spec.volumes[].projected.sources[].serviceAccountToken

描述

serviceAccountToken 是关于要投影的 serviceAccountToken 数据的信息

类型

对象

必需
  • path

属性 类型 描述

audience

字符串

audience 是令牌的预期受众。令牌的接收者必须使用令牌受众中指定的标识符来标识自身,否则应拒绝该令牌。受众默认为 apiserver 的标识符。

expirationSeconds

整数

expirationSeconds 是服务帐户令牌的请求有效持续时间。当令牌接近过期时,kubelet 卷插件将主动轮换服务帐户令牌。如果令牌的有效期已超过 80% 或令牌已超过 24 小时,则 kubelet 将开始尝试轮换令牌。默认为 1 小时,且必须至少为 10 分钟。

path

字符串

path 是相对于要将令牌投影到的文件挂载点的路径。

.spec.volumes[].quobyte

描述

quobyte 表示主机上的 Quobyte 挂载,与 pod 的生命周期共享。

类型

对象

必需
  • registry

  • volume

属性 类型 描述

字符串

将卷访问映射到的组,默认为无组

readOnly

布尔值

这里的 readOnly 将强制以只读权限挂载 Quobyte 卷。默认为 false。

registry

字符串

registry 表示指定为字符串(多个条目用逗号分隔)的单个或多个 Quobyte 注册表服务,作为卷的中央注册表

tenant

字符串

在后端使用动态配置的 Quobyte 卷时,拥有给定 Quobyte 卷的租户,该值由插件设置。

用户

字符串

用于映射卷访问的用户。默认为 serivceaccount 用户。

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 TODO: 我们如何防止文件系统中的错误危害机器

image

字符串

image 是 rados 镜像名称。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

keyring

字符串

keyring 是 RBDUser 的密钥环路径。默认为 /etc/ceph/keyring。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

monitors

数组 (字符串)

monitors 是 Ceph 监视器的集合。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

pool

字符串

pool 是 rados 池名称。默认为 rbd。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

readOnly

布尔值

这里的 readOnly 将强制 VolumeMounts 中的 ReadOnly 设置。默认为 false。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

secretRef

对象

secretRef 是 RBDUser 的身份验证密钥的名称。如果提供,则覆盖 keyring。默认为 nil。更多信息:https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it

用户

字符串

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

类型

对象

属性 类型 描述

name

字符串

引用对象的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处具有空值的此类类型的实例几乎肯定是错误的。TODO:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names TODO:当 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 网关的主机地址。

protectionDomain

字符串

protectionDomain 是配置的存储的 ScaleIO 保护域的名称。

readOnly

布尔值

readOnly 默认为 false(读/写)。这里的 ReadOnly 将强制在 VolumeMounts 中设置 ReadOnly。

secretRef

对象

secretRef 引用 ScaleIO 用户和其他敏感信息的密钥。如果未提供,则登录操作将失败。

sslEnabled

布尔值

sslEnabled 标志启用/禁用与网关的 SSL 通信,默认为 false

storageMode

字符串

storageMode 指示卷的存储应为 ThickProvisioned 还是 ThinProvisioned。默认为 ThinProvisioned。

storagePool

字符串

storagePool 是与保护域关联的 ScaleIO 存储池。

system

字符串

system 是 ScaleIO 中配置的存储系统的名称。

volumeName

字符串

volumeName 是已在 ScaleIO 系统中创建的、与此卷源关联的卷的名称。

.spec.volumes[].scaleIO.secretRef

描述

secretRef 引用 ScaleIO 用户和其他敏感信息的密钥。如果未提供,则登录操作将失败。

类型

对象

属性 类型 描述

name

字符串

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

.spec.volumes[].secret

描述

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 字段指定是否必须定义 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 凭据的密钥。如果未指定,将尝试使用默认值。

volumeName

字符串

volumeName 是 StorageOS 卷的人类可读名称。卷名称在命名空间内是唯一的。

volumeNamespace

字符串

volumeNamespace 指定 StorageOS 中卷的范围。如果未指定命名空间,则将使用 Pod 的命名空间。这允许在 StorageOS 中镜像 Kubernetes 名称范围,以实现更紧密的集成。将 VolumeName 设置为任何名称以覆盖默认行为。如果您在 StorageOS 中不使用命名空间,请设置为“default”。将在 StorageOS 中创建不存在的命名空间。

.spec.volumes[].storageos.secretRef

描述

secretRef 指定用于获取 StorageOS API 凭据的密钥。如果未指定,将尝试使用默认值。

类型

对象

属性 类型 描述

name

字符串

引用对象的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处具有空值的此类类型的实例几乎肯定是错误的。TODO:添加其他有用的字段。apiVersion、kind、uid?更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names TODO:当 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

描述

定义 ThanosRuler Web 服务器的配置。

类型

对象

属性 类型 描述

httpConfig

对象

定义 Web 服务器的 HTTP 参数。

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

字符串

要选择的键。

name

字符串

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

可选

布尔值

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

.spec.web.tlsConfig.cert.secret

描述

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

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的 Secret 的键。必须是有效的 Secret 键。

name

字符串

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

可选

布尔值

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

.spec.web.tlsConfig.client_ca

描述

包含客户端证书身份验证到服务器的 CA 证书。

类型

对象

属性 类型 描述

configMap

对象

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

secret

对象

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

.spec.web.tlsConfig.client_ca.configMap

描述

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

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

name

字符串

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

可选

布尔值

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

.spec.web.tlsConfig.client_ca.secret

描述

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

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的 Secret 的键。必须是有效的 Secret 键。

name

字符串

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

可选

布尔值

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

.spec.web.tlsConfig.keySecret

描述

包含服务器的 TLS 密钥的 Secret。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要从中选择的 Secret 的键。必须是有效的 Secret 键。

name

字符串

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

可选

布尔值

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

.status

描述
类型

对象

必需
  • availableReplicas

  • paused

  • replicas

  • unavailableReplicas

  • updatedReplicas

属性 类型 描述

availableReplicas

整数

此 ThanosRuler 部署目标的可用的 Pod 总数(至少准备好 minReadySeconds)。

conditions

数组

Alertmanager 对象的当前状态。

conditions[]

对象

Condition 表示与 Prometheus、Alertmanager 或 ThanosRuler 资源关联的资源的状态。

paused

布尔值

表示是否正在对底层托管对象执行任何操作。仅执行删除操作。

replicas

整数

此 ThanosRuler 部署目标且未终止的 Pod 总数(它们的标签与选择器匹配)。

unavailableReplicas

整数

此 ThanosRuler 部署目标且不可用的 Pod 总数。

updatedReplicas

整数

此 ThanosRuler 部署目标且具有所需版本规范的未终止 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/thanosrulers

    • GET:列出 ThanosRuler 类型的对象

  • /apis/monitoring.coreos.com/v1/namespaces/{namespace}/thanosrulers

    • DELETE:删除 ThanosRuler 的集合

    • GET:列出 ThanosRuler 类型的对象

    • POST:创建一个 ThanosRuler

  • /apis/monitoring.coreos.com/v1/namespaces/{namespace}/thanosrulers/{name}

    • DELETE:删除一个 ThanosRuler

    • GET:读取指定的 ThanosRuler

    • PATCH:部分更新指定的 ThanosRuler

    • PUT:替换指定的 ThanosRuler

  • /apis/monitoring.coreos.com/v1/namespaces/{namespace}/thanosrulers/{name}/status

    • GET:读取指定 ThanosRuler 的状态

    • PATCH:部分更新指定 ThanosRuler 的状态

    • PUT:替换指定 ThanosRuler 的状态

/apis/monitoring.coreos.com/v1/thanosrulers

HTTP 方法

GET

描述

列出 ThanosRuler 类型的对象

表 1. HTTP 响应
HTTP 代码 响应体

200 - OK

ThanosRulerList 模式

401 - 未授权

/apis/monitoring.coreos.com/v1/namespaces/{namespace}/thanosrulers

HTTP 方法

DELETE

描述

删除 ThanosRuler 的集合

表 2. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出 ThanosRuler 类型的对象

表 3. HTTP 响应
HTTP 代码 响应体

200 - OK

ThanosRulerList 模式

401 - 未授权

HTTP 方法

POST

描述

创建一个 ThanosRuler

表 4. 查询参数
参数 类型 描述

dryRun

字符串

当存在时,表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理该请求。有效值包括:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求(POST/PUT/PATCH)中包含未知或重复字段的对象。有效值包括:- Ignore:这将忽略任何从对象中静默删除的未知字段,并且只会忽略解码器遇到的最后一个重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应头发送警告,提示从对象中删除的每个未知字段,以及遇到的每个重复字段。如果没有其他错误,请求仍然会成功,并且只会持久化任何重复字段的最后一个。这是 v1.23+ 中的默认设置 - Strict:如果任何未知字段会从对象中删除,或者如果存在任何重复字段,这将导致请求失败并显示 BadRequest 错误。服务器返回的错误将包含所有遇到的未知和重复字段。

表 5. 请求体参数
参数 类型 描述

body

ThanosRuler 模式

表 6. HTTP 响应
HTTP 代码 响应体

200 - OK

ThanosRuler 模式

201 - 已创建

ThanosRuler 模式

202 - 已接受

ThanosRuler 模式

401 - 未授权

/apis/monitoring.coreos.com/v1/namespaces/{namespace}/thanosrulers/{name}

表 7. 全局路径参数
参数 类型 描述

name

字符串

ThanosRuler 的名称

HTTP 方法

DELETE

描述

删除一个 ThanosRuler

表 8. 查询参数
参数 类型 描述

dryRun

字符串

当存在时,表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理该请求。有效值包括:- All:将处理所有 dry run 阶段

表 9. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 ThanosRuler

表 10. HTTP 响应
HTTP 代码 响应体

200 - OK

ThanosRuler 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 ThanosRuler

表 11. 查询参数
参数 类型 描述

dryRun

字符串

当存在时,表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理该请求。有效值包括:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求(POST/PUT/PATCH)中包含未知或重复字段的对象。有效值包括:- Ignore:这将忽略任何从对象中静默删除的未知字段,并且只会忽略解码器遇到的最后一个重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应头发送警告,提示从对象中删除的每个未知字段,以及遇到的每个重复字段。如果没有其他错误,请求仍然会成功,并且只会持久化任何重复字段的最后一个。这是 v1.23+ 中的默认设置 - Strict:如果任何未知字段会从对象中删除,或者如果存在任何重复字段,这将导致请求失败并显示 BadRequest 错误。服务器返回的错误将包含所有遇到的未知和重复字段。

表 12. HTTP 响应
HTTP 代码 响应体

200 - OK

ThanosRuler 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 ThanosRuler

表 13. 查询参数
参数 类型 描述

dryRun

字符串

当存在时,表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理该请求。有效值包括:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求(POST/PUT/PATCH)中包含未知或重复字段的对象。有效值包括:- Ignore:这将忽略任何从对象中静默删除的未知字段,并且只会忽略解码器遇到的最后一个重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应头发送警告,提示从对象中删除的每个未知字段,以及遇到的每个重复字段。如果没有其他错误,请求仍然会成功,并且只会持久化任何重复字段的最后一个。这是 v1.23+ 中的默认设置 - Strict:如果任何未知字段会从对象中删除,或者如果存在任何重复字段,这将导致请求失败并显示 BadRequest 错误。服务器返回的错误将包含所有遇到的未知和重复字段。

表 14. 请求体参数
参数 类型 描述

body

ThanosRuler 模式

表 15. HTTP 响应
HTTP 代码 响应体

200 - OK

ThanosRuler 模式

201 - 已创建

ThanosRuler 模式

401 - 未授权

/apis/monitoring.coreos.com/v1/namespaces/{namespace}/thanosrulers/{name}/status

表 16. 全局路径参数
参数 类型 描述

name

字符串

ThanosRuler 的名称

HTTP 方法

GET

描述

读取指定 ThanosRuler 的状态

表 17. HTTP 响应
HTTP 代码 响应体

200 - OK

ThanosRuler 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定 ThanosRuler 的状态

表 18. 查询参数
参数 类型 描述

dryRun

字符串

当存在时,表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理该请求。有效值包括:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求(POST/PUT/PATCH)中包含未知或重复字段的对象。有效值包括:- Ignore:这将忽略任何从对象中静默删除的未知字段,并且只会忽略解码器遇到的最后一个重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应头发送警告,提示从对象中删除的每个未知字段,以及遇到的每个重复字段。如果没有其他错误,请求仍然会成功,并且只会持久化任何重复字段的最后一个。这是 v1.23+ 中的默认设置 - Strict:如果任何未知字段会从对象中删除,或者如果存在任何重复字段,这将导致请求失败并显示 BadRequest 错误。服务器返回的错误将包含所有遇到的未知和重复字段。

表 19. HTTP 响应
HTTP 代码 响应体

200 - OK

ThanosRuler 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定 ThanosRuler 的状态

表 20. 查询参数
参数 类型 描述

dryRun

字符串

当存在时,表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理该请求。有效值包括:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求(POST/PUT/PATCH)中包含未知或重复字段的对象。有效值包括:- Ignore:这将忽略任何从对象中静默删除的未知字段,并且只会忽略解码器遇到的最后一个重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应头发送警告,提示从对象中删除的每个未知字段,以及遇到的每个重复字段。如果没有其他错误,请求仍然会成功,并且只会持久化任何重复字段的最后一个。这是 v1.23+ 中的默认设置 - Strict:如果任何未知字段会从对象中删除,或者如果存在任何重复字段,这将导致请求失败并显示 BadRequest 错误。服务器返回的错误将包含所有遇到的未知和重复字段。

表 21. 请求体参数
参数 类型 描述

body

ThanosRuler 模式

表 22. HTTP 响应
HTTP 代码 响应体

200 - OK

ThanosRuler 模式

201 - 已创建

ThanosRuler 模式

401 - 未授权