×
描述

订阅通过跟踪目录的更改来保持运营商的最新状态。

类型

对象

必需
  • 元数据

  • 规范

规范

属性 类型 描述

apiVersion

字符串

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

kind

字符串

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

元数据

ObjectMeta

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

规范

对象

SubscriptionSpec 定义了可以安装的应用程序

状态

对象

.spec

描述

SubscriptionSpec 定义了可以安装的应用程序

类型

对象

必需
  • 名称

  • 来源

  • 源命名空间

属性 类型 描述

通道

字符串

配置

对象

SubscriptionConfig 包含为订阅指定的配置。

安装计划审批

字符串

Approval 是安装计划的用户审批策略。它必须是“自动”或“手动”之一。

名称

字符串

来源

字符串

源命名空间

字符串

起始CSV

字符串

.spec.config

描述

SubscriptionConfig 包含为订阅指定的配置。

类型

对象

属性 类型 描述

亲和性

对象

如果指定,则覆盖 pod 的调度约束。nil 子属性将**不会**覆盖 pod.spec 中这些子属性的原始值。使用空对象({}) 来擦除原始子属性值。

注释

对象(字符串)

Annotations 是一个无结构的键值映射,存储在 Operator 中的每个 Deployment、Pod、APIService 中。通常,注释可以由外部工具设置以存储和检索任意元数据。使用此字段预定义 OLM 应添加到每个 Subscription 的部署、pod 和 apiservices 的注释。

环境变量

数组

Env 是要在容器中设置的环境变量列表。不能更新。

env[]

对象

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

envFrom

数组

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

envFrom[]

对象

EnvFromSource 表示一组 ConfigMap 的来源。

nodeSelector

对象(字符串)

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

resources

对象

Resources 表示此容器所需的计算资源。不可变。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-compute-resources-container/

selector

对象

Selector 是要配置的 Pod 的标签选择器。其 Pod 由此选择器选择的现有 ReplicaSets 将受到此部署的影响。它必须与 Pod 模板的标签匹配。

tolerations

数组

Tolerations 是 Pod 的容忍度。

tolerations[]

对象

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

volumeMounts

数组

要在容器中设置的 VolumeMounts 列表。

volumeMounts[]

对象

VolumeMount 描述了在容器内挂载 Volume 的方式。

volumes

数组

要在 podSpec 中设置的 Volumes 列表。

volumes[]

对象

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

.spec.config.affinity

描述

如果指定,则覆盖 pod 的调度约束。nil 子属性将**不会**覆盖 pod.spec 中这些子属性的原始值。使用空对象({}) 来擦除原始子属性值。

类型

对象

属性 类型 描述

nodeAffinity

对象

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

podAffinity

对象

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

podAntiAffinity

对象

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

.spec.config.affinity.nodeAffinity

描述

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

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

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

preferredDuringSchedulingIgnoredDuringExecution[]

对象

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

requiredDuringSchedulingIgnoredDuringExecution

对象

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

.spec.config.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.config.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • preference

  • weight

属性 类型 描述

preference

对象

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

weight

integer

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

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

matchFields

数组

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

matchFields[]

对象

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

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

values

array (string)

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

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

values

array (string)

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

.spec.config.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

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

类型

对象

必需
  • nodeSelectorTerms

属性 类型 描述

nodeSelectorTerms

数组

必需。节点选择器项列表。这些项是 OR 运算。

nodeSelectorTerms[]

对象

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

.spec.config.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms

描述

必需。节点选择器项列表。这些项是 OR 运算。

类型

数组

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

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

matchFields

数组

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

matchFields[]

对象

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

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

values

array (string)

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

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

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

选择器应用到的标签键。

operator

字符串

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

values

array (string)

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

.spec.config.affinity.podAffinity

描述

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

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

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

preferredDuringSchedulingIgnoredDuringExecution[]

对象

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

requiredDuringSchedulingIgnoredDuringExecution

数组

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

requiredDuringSchedulingIgnoredDuringExecution[]

对象

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

.spec.config.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.config.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • podAffinityTerm

  • weight

属性 类型 描述

podAffinityTerm

对象

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

weight

integer

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

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

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

对象

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

matchLabelKeys

array (string)

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

mismatchLabelKeys

array (string)

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

namespaceSelector

对象

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

namespaces

array (string)

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

topologyKey

字符串

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

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

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

描述

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

类型

数组

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

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器适用的标签键。

operator

字符串

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

values

array (string)

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

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

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

描述

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

类型

数组

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

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器适用的标签键。

operator

字符串

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

values

array (string)

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

.spec.config.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.config.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

对象

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

matchLabelKeys

array (string)

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

mismatchLabelKeys

array (string)

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

namespaceSelector

对象

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

namespaces

array (string)

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

topologyKey

字符串

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

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

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

描述

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

类型

数组

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

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器适用的标签键。

operator

字符串

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

values

array (string)

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

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

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

描述

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

类型

数组

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

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器适用的标签键。

operator

字符串

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

values

array (string)

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

.spec.config.affinity.podAntiAffinity

描述

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

类型

对象

属性 类型 描述

preferredDuringSchedulingIgnoredDuringExecution

数组

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

preferredDuringSchedulingIgnoredDuringExecution[]

对象

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

requiredDuringSchedulingIgnoredDuringExecution

数组

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

requiredDuringSchedulingIgnoredDuringExecution[]

对象

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

.spec.config.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.config.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • podAffinityTerm

  • weight

属性 类型 描述

podAffinityTerm

对象

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

weight

integer

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

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

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

对象

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

matchLabelKeys

array (string)

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

mismatchLabelKeys

array (string)

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

namespaceSelector

对象

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

namespaces

array (string)

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

topologyKey

字符串

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

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

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

描述

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

类型

数组

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

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器适用的标签键。

operator

字符串

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

values

array (string)

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

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

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

描述

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

类型

数组

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

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器适用的标签键。

operator

字符串

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

values

array (string)

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

.spec.config.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution

描述

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

类型

数组

.spec.config.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution[]

描述

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

类型

对象

必需
  • topologyKey

属性 类型 描述

labelSelector

对象

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

matchLabelKeys

array (string)

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

mismatchLabelKeys

array (string)

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

namespaceSelector

对象

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

namespaces

array (string)

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

topologyKey

字符串

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

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

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

描述

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

类型

数组

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

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器适用的标签键。

operator

字符串

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

values

array (string)

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

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

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

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

描述

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

类型

数组

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

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器适用的标签键。

operator

字符串

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

values

array (string)

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

.spec.config.env

描述

Env 是要在容器中设置的环境变量列表。不能更新。

类型

数组

.spec.config.env[]

描述

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

类型

对象

必需
  • 名称

属性 类型 描述

名称

字符串

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

字符串

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

值来源

对象

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

.spec.config.env[].valueFrom

描述

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

类型

对象

属性 类型 描述

configMapKeyRef

对象

选择 ConfigMap 的键。

fieldRef

对象

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

resourceFieldRef

对象

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

secretKeyRef

对象

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

.spec.config.env[].valueFrom.configMapKeyRef

描述

选择 ConfigMap 的键。

类型

对象

必需
  • key

属性 类型 描述

key

字符串

要选择的键。

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.env[].valueFrom.fieldRef

描述

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

类型

对象

必需
  • 字段路径

属性 类型 描述

apiVersion

字符串

FieldPath 所依据的模式版本,默认为“v1”。

字段路径

字符串

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

.spec.config.env[].valueFrom.resourceFieldRef

描述

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

类型

对象

必需
  • 资源

属性 类型 描述

容器名称

字符串

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

除数

整数或字符串

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

资源

字符串

必需:要选择的资源

.spec.config.env[].valueFrom.secretKeyRef

描述

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

类型

对象

必需
  • key

属性 类型 描述

key

字符串

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.envFrom

描述

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

类型

数组

.spec.config.envFrom[]

描述

EnvFromSource 表示一组 ConfigMap 的来源。

类型

对象

属性 类型 描述

configMapRef

对象

要从中选择的 ConfigMap

前缀

字符串

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

secretRef

对象

要从中选择的 Secret

.spec.config.envFrom[].configMapRef

描述

要从中选择的 ConfigMap

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.envFrom[].secretRef

描述

要从中选择的 Secret

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.resources

描述

Resources 表示此容器所需的计算资源。不可变。更多信息:https://kubernetes.ac.cn/docs/concepts/configuration/manage-compute-resources-container/

类型

对象

属性 类型 描述

声明

数组

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

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

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

claims[]

对象

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

限制

整数或字符串

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

请求

整数或字符串

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

.spec.config.resources.claims

描述

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

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

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

类型

数组

.spec.config.resources.claims[]

描述

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

类型

对象

必需
  • 名称

属性 类型 描述

名称

字符串

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

.spec.config.selector

描述

Selector 是要配置的 Pod 的标签选择器。其 Pod 由此选择器选择的现有 ReplicaSets 将受到此部署的影响。它必须与 Pod 模板的标签匹配。

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

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

.spec.config.selector.matchExpressions

描述

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

类型

数组

.spec.config.selector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器适用的标签键。

operator

字符串

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

values

array (string)

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

.spec.config.tolerations

描述

Tolerations 是 Pod 的容忍度。

类型

数组

.spec.config.tolerations[]

描述

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

类型

对象

属性 类型 描述

effect

字符串

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

key

字符串

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

operator

字符串

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

tolerationSeconds

integer

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

字符串

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

.spec.config.volumeMounts

描述

要在容器中设置的 VolumeMounts 列表。

类型

数组

.spec.config.volumeMounts[]

描述

VolumeMount 描述了在容器内挂载 Volume 的方式。

类型

对象

必需
  • mountPath

  • 名称

属性 类型 描述

mountPath

字符串

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

mountPropagation

字符串

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

名称

字符串

这必须与卷的名称匹配。

readOnly

布尔值

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

recursiveReadOnly

字符串

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

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

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

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

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

subPath

字符串

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

subPathExpr

字符串

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

.spec.config.volumes

描述

要在 podSpec 中设置的 Volumes 列表。

类型

数组

.spec.config.volumes[]

描述

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

类型

对象

必需
  • 名称

属性 类型 描述

awsElasticBlockStore

对象

awsElasticBlockStore 表示附加到 kubelet 主机然后公开给 Pod 的 AWS 磁盘资源。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

azureDisk

对象

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

azureFile

对象

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

cephfs

对象

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

cinder

对象

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

configMap

对象

configMap 表示应填充此卷的 configMap。

csi

对象

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

downwardAPI

对象

downwardAPI 表示应填充此卷的关于 Pod 的向下 API。

emptyDir

对象

emptyDir 表示共享 Pod 生命周期的临时目录。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#emptydir

ephemeral

对象

ephemeral 表示由集群存储驱动程序处理的卷。卷的生命周期与其定义它的 Pod 绑定 - 它将在 Pod 启动前创建,并在 Pod 删除时删除。

如果满足以下条件,请使用此方法:a) 卷仅在 Pod 运行时需要;b) 需要普通卷的功能,例如从快照恢复或容量跟踪;c) 通过存储类指定存储驱动程序;d) 存储驱动程序支持通过 PersistentVolumeClaim 进行动态卷预配(有关此卷类型和 PersistentVolumeClaim 之间连接的更多信息,请参阅 EphemeralVolumeSource)。

对于比单个 Pod 的生命周期更长的卷,请使用 PersistentVolumeClaim 或其中一个供应商特定的 API。

如果 CSI 驱动程序旨在以这种方式使用,请使用 CSI 来实现轻量级本地短暂卷 - 有关更多信息,请参阅驱动程序的文档。

Pod 可以同时使用这两种类型的短暂卷和持久卷。

fc

对象

fc 表示附加到 kubelet 主机然后公开给 Pod 的 Fibre Channel 资源。

flexVolume

对象

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

flocker

对象

flocker 表示附加到 kubelet 主机的 Flocker 卷。这取决于 Flocker 控制服务的运行。

gcePersistentDisk

对象

gcePersistentDisk 表示附加到 kubelet 主机然后公开给 Pod 的 GCE 磁盘资源。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

gitRepo

对象

gitRepo 表示特定修订版本下的 git 存储库。已弃用:GitRepo 已弃用。要使用 git 存储库来预配容器,请将 EmptyDir 挂载到 InitContainer 中,该容器使用 git 克隆存储库,然后将 EmptyDir 挂载到 Pod 的容器中。

glusterfs

对象

glusterfs 表示主机上共享 Pod 生命周期的 Glusterfs 挂载。更多信息:https://examples.k8s.io/volumes/glusterfs/README.md

hostPath

对象

hostPath 表示主机上预先存在的直接公开给容器的文件或目录。这通常用于允许查看主机机的系统代理或其他特权内容。大多数容器不需要此功能。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) 我们需要限制谁可以使用主机目录挂载以及谁可以/不可以将主机目录挂载为读/写。

iscsi

对象

iscsi 代表连接到 kubelet 主机然后暴露给 Pod 的 ISCSI 磁盘资源。更多信息:https://examples.k8s.io/volumes/iscsi/README.md

名称

字符串

卷的名称。必须是 DNS_LABEL 并且在 Pod 内唯一。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

nfs

对象

nfs 代表主机上与 Pod 生命周期共享的 NFS 挂载点。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#nfs

persistentVolumeClaim

对象

persistentVolumeClaimVolumeSource 代表对同一命名空间中 PersistentVolumeClaim 的引用。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

photonPersistentDisk

对象

photonPersistentDisk 代表连接到并挂载在 kubelet 主机上的 PhotonController 永久性磁盘。

portworxVolume

对象

portworxVolume 代表连接到并挂载在 kubelet 主机上的 Portworx 卷。

projected

对象

所有一体化资源(密钥、配置映射和向下 API)的投影项。

quobyte

对象

quobyte 代表主机上与 Pod 生命周期共享的 Quobyte 挂载点。

rbd

对象

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

scaleIO

对象

scaleIO 代表连接到并挂载在 Kubernetes 节点上的 ScaleIO 永久性卷。

secret

对象

secret 代表应该填充此卷的密钥。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#secret

storageos

对象

storageOS 代表连接到并挂载在 Kubernetes 节点上的 StorageOS 卷。

vsphereVolume

对象

vsphereVolume 代表连接到并挂载在 kubelet 主机上的 vSphere 卷。

.spec.config.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

integer

partition 是您要挂载的卷中的分区。如果省略,则默认按卷名挂载。例如:对于卷 /dev/sda1,您将分区指定为“1”。类似地,/dev/sda 的卷分区为“0”(或者您可以保留属性为空)。

readOnly

布尔值

readOnly 值 true 将强制执行 VolumeMounts 中的 readOnly 设置。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

volumeID

字符串

volumeID 是 AWS 中持久性磁盘资源的唯一 ID(Amazon EBS 卷)。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

.spec.config.volumes[].azureDisk

描述

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

类型

对象

必需
  • diskName

  • diskURI

属性 类型 描述

cachingMode

字符串

cachingMode 是主机缓存模式:无、只读、读写。

diskName

字符串

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

diskURI

字符串

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

fsType

字符串

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

kind

字符串

kind 预期值为 Shared:每个存储帐户多个 Blob 磁盘 Dedicated:每个存储帐户单个 Blob 磁盘 Managed:Azure 托管数据磁盘(仅在托管可用性集中)。默认为 shared

readOnly

布尔值

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

.spec.config.volumes[].azureFile

描述

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

类型

对象

必需
  • secretName

  • shareName

属性 类型 描述

readOnly

布尔值

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

secretName

字符串

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

shareName

字符串

shareName 是 Azure 共享名称。

.spec.config.volumes[].cephfs

描述

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

类型

对象

必需
  • monitors

属性 类型 描述

monitors

array (string)

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

path

字符串

path 是可选的:用作已挂载的根目录,而不是完整的 Ceph 树,默认为 /

readOnly

布尔值

readOnly 是可选的:默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

secretFile

字符串

secretFile 是可选的:SecretFile 是用户密钥环的路径,默认为 /etc/ceph/user.secret。更多信息:https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it

secretRef

对象

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

user

字符串

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

.spec.config.volumes[].cephfs.secretRef

描述

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

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.volumes[].cinder

描述

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

类型

对象

必需
  • volumeID

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如:“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

readOnly

布尔值

readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制执行 VolumeMounts 中的 ReadOnly 设置。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

secretRef

对象

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

volumeID

字符串

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

.spec.config.volumes[].cinder.secretRef

描述

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

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.volumes[].configMap

描述

configMap 表示应填充此卷的 configMap。

类型

对象

属性 类型 描述

defaultMode

integer

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

items

数组

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

items[]

对象

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.volumes[].configMap.items

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key是要投影的键。

mode

integer

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

path

字符串

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

.spec.config.volumes[].csi

描述

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

类型

对象

必需
  • driver

属性 类型 描述

driver

字符串

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

fsType

字符串

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

nodePublishSecretRef

对象

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

readOnly

布尔值

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

volumeAttributes

对象(字符串)

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

.spec.config.volumes[].csi.nodePublishSecretRef

描述

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

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.volumes[].downwardAPI

描述

downwardAPI 表示应填充此卷的关于 Pod 的向下 API。

类型

对象

属性 类型 描述

defaultMode

integer

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

items

数组

Items 是向下 API 卷文件的列表

items[]

对象

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

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

描述

Items 是向下 API 卷文件的列表

类型

数组

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

描述

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

类型

对象

必需
  • path

属性 类型 描述

fieldRef

对象

必需:选择 pod 的字段:仅支持注释、标签、名称、命名空间和 uid。

mode

integer

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

path

字符串

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

resourceFieldRef

对象

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

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

描述

必需:选择 pod 的字段:仅支持注释、标签、名称、命名空间和 uid。

类型

对象

必需
  • 字段路径

属性 类型 描述

apiVersion

字符串

FieldPath 所依据的模式版本,默认为“v1”。

字段路径

字符串

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

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

描述

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

类型

对象

必需
  • 资源

属性 类型 描述

容器名称

字符串

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

除数

整数或字符串

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

资源

字符串

必需:要选择的资源

.spec.config.volumes[].emptyDir

描述

emptyDir 表示共享 Pod 生命周期的临时目录。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#emptydir

类型

对象

属性 类型 描述

medium

字符串

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

sizeLimit

整数或字符串

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

.spec.config.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。通常不需要这样做,但在手动重建损坏的集群时可能很有用。

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

必需,不能为 nil。

.spec.config.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。通常不需要这样做,但在手动重建损坏的集群时可能很有用。

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

必需,不能为 nil。

类型

对象

必需
  • 规范

属性 类型 描述

元数据

对象

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

规范

对象

持久化卷声明 (PersistentVolumeClaim) 的规范。整个内容将原封不动地复制到由此模板创建的 PVC 中。持久化卷声明中的相同字段在此处也适用。

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

描述

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

类型

对象

.spec.config.volumes[].ephemeral.volumeClaimTemplate.spec

描述

持久化卷声明 (PersistentVolumeClaim) 的规范。整个内容将原封不动地复制到由此模板创建的 PVC 中。持久化卷声明中的相同字段在此处也适用。

类型

对象

属性 类型 描述

accessModes

array (string)

accessModes 包含卷应具有的所需访问模式。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#access-modes-1

dataSource

对象

dataSource 字段可用于指定:* 现有的卷快照对象 (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 的 namespace 字段需要启用 CrossNamespaceVolumeDataSource 功能门。

resources

对象

resources 表示卷应具有的最小资源。如果启用了 RecoverVolumeExpansionFailure 功能,则允许用户指定低于先前值的资源需求,但仍必须高于在声明的状态字段中记录的容量。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#resources

selector

对象

selector 是对要考虑用于绑定的卷的标签查询。

storageClassName

字符串

storageClassName 是声明所需的 StorageClass 的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#class-1

volumeAttributesClassName

字符串

volumeAttributesClassName 可用于设置此声明使用的 VolumeAttributesClass。如果指定,CSI 驱动程序将使用相应 VolumeAttributesClass 中定义的属性创建或更新卷。这与 storageClassName 的用途不同,可以在创建声明后更改它。空字符串值表示不会将任何 VolumeAttributesClass 应用于声明,但一旦设置,就不允许将此字段重置为空字符串。如果未指定且 PersistentVolumeClaim 未绑定,则如果存在,持久化卷控制器将设置默认的 VolumeAttributesClass。如果 volumeAttributesClass 引用的资源不存在,则此 PersistentVolumeClaim 将设置为 Pending 状态(如 modifyVolumeStatus 字段所示),直到此类资源存在。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volume-attributes-classes/(Alpha)使用此字段需要启用 VolumeAttributesClass 功能门。

volumeMode

字符串

volumeMode 定义声明所需的卷类型。如果未包含在声明规范中,则隐含 Filesystem 值。

volumeName

字符串

volumeName 是对支持此声明的 PersistentVolume 的绑定引用。

.spec.config.volumes[].ephemeral.volumeClaimTemplate.spec.dataSource

描述

dataSource 字段可用于指定:* 现有的卷快照对象 (snapshot.storage.k8s.io/VolumeSnapshot) * 现有的 PVC (PersistentVolumeClaim) 如果提供程序或外部控制器可以支持指定的數據源,它将基于指定数据源的内容创建一个新卷。启用 AnyVolumeDataSource 功能门后,dataSource 内容将复制到 dataSourceRef,并且当未指定 dataSourceRef.namespace 时,dataSourceRef 内容将复制到 dataSource。如果指定了命名空间,则 dataSourceRef 不会复制到 dataSource。

类型

对象

必需
  • kind

  • 名称

属性 类型 描述

apiGroup

字符串

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

kind

字符串

Kind 是被引用的资源类型

名称

字符串

Name 是被引用的资源名称

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

描述

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

类型

对象

必需
  • kind

  • 名称

属性 类型 描述

apiGroup

字符串

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

kind

字符串

Kind 是被引用的资源类型

名称

字符串

Name 是被引用的资源名称

namespace

字符串

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

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

描述

resources 表示卷应具有的最小资源。如果启用了 RecoverVolumeExpansionFailure 功能,则允许用户指定低于先前值的资源需求,但仍必须高于在声明的状态字段中记录的容量。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/persistent-volumes#resources

类型

对象

属性 类型 描述

限制

整数或字符串

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

请求

整数或字符串

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

.spec.config.volumes[].ephemeral.volumeClaimTemplate.spec.selector

描述

selector 是对要考虑用于绑定的卷的标签查询。

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

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

.spec.config.volumes[].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions

描述

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

类型

数组

.spec.config.volumes[].ephemeral.volumeClaimTemplate.spec.selector.matchExpressions[]

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器适用的标签键。

operator

字符串

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

values

array (string)

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

.spec.config.volumes[].fc

描述

fc 表示附加到 kubelet 主机然后公开给 Pod 的 Fibre Channel 资源。

类型

对象

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如,“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。待办事项:我们如何防止文件系统中的错误影响机器

lun

integer

lun 是可选的:FC 目标 LUN 编号

readOnly

布尔值

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

targetWWNs

array (string)

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

wwids

array (string)

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

.spec.config.volumes[].flexVolume

描述

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

类型

对象

必需
  • driver

属性 类型 描述

driver

字符串

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

fsType

字符串

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

options

对象(字符串)

options 是可选的:此字段保存任何额外的命令选项。

readOnly

布尔值

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

secretRef

对象

secretRef 是可选的:secretRef 是对包含要传递到插件脚本的敏感信息的 secret 对象的引用。如果没有指定 secret 对象,则此字段可以为空。如果 secret 对象包含多个 secret,则所有 secret 都将传递到插件脚本。

.spec.config.volumes[].flexVolume.secretRef

描述

secretRef 是可选的:secretRef 是对包含要传递到插件脚本的敏感信息的 secret 对象的引用。如果没有指定 secret 对象,则此字段可以为空。如果 secret 对象包含多个 secret,则所有 secret 都将传递到插件脚本。

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.volumes[].flocker

描述

flocker 表示附加到 kubelet 主机的 Flocker 卷。这取决于 Flocker 控制服务的运行。

类型

对象

属性 类型 描述

datasetName

字符串

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

datasetUUID

字符串

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

.spec.config.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 待办事项:我们如何防止文件系统错误影响机器

partition

integer

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

描述

gitRepo 表示特定修订版本下的 git 存储库。已弃用:GitRepo 已弃用。要使用 git 存储库来预配容器,请将 EmptyDir 挂载到 InitContainer 中,该容器使用 git 克隆存储库,然后将 EmptyDir 挂载到 Pod 的容器中。

类型

对象

必需
  • repository

属性 类型 描述

directory

字符串

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

repository

字符串

repository 是 URL

revision

字符串

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

.spec.config.volumes[].glusterfs

描述

glusterfs 表示主机上共享 Pod 生命周期的 Glusterfs 挂载。更多信息: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.config.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

type

字符串

HostPath 卷的类型,默认为 ""。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#hostpath

.spec.config.volumes[].iscsi

描述

iscsi 代表连接到 kubelet 主机然后暴露给 Pod 的 ISCSI 磁盘资源。更多信息:https://examples.k8s.io/volumes/iscsi/README.md

类型

对象

必需
  • iqn

  • lun

  • targetPortal

属性 类型 描述

chapAuthDiscovery

布尔值

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

chapAuthSession

布尔值

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

fsType

字符串

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

initiatorName

字符串

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

iqn

字符串

iqn 是目标 iSCSI 限定名称。

iscsiInterface

字符串

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

lun

integer

lun 代表 iSCSI 目标 LUN 号。

portals

array (string)

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

readOnly

布尔值

readOnly 将强制在 VolumeMounts 中设置 ReadOnly。默认为 false。

secretRef

对象

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

targetPortal

字符串

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

.spec.config.volumes[].iscsi.secretRef

描述

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

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.volumes[].nfs

描述

nfs 代表主机上与 Pod 生命周期共享的 NFS 挂载点。更多信息: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.config.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.config.volumes[].photonPersistentDisk

描述

photonPersistentDisk 代表连接到并挂载在 kubelet 主机上的 PhotonController 永久性磁盘。

类型

对象

必需
  • pdID

属性 类型 描述

fsType

字符串

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

pdID

字符串

pdID 是标识 Photon Controller 持久磁盘的 ID。

.spec.config.volumes[].portworxVolume

描述

portworxVolume 代表连接到并挂载在 kubelet 主机上的 Portworx 卷。

类型

对象

必需
  • volumeID

属性 类型 描述

fsType

字符串

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

readOnly

布尔值

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

volumeID

字符串

volumeID 唯一标识 Portworx 卷。

.spec.config.volumes[].projected

描述

所有一体化资源(密钥、配置映射和向下 API)的投影项。

类型

对象

属性 类型 描述

defaultMode

integer

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

sources

数组

sources 是卷投影的列表。

sources[]

对象

可以与其他受支持的卷类型一起投影的投影。

.spec.config.volumes[].projected.sources

描述

sources 是卷投影的列表。

类型

数组

.spec.config.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.config.volumes[].projected.sources[].clusterTrustBundle

描述

ClusterTrustBundle 允许 Pod 访问 ClusterTrustBundle 对象的.spec.trustBundle字段中的自动更新文件。

Alpha 版本,受 ClusterTrustBundleProjection 功能网关控制。

ClusterTrustBundle 对象可以通过名称选择,也可以通过签名者名称和标签选择器的组合选择。

Kubelet 会积极规范写入 pod 文件系统中的 PEM 内容。它会去除 PEM 的一些特殊特性,例如块间注释和块头。证书会去重。文件中证书的顺序是任意的,Kubelet 可能会随着时间的推移改变顺序。

类型

对象

必需
  • path

属性 类型 描述

labelSelector

对象

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

名称

字符串

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

可选

布尔值

如果为 true,则如果引用的 ClusterTrustBundle(s) 不可用,则不会阻止 pod 启动。如果使用名称,则允许指定的 ClusterTrustBundle 不存在。如果使用 signerName,则允许 signerName 和 labelSelector 的组合匹配零个 ClusterTrustBundles。

path

字符串

从卷根目录到写入 bundle 的相对路径。

signerName

字符串

选择所有与该签名者名称匹配的 ClusterTrustBundles。与 name 互斥。所有选定的 ClusterTrustBundles 的内容将被统一和去重。

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

描述

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

类型

对象

属性 类型 描述

matchExpressions

数组

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

matchExpressions[]

对象

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

matchLabels

对象(字符串)

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

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

描述

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

类型

数组

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

描述

标签选择器要求是一个包含值、键和将键和值关联起来的操作符的选择器。

类型

对象

必需
  • key

  • operator

属性 类型 描述

key

字符串

key 是选择器适用的标签键。

operator

字符串

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

values

array (string)

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

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

描述

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

类型

对象

属性 类型 描述

items

数组

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

items[]

对象

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.volumes[].projected.sources[].configMap.items

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key是要投影的键。

mode

integer

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

path

字符串

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

.spec.config.volumes[].projected.sources[].downwardAPI

描述

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

类型

对象

属性 类型 描述

items

数组

Items 是 DownwardAPIVolume 文件的列表

items[]

对象

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

.spec.config.volumes[].projected.sources[].downwardAPI.items

描述

Items 是 DownwardAPIVolume 文件的列表

类型

数组

.spec.config.volumes[].projected.sources[].downwardAPI.items[]

描述

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

类型

对象

必需
  • path

属性 类型 描述

fieldRef

对象

必需:选择 pod 的字段:仅支持注释、标签、名称、命名空间和 uid。

mode

integer

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

path

字符串

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

resourceFieldRef

对象

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

.spec.config.volumes[].projected.sources[].downwardAPI.items[].fieldRef

描述

必需:选择 pod 的字段:仅支持注释、标签、名称、命名空间和 uid。

类型

对象

必需
  • 字段路径

属性 类型 描述

apiVersion

字符串

FieldPath 所依据的模式版本,默认为“v1”。

字段路径

字符串

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

.spec.config.volumes[].projected.sources[].downwardAPI.items[].resourceFieldRef

描述

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

类型

对象

必需
  • 资源

属性 类型 描述

容器名称

字符串

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

除数

整数或字符串

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

资源

字符串

必需:要选择的资源

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

描述

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

类型

对象

属性 类型 描述

items

数组

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

items[]

对象

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

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.volumes[].projected.sources[].secret.items

描述

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

类型

数组

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

描述

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

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key是要投影的键。

mode

integer

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

path

字符串

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

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

描述

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

类型

对象

必需
  • path

属性 类型 描述

audience

字符串

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

expirationSeconds

integer

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

path

字符串

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

.spec.config.volumes[].quobyte

描述

quobyte 代表主机上与 Pod 生命周期共享的 Quobyte 挂载点。

类型

对象

必需
  • registry

  • volume

属性 类型 描述

group

字符串

将卷访问权限映射到的组。默认为无组。

readOnly

布尔值

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

registry

字符串

registry 表示一个或多个 Quobyte Registry 服务,指定为字符串,格式为 host:port 对(多个条目用逗号分隔),作为卷的中央注册表。

tenant

字符串

后端中拥有给定 Quobyte 卷的租户。与动态配置的 Quobyte 卷一起使用,值由插件设置。

user

字符串

将卷访问权限映射到的用户。默认为服务帐户用户。

volume

字符串

volume 是一个字符串,它通过名称引用一个已创建的 Quobyte 卷。

.spec.config.volumes[].rbd

描述

rbd 代表主机上与 Pod 生命周期共享的 Rados 块设备挂载点。更多信息: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

array (string)

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

pool

字符串

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

readOnly

布尔值

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

secretRef

对象

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

user

字符串

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

.spec.config.volumes[].rbd.secretRef

描述

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

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.volumes[].scaleIO

描述

scaleIO 代表连接到并挂载在 Kubernetes 节点上的 ScaleIO 永久性卷。

类型

对象

必需
  • gateway

  • secretRef

  • system

属性 类型 描述

fsType

字符串

fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如“ext4”、“xfs”、“ntfs”。默认为“xfs”。

gateway

字符串

gateway 是 ScaleIO API Gateway 的主机地址。

protectionDomain

字符串

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

readOnly

布尔值

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

secretRef

对象

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

sslEnabled

布尔值

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

storageMode

字符串

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

storagePool

字符串

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

system

字符串

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

volumeName

字符串

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

.spec.config.volumes[].scaleIO.secretRef

描述

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

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.volumes[].secret

描述

secret 代表应该填充此卷的密钥。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#secret

类型

对象

属性 类型 描述

defaultMode

integer

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.config.volumes[].secret.items

描述

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

类型

数组

.spec.config.volumes[].secret.items[]

描述

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

类型

对象

必需
  • key

  • path

属性 类型 描述

key

字符串

key是要投影的键。

mode

integer

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

path

字符串

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

.spec.config.volumes[].storageos

描述

storageOS 代表连接到并挂载在 Kubernetes 节点上的 StorageOS 卷。

类型

对象

属性 类型 描述

fsType

字符串

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

readOnly

布尔值

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

secretRef

对象

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

volumeName

字符串

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

volumeNamespace

字符串

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

.spec.config.volumes[].storageos.secretRef

描述

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

类型

对象

属性 类型 描述

名称

字符串

引用的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎肯定是不正确的。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.config.volumes[].vsphereVolume

描述

vsphereVolume 代表连接到并挂载在 kubelet 主机上的 vSphere 卷。

类型

对象

必需
  • volumePath

属性 类型 描述

fsType

字符串

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

storagePolicyID

字符串

storagePolicyID 与 StoragePolicyName 关联的基于存储策略的管理 (SPBM) 配置文件 ID。

storagePolicyName

字符串

storagePolicyName 是基于存储策略的管理 (SPBM) 配置文件名称。

volumePath

字符串

volumePath 是标识 vSphere 卷 vmdk 的路径。

.status

描述
类型

对象

必需
  • lastUpdated

属性 类型 描述

catalogHealth

数组

CatalogHealth 包含订阅对其相关 CatalogSources 状态的视图。它用于确定与 CatalogSources 相关的 SubscriptionStatusConditions。

catalogHealth[]

对象

SubscriptionCatalogHealth 描述订阅已知的 CatalogSource 的健康状况。

conditions

数组

Conditions 是关于订阅当前状态的最新可用观察结果列表。

conditions[]

对象

SubscriptionCondition 表示订阅状态的最新可用观察结果。

currentCSV

字符串

CurrentCSV 是订阅正在迁移到的 CSV。

installPlanGeneration

integer

InstallPlanGeneration 是安装计划的当前版本。

installPlanRef

对象

InstallPlanRef 是对包含订阅当前 CSV 的最新 InstallPlan 的引用。

installedCSV

字符串

InstalledCSV 是订阅当前安装的 CSV。

installplan

对象

Install 是对为订阅生成的最新 InstallPlan 的引用。已弃用:InstallPlanRef

lastUpdated

字符串

LastUpdated 表示上次更新订阅状态的时间。

reason

字符串

Reason 是订阅转换到其当前状态的原因。

state

字符串

State 表示订阅的当前状态。

.status.catalogHealth

描述

CatalogHealth 包含订阅对其相关 CatalogSources 状态的视图。它用于确定与 CatalogSources 相关的 SubscriptionStatusConditions。

类型

数组

.status.catalogHealth[]

描述

SubscriptionCatalogHealth 描述订阅已知的 CatalogSource 的健康状况。

类型

对象

必需
  • catalogSourceRef

  • healthy

  • lastUpdated

属性 类型 描述

catalogSourceRef

对象

CatalogSourceRef 是对 CatalogSource 的引用。

healthy

布尔值

Healthy 如果 CatalogSource 健康则为 true;否则为 false。

lastUpdated

字符串

LastUpdated 表示 CatalogSourceHealth 上次更改的时间。

.status.catalogHealth[].catalogSourceRef

描述

CatalogSourceRef 是对 CatalogSource 的引用。

类型

对象

属性 类型 描述

apiVersion

字符串

引用的 API 版本。

字段路径

字符串

如果引用的是对象的一部分而不是整个对象,则此字符串应包含有效的 JSON/Go 字段访问语句,例如 desiredState.manifest.containers[2]。例如,如果对象引用是指 pod 内的容器,则其值将类似于:“spec.containers{name}”(其中“name”指的是触发事件的容器的名称)或者如果没有指定容器名称,则为“spec.containers[2]”(此 pod 中索引为 2 的容器)。选择此语法只是为了具有一些定义明确的方式来引用对象的一部分。待办事项:此设计并非最终版本,此字段将来可能会更改。

kind

字符串

引用的 Kind。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

名称

字符串

引用的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

namespace

字符串

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

resourceVersion

字符串

此引用的特定 resourceVersion(如果有)。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

字符串

引用的 UID。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#uids

.status.conditions

描述

Conditions 是关于订阅当前状态的最新可用观察结果列表。

类型

数组

.status.conditions[]

描述

SubscriptionCondition 表示订阅状态的最新可用观察结果。

类型

对象

必需
  • 状态

  • type

属性 类型 描述

lastHeartbeatTime

字符串

LastHeartbeatTime 是我们上次获取给定条件更新的时间。

lastTransitionTime

字符串

LastTransitionTime 是条件从一种状态转换到另一种状态的最后时间。

message

字符串

Message 是一个易于理解的消息,指示有关上次转换的详细信息。

reason

字符串

Reason 是条件上次转换的一个单词驼峰式原因。

状态

字符串

Status 是条件的状态,取值为 True、False、Unknown 之一。

type

字符串

Type 是订阅条件的类型。

.status.installPlanRef

描述

InstallPlanRef 是对包含订阅当前 CSV 的最新 InstallPlan 的引用。

类型

对象

属性 类型 描述

apiVersion

字符串

引用的 API 版本。

字段路径

字符串

如果引用的是对象的一部分而不是整个对象,则此字符串应包含有效的 JSON/Go 字段访问语句,例如 desiredState.manifest.containers[2]。例如,如果对象引用是指 pod 内的容器,则其值将类似于:“spec.containers{name}”(其中“name”指的是触发事件的容器的名称)或者如果没有指定容器名称,则为“spec.containers[2]”(此 pod 中索引为 2 的容器)。选择此语法只是为了具有一些定义明确的方式来引用对象的一部分。待办事项:此设计并非最终版本,此字段将来可能会更改。

kind

字符串

引用的 Kind。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

名称

字符串

引用的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#names

namespace

字符串

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

resourceVersion

字符串

此引用的特定 resourceVersion(如果有)。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

uid

字符串

引用的 UID。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names/#uids

.status.installplan

描述

Install 是对为订阅生成的最新 InstallPlan 的引用。已弃用:InstallPlanRef

类型

对象

必需
  • apiVersion

  • kind

  • 名称

  • uuid

属性 类型 描述

apiVersion

字符串

kind

字符串

名称

字符串

uuid

字符串

UID 是一种保存唯一 ID 值(包括 UUID)的类型。因为我们不只使用 UUID,所以这是一个字符串的别名。作为一个类型,它捕获了意图,并有助于确保 UID 和名称不会混淆。

API 端点

提供以下 API 端点

  • /apis/operators.coreos.com/v1alpha1/subscriptions

    • GET:列出 Subscription 类型的对象。

  • /apis/operators.coreos.com/v1alpha1/namespaces/{namespace}/subscriptions

    • DELETE:删除 Subscription 集合。

    • GET:列出 Subscription 类型的对象。

    • POST:创建一个 Subscription。

  • /apis/operators.coreos.com/v1alpha1/namespaces/{namespace}/subscriptions/{name}

    • DELETE:删除一个 Subscription。

    • GET:读取指定的订阅

    • PATCH:部分更新指定的订阅

    • PUT:替换指定的订阅

  • /apis/operators.coreos.com/v1alpha1/namespaces/{namespace}/subscriptions/{name}/status

    • GET:读取指定订阅的状态

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

    • PUT:替换指定订阅的状态

/apis/operators.coreos.com/v1alpha1/subscriptions

HTTP 方法

GET

描述

列出 Subscription 对象

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

200 - OK

SubscriptionList 模式

401 - 未授权

/apis/operators.coreos.com/v1alpha1/namespaces/{namespace}/subscriptions

HTTP 方法

DELETE

描述

删除 Subscription 集合

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

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出 Subscription 对象

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

200 - OK

SubscriptionList 模式

401 - 未授权

HTTP 方法

POST

描述

创建订阅

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

dryRun

字符串

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

fieldValidation

字符串

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

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

body

Subscription 模式

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

200 - OK

Subscription 模式

201 - 已创建

Subscription 模式

202 - 已接受

Subscription 模式

401 - 未授权

/apis/operators.coreos.com/v1alpha1/namespaces/{namespace}/subscriptions/{name}

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

名称

字符串

Subscription 的名称

HTTP 方法

DELETE

描述

删除订阅

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

dryRun

字符串

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

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

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的订阅

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

200 - OK

Subscription 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的订阅

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

dryRun

字符串

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

fieldValidation

字符串

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

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

200 - OK

Subscription 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的订阅

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

dryRun

字符串

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

fieldValidation

字符串

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

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

body

Subscription 模式

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

200 - OK

Subscription 模式

201 - 已创建

Subscription 模式

401 - 未授权

/apis/operators.coreos.com/v1alpha1/namespaces/{namespace}/subscriptions/{name}/status

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

名称

字符串

Subscription 的名称

HTTP 方法

GET

描述

读取指定订阅的状态

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

200 - OK

Subscription 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定订阅的状态

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

dryRun

字符串

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

fieldValidation

字符串

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

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

200 - OK

Subscription 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定订阅的状态

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

dryRun

字符串

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

fieldValidation

字符串

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

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

body

Subscription 模式

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

200 - OK

Subscription 模式

201 - 已创建

Subscription 模式

401 - 未授权