第 8 章 MachineConfigPool [machineconfiguration.openshift.io/v1]
- 描述
- MachineConfigPool 描述了 MachineConfig 池。兼容性级别 1:在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。
- 类型
-
object
- 必填
-
spec
-
8.1. 规格
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| MachineConfigPoolSpec 是 MachineConfigPool 资源的 spec。 |
|
| MachineConfigPoolStatus 是 MachineConfigPool 资源的状态。 |
8.1.1. .spec
- 描述
- MachineConfigPoolSpec 是 MachineConfigPool 资源的 spec。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 机器配置池的目标 MachineConfig 对象。 |
|
| machineConfigSelector 为 MachineConfig 指定标签选择器。有关标签和选择器的工作方式,请参阅 https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/。 |
|
| maxUnavailable 定义池中可在更新期间不可用的整数或节点百分比。这包括节点因任何原因不可用,包括用户启动的 cordons、故障节点等。默认值为 1。值大于 1 表示更新期间多个节点不可用,这可能会影响您剩余节点上的工作负载压力。您不能将此值设置为 0 以停止更新(它将默认为 1); 要停止更新,请使用 'paused' 属性。排空将尊重 Pod Disruption Budgets (PDB),如 etcd 仲裁保护,即使 maxUnavailable 大于 1。 |
|
| nodeSelector 为机器指定标签选择器 |
|
| paused 指定是否应该停止对此机器配置池的更改。这包括生成新的 desiredMachineConfig 和机器更新。 |
8.1.2. .spec.configuration
- 描述
- 机器配置池的目标 MachineConfig 对象。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 引用的 API 版本。 |
|
| 如果引用的是对象的一部分而非整个对象,则该字符串应包含有效的 JSON/Go 字段访问声明,如 desiredState.manifest.containers[2]。例如,如果对象引用是一个 pod 中的容器,它应该还以下类似: "spec.containers{name}"(其中 "name" 是指触发事件的容器的名称),如果不使用容器名称,则应类似于 "spec.containers[2]"(使用此 pod 中索引值为 2 的容器)。选择这个语法的原因是,为了有一些指向对象部分的正确定义方法。Todo: 这个设计不是最终设计的,且该字段在将来会有所改变。 |
|
| 引用的类型。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
| 引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
|
| 引用的命名空间。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ |
|
| 指定构成这个引用的 resourceVersion(如果存在)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
|
|
source 是用于生成 |
|
| ObjectReference 包含足够信息供您检查或修改引用的对象。--- 不建议使用这个类型,因为在 API 中嵌入时描述其使用情况比较困难。1.忽略的字段。它包括许多通常不符合的字段。例如,ResourceVersion 和 FieldPath 在实际使用量中都非常有效。2.无效的用法帮助。对于单个用途,无法添加特定的帮助。在大多数嵌入式用法中,有特定的限制,"必须只引用类型 A 和 B" 或 "UID not honored" 或 "name be restricted"。嵌入时无法充分描述它们。3.验证不一致。由于使用量不同,因此验证规则因使用情况而异,因此用户很难预测到什么发生情况。4.这些字段既是不精确的,而且是更精确的。kind 不是一个 URL 的确切映射。这可能会在解释过程中产生不确定性,且需要 REST 映射。在大多数情况下,依赖项依赖于组,资源元组,实际 struct 的版本不相关。5.我们不能轻松更改。由于此类型嵌入在多个位置,因此对此类型的更新将影响大量模式。不要使新 API 嵌入在指定的 API 类型下,它们无法控制。不要使用这个类型,而是创建一个本地提供的、使用的类型,它以您的参考为导向。例如:用于准入注册的 ServiceReferences :https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533。 |
|
| 引用的 UID。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids |
8.1.3. .spec.configuration.source
- 描述
-
source 是用于生成
内容
中指定的单个 MachineConfig 对象的 MachineConfig 对象列表。 - 类型
-
array
8.1.4. .spec.configuration.source[]
- 描述
- ObjectReference 包含足够信息供您检查或修改引用的对象。--- 不建议使用这个类型,因为在 API 中嵌入时描述其使用情况比较困难。1.忽略的字段。它包括许多通常不符合的字段。例如,ResourceVersion 和 FieldPath 在实际使用量中都非常有效。2.无效的用法帮助。对于单个用途,无法添加特定的帮助。在大多数嵌入式用法中,有特定的限制,"必须只引用类型 A 和 B" 或 "UID not honored" 或 "name be restricted"。嵌入时无法充分描述它们。3.验证不一致。由于使用量不同,因此验证规则因使用情况而异,因此用户很难预测到什么发生情况。4.这些字段既是不精确的,而且是更精确的。kind 不是一个 URL 的确切映射。这可能会在解释过程中产生不确定性,且需要 REST 映射。在大多数情况下,依赖项依赖于组,资源元组,实际 struct 的版本不相关。5.我们不能轻松更改。由于此类型嵌入在多个位置,因此对此类型的更新将影响大量模式。不要使新 API 嵌入在指定的 API 类型下,它们无法控制。不要使用这个类型,而是创建一个本地提供的、使用的类型,它以您的参考为导向。例如:用于准入注册的 ServiceReferences :https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 引用的 API 版本。 |
|
| 如果引用的是对象的一部分而非整个对象,则该字符串应包含有效的 JSON/Go 字段访问声明,如 desiredState.manifest.containers[2]。例如,如果对象引用是一个 pod 中的容器,它应该还以下类似: "spec.containers{name}"(其中 "name" 是指触发事件的容器的名称),如果不使用容器名称,则应类似于 "spec.containers[2]"(使用此 pod 中索引值为 2 的容器)。选择这个语法的原因是,为了有一些指向对象部分的正确定义方法。Todo: 这个设计不是最终设计的,且该字段在将来会有所改变。 |
|
| 引用的类型。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
| 引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
|
| 引用的命名空间。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ |
|
| 指定构成这个引用的 resourceVersion(如果存在)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
|
| 引用的 UID。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids |
8.1.5. .spec.machineConfigSelector
- 描述
- machineConfigSelector 为 MachineConfig 指定标签选择器。有关标签和选择器的工作方式,请参阅 https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
8.1.6. .spec.machineConfigSelector.matchExpressions
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
array
8.1.7. .spec.machineConfigSelector.matchExpressions[]
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
8.1.8. .spec.nodeSelector
- 描述
- nodeSelector 为机器指定标签选择器
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
8.1.9. .spec.nodeSelector.matchExpressions
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
array
8.1.10. .spec.nodeSelector.matchExpressions[]
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
8.1.11. .status
- 描述
- MachineConfigPoolStatus 是 MachineConfigPool 资源的状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| certExpirys keeps track of important certificate expiration data |
|
| ceryExpiry 包含捆绑包名称和到期日期 |
|
| 条件代表当前状态的最新可用影响。 |
|
| MachineConfigPoolCondition 包含 MachineConfigPool 的条件信息。 |
|
| configuration 代表机器配置池的当前 MachineConfig 对象。 |
|
| DEGRADEDMACHINECOUNT 代表标记为 degraded (或不协调)的机器总数。如果应用配置失败,则节点标记为 degraded。 |
|
| MACHINECOUNT 代表机器配置池中的机器总数。 |
|
| observedGeneration 代表控制器观察到的生成。 |
|
| READYMACHINECOUNT 代表池目标的就绪机器总数。 |
|
| unavailableMachineCount 代表池目标不可用(非就绪)机器的总数量。如果节点处于 update 状态或 NodeReady 条件为 false,则节点标记为不可用。 |
|
| UPDATEDMACHINECOUNT 代表池目标的机器总数,其配置是 CurrentMachineConfig。 |
8.1.12. .status.certExpirys
- 描述
- certExpirys keeps track of important certificate expiration data
- 类型
-
数组
8.1.13. .status.certExpirys[]
- 描述
- ceryExpiry 包含捆绑包名称和到期日期
- 类型
-
object
- 必填
-
bundle
-
subject
-
属性 | 类型 | 描述 |
---|---|---|
|
| bundle 是主题证书所在的捆绑包的名称 |
|
| expiry 是证书不再有效的日期 |
|
| 主题是证书的主题 |
8.1.14. .status.conditions
- 描述
- 条件代表当前状态的最新可用影响。
- 类型
-
array
8.1.15. .status.conditions[]
- 描述
- MachineConfigPoolCondition 包含 MachineConfigPool 的条件信息。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| `` | lastTransitionTime 与此条件的最后状态更改对应的时间戳。 |
|
| Message 是最后一次转换的详细信息的人类可读描述,补充原因。 |
|
| 原因是对条件最后一次转换的简短机器可读说明。 |
|
| 条件的状态,之一('True', 'False', 'Unknown')。 |
|
| 条件类型,当前('Done', 'Updating', 'Failed')。 |
8.1.16. .status.configuration
- 描述
- configuration 代表机器配置池的当前 MachineConfig 对象。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 引用的 API 版本。 |
|
| 如果引用的是对象的一部分而非整个对象,则该字符串应包含有效的 JSON/Go 字段访问声明,如 desiredState.manifest.containers[2]。例如,如果对象引用是一个 pod 中的容器,它应该还以下类似: "spec.containers{name}"(其中 "name" 是指触发事件的容器的名称),如果不使用容器名称,则应类似于 "spec.containers[2]"(使用此 pod 中索引值为 2 的容器)。选择这个语法的原因是,为了有一些指向对象部分的正确定义方法。Todo: 这个设计不是最终设计的,且该字段在将来会有所改变。 |
|
| 引用的类型。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
| 引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
|
| 引用的命名空间。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ |
|
| 指定构成这个引用的 resourceVersion(如果存在)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
|
|
source 是用于生成 |
|
| ObjectReference 包含足够信息供您检查或修改引用的对象。--- 不建议使用这个类型,因为在 API 中嵌入时描述其使用情况比较困难。1.忽略的字段。它包括许多通常不符合的字段。例如,ResourceVersion 和 FieldPath 在实际使用量中都非常有效。2.无效的用法帮助。对于单个用途,无法添加特定的帮助。在大多数嵌入式用法中,有特定的限制,"必须只引用类型 A 和 B" 或 "UID not honored" 或 "name be restricted"。嵌入时无法充分描述它们。3.验证不一致。由于使用量不同,因此验证规则因使用情况而异,因此用户很难预测到什么发生情况。4.这些字段既是不精确的,而且是更精确的。kind 不是一个 URL 的确切映射。这可能会在解释过程中产生不确定性,且需要 REST 映射。在大多数情况下,依赖项依赖于组,资源元组,实际 struct 的版本不相关。5.我们不能轻松更改。由于此类型嵌入在多个位置,因此对此类型的更新将影响大量模式。不要使新 API 嵌入在指定的 API 类型下,它们无法控制。不要使用这个类型,而是创建一个本地提供的、使用的类型,它以您的参考为导向。例如:用于准入注册的 ServiceReferences :https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533。 |
|
| 引用的 UID。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids |
8.1.17. .status.configuration.source
- 描述
-
source 是用于生成
内容
中指定的单个 MachineConfig 对象的 MachineConfig 对象列表。 - 类型
-
array
8.1.18. .status.configuration.source[]
- 描述
- ObjectReference 包含足够信息供您检查或修改引用的对象。--- 不建议使用这个类型,因为在 API 中嵌入时描述其使用情况比较困难。1.忽略的字段。它包括许多通常不符合的字段。例如,ResourceVersion 和 FieldPath 在实际使用量中都非常有效。2.无效的用法帮助。对于单个用途,无法添加特定的帮助。在大多数嵌入式用法中,有特定的限制,"必须只引用类型 A 和 B" 或 "UID not honored" 或 "name be restricted"。嵌入时无法充分描述它们。3.验证不一致。由于使用量不同,因此验证规则因使用情况而异,因此用户很难预测到什么发生情况。4.这些字段既是不精确的,而且是更精确的。kind 不是一个 URL 的确切映射。这可能会在解释过程中产生不确定性,且需要 REST 映射。在大多数情况下,依赖项依赖于组,资源元组,实际 struct 的版本不相关。5.我们不能轻松更改。由于此类型嵌入在多个位置,因此对此类型的更新将影响大量模式。不要使新 API 嵌入在指定的 API 类型下,它们无法控制。不要使用这个类型,而是创建一个本地提供的、使用的类型,它以您的参考为导向。例如:用于准入注册的 ServiceReferences :https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 引用的 API 版本。 |
|
| 如果引用的是对象的一部分而非整个对象,则该字符串应包含有效的 JSON/Go 字段访问声明,如 desiredState.manifest.containers[2]。例如,如果对象引用是一个 pod 中的容器,它应该还以下类似: "spec.containers{name}"(其中 "name" 是指触发事件的容器的名称),如果不使用容器名称,则应类似于 "spec.containers[2]"(使用此 pod 中索引值为 2 的容器)。选择这个语法的原因是,为了有一些指向对象部分的正确定义方法。Todo: 这个设计不是最终设计的,且该字段在将来会有所改变。 |
|
| 引用的类型。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
| 引用的名称。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names |
|
| 引用的命名空间。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ |
|
| 指定构成这个引用的 resourceVersion(如果存在)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency |
|
| 引用的 UID。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids |