第 9 章 MachineHealthCheck [machine.openshift.io/v1beta1]
- 描述
- MachineHealthCheck 是机器健康检查 API 兼容性级别 2 的 Schema:在主发行版本中至少为 9 个月或 3 个次版本(以更长的时间为准)。
- 类型
-
对象
9.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 | |
|
| 机器健康检查策略的规格 |
|
| 最近观察到的 MachineHealthCheck 资源状态 |
9.1.1. .spec
- 描述
- 机器健康检查策略的规格
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 只有 "selector" 选择最多的 "MaxUnhealthy" 机器都不健康时,才能允许进行补救。需要一个 postive 整数值或百分比值。百分比值必须是正数,并且上限为 100%。0 和 0% 均有效,将阻止所有补救。 |
|
| 在没有节点的情况下超过这个持续时间的机器将被视为失败,并会被修复。要防止没有节点的机器被删除,请通过明确将此值设置为 "0" 来禁用启动检查。需要一个未签名的持续时间字符串,每个数字带有可选的 fraction 和一个单位后缀,如 "300ms", "1.5h" 或 "2h45m"。有效的时间单位是 "ns", "us" (或 "uss"), "ms", "s", "m", "h"。 |
|
| RemediationTemplate 是基础架构供应商提供的补救模板的引用。此字段完全可选,当填充时,MachineHealthCheck 控制器会从引用模板创建一个新对象,并实践地将机器修复到 Machine API Operator 以外的控制器。 |
|
| 匹配其健康的机器的标签选择器。注: 空选择器将匹配所有机器。 |
|
| unhealthyConditions 包含决定节点是否被视为不健康的条件列表。条件在逻辑 OR 中合并,即满足任何条件时,节点不健康。 |
|
| UnhealthyCondition 代表 Node 条件类型和值,其 timeout 指定为持续时间。当指定条件处于至少超时值的给定状态时,节点被视为不健康。 |
9.1.2. .spec.remediationTemplate
- 描述
- RemediationTemplate 是基础架构供应商提供的补救模板的引用。此字段完全可选,当填充时,MachineHealthCheck 控制器会从引用模板创建一个新对象,并实践地将机器修复到 Machine API Operator 以外的控制器。
- 类型
-
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 |
9.1.3. .spec.selector
- 描述
- 匹配其健康的机器的标签选择器。注: 空选择器将匹配所有机器。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。 |
9.1.4. .spec.selector.matchExpressions
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
array
9.1.5. .spec.selector.matchExpressions[]
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
9.1.6. .spec.unhealthyConditions
- 描述
- unhealthyConditions 包含决定节点是否被视为不健康的条件列表。条件在逻辑 OR 中合并,即满足任何条件时,节点不健康。
- 类型
-
array
9.1.7. .spec.unhealthyConditions[]
- 描述
- UnhealthyCondition 代表 Node 条件类型和值,其 timeout 指定为持续时间。当指定条件处于至少超时值的给定状态时,节点被视为不健康。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| |
|
| 需要一个未签名的持续时间字符串,每个数字带有可选的 fraction 和一个单位后缀,如 "300ms", "1.5h" 或 "2h45m"。有效的时间单位是 "ns", "us" (或 "uss"), "ms", "s", "m", "h"。 |
|
|
9.1.8. .status
- 描述
- 最近观察到的 MachineHealthCheck 资源状态
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| Conditions 定义 MachineHealthCheck 的当前状态 |
|
| condition 定义 Machine API 资源操作状态的观察。 |
|
| 此机器健康检查计算的机器总数 |
|
| 此机器健康检查计算的机器总数 |
|
| RemediationsAllowed 是此机器健康检查在应用 maxUnhealthy 短电路前允许进行进一步的补救数量 |
9.1.9. .status.conditions
- 描述
- Conditions 定义 MachineHealthCheck 的当前状态
- 类型
-
array
9.1.10. .status.conditions[]
- 描述
- condition 定义 Machine API 资源操作状态的观察。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 条件从一个状态转换到另一个状态最后一次的时间。这应该是底层条件变化的时间。如果为未知,则使用 API 字段更改的时间是可以接受的。 |
|
| 人类可读的消息,指示有关转换的详细信息。此字段可能为空。 |
|
| 在 CamelCase 中条件最后一次转换的原因。特定的 API 可能会选择此字段是否被视为有保证的 API。此字段可能不是空的。 |
|
| 严重性提供了明确的 Reason 代码分类,因此用户或机器可以立即了解当前的情况并相应地操作。Severity 字段必须只在 Status=False 时才会设置。 |
|
| 条件的状态,True, False, Unknown 之一。 |
|
| CamelCase 或 foo.example.com/CamelCase 中的条件类型。许多 .condition.type 值在 Available 资源之间是一致的,但由于任意条件可能很有用(请参阅 .node.status.conditions),不限制性非常重要。 |