第 10 章 MachineSet [machine.openshift.io/v1beta1]


描述
MachineSet 确保在任意给定时间运行指定数量的机器副本。兼容性级别 2:在主发行版本中至少为 9 个月或 3 个次版本(以更长的时间为准)。
类型
对象

10.1. 规格

属性类型描述

apiVersion

字符串

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

kind

字符串

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

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

spec

对象

MachineSetSpec 定义所需的 MachineSet 状态

status

对象

MachineSetStatus 定义 MachineSet 的观察状态

10.1.1. .spec

描述
MachineSetSpec 定义所需的 MachineSet 状态
类型
object
属性类型描述

deletePolicy

字符串

DeletePolicy 定义在缩减时用来识别要删除的节点的策略。默认为 "Random"。有效值为 "Random, "Newest", "Oldest"

minReadySeconds

整数

MinReadySeconds 是新创建的机器应准备好的最小秒数。默认为 0 (计算机在就绪后立即被视为可用)

replicas

整数

replicas 是所需副本数。这是一个指针,用于区分显式零和未指定的。默认为 1。

selector

对象

选择器是对应该与副本数匹配的机器的标签查询。要由此 MachineSet 控制标签键和值,必须匹配。它必须与机器模板的标签匹配。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

模板

对象

模板是描述在检测到副本不足时将创建的机器的对象。

10.1.2. .spec.selector

描述
选择器是对应该与副本数匹配的机器的标签查询。要由此 MachineSet 控制标签键和值,必须匹配。它必须与机器模板的标签匹配。更多信息: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
类型
object
属性类型描述

matchExpressions

array

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

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

matchLabels 是 {key,value} 对的映射。MatchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 "key",运算符是 "In",值数组仅包含 "value"。要求的逻辑关系是 AND。

10.1.3. .spec.selector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
array

10.1.4. .spec.selector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
属性类型描述

key

字符串

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

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

10.1.5. .spec.template

描述
模板是描述在检测到副本不足时将创建的机器的对象。
类型
object
属性类型描述

metadata

对象

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

spec

对象

指定机器所需行为的规格。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

10.1.6. .spec.template.metadata

描述
标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
类型
object
属性类型描述

annotations

对象(字符串)

annotations 是一个无结构的键值映射,它存储有资源,可通过外部工具存储和检索任意元数据。它们不可查询,应在修改对象时保留。更多信息: http://kubernetes.io/docs/user-guide/annotations

generateName

字符串

generateName 是一个可选前缀,服务器使用它来生成唯一的名称 IF,即未提供 Name 字段。如果使用此字段,返回到客户端的名称将与传递的名称不同。这个值也会与唯一的后缀合并。provided 值的验证规则与 Name 字段相同,并可能由使值在服务器上唯一要求的后缀长度截断。如果指定了此字段并且存在生成的名称,服务器将不会返回 409 -,它会返回 201 Created 或 500 with Reason ServerTimeout,表示无法在分配时找到唯一名称,并且客户端应重试(可选在 Retry-After 标头中指定的时间之后)。仅在未指定 Name 时应用。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

labels

对象(字符串)

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

name

字符串

名称在命名空间中必须是唯一的。创建资源时需要一些资源,但有些资源可能会允许客户端自动请求生成适当名称。name 主要用于创建 idempotence 和配置定义。无法更新。更多信息: http://kubernetes.io/docs/user-guide/identifiers#names

namespace

字符串

namespace 定义每个名称中的空间必须是唯一的。空命名空间等同于 "default" 命名空间,但 "default" 是规范表示。不是所有对象都必须限定到命名空间 - 这些对象的这个字段的值为空。必须是 DNS_LABEL。无法更新。更多信息: http://kubernetes.io/docs/user-guide/namespaces

ownerReferences

array

此对象依赖的对象列表。如果列表中删除列表中的 all 对象,则会收集此对象。如果此对象由控制器管理,则此列表中的一个条目将指向此控制器,controller 字段设为 true。不能有多个管理控制器。

ownerReferences[]

对象

OwnerReference 包含足够信息,供您标识拥有的对象。所属对象必须与依赖的命名空间相同,或是集群范围的,因此没有命名空间字段。

10.1.7. .spec.template.metadata.ownerReferences

描述
此对象依赖的对象列表。如果列表中删除列表中的 all 对象,则会收集此对象。如果此对象由控制器管理,则此列表中的一个条目将指向此控制器,controller 字段设为 true。不能有多个管理控制器。
类型
array

10.1.8. .spec.template.metadata.ownerReferences[]

描述
OwnerReference 包含足够信息,供您标识拥有的对象。所属对象必须与依赖的命名空间相同,或是集群范围的,因此没有命名空间字段。
类型
object
必填
  • apiVersion
  • kind
  • name
  • uid
属性类型描述

apiVersion

字符串

引用的 API 版本。

blockOwnerDeletion

布尔值

如果为 true,并且所有者是否有"foregroundDeletion"终结器,则无法从键值存储中删除所有者,直到此引用被删除为止。有关垃圾收集器如何与此字段交互并强制实施前台删除方式,请参阅 https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion。默认为false。要设置此字段,用户需要所有者的"删除"权限,否则将返回 422 (不可处理实体)。

controller

布尔值

如果为 true,则此引用指向管理控制器。

kind

字符串

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

name

字符串

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

uid

字符串

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

10.1.9. .spec.template.spec

描述
指定机器所需行为的规格。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
类型
object
属性类型描述

lifecycleHooks

object

lifecycleHooks 允许用户在机器生命周期的特定预定义点暂停机器上的操作。

metadata

对象

ObjectMeta 将自动填充所创建的节点。使用此选项来指示创建节点时应使用哪些标签、注解、名称前缀等。

providerID

字符串

providerID 是供应商提供的机器的标识 ID。此字段必须与与此机器对应的节点对象中看到的供应商 ID 匹配。cluster-api 的高级别消费者需要此字段。示例用例是 cluster-api,将 cluster-api 用作供应商。自动缩放器中的清理逻辑将机器与节点进行比较,以查找供应商无法注册为 Kubernetes 节点的机器。使用 cluster-api 作为自动扩展的通用树提供商时,自动扩展需要此字段才能具有机器列表的供应商视图。另一个节点列表是从 k8s apiserver 查询的另一个节点列表,然后做比较以查找未注册的机器并标记为 delete。此字段由行动者设置,并由更高级别的实体(如自动扩展器)使用,该自动扩展将与 cluster-api 作为通用提供程序交互。

providerSpec

对象

providerSpec 详情特定于供应商的配置,以便在节点创建过程中使用。

污点

array

要以增加方式应用到对应节点的污点列表。此列表不会根据其他实体持续覆盖添加到节点的任何其他污点。这些污点应该被主动协调,例如,如果您要求机器控制器应用污点,然后手动删除机器控制器将重新放置的污点,但机器控制器没有删除任何污点

taints[]

对象

此 Taint 附加到任何不容许 Taint 的 pod 上的"effect"的节点。

10.1.10. .spec.template.spec.lifecycleHooks

描述
lifecycleHooks 允许用户在机器生命周期的特定预定义点暂停机器上的操作。
类型
object
属性类型描述

preDrain

数组

preDrain hook 会阻止机器排空。这也会阻止进一步的生命周期事件,如终止。

preDrain[]

object

LifecycleHook 代表生命周期 hook 的单一实例

preTerminate

数组

preTerminate hook 会阻止机器被终止。在机器排空后,会执行 preTerminate hook。

preTerminate[]

object

LifecycleHook 代表生命周期 hook 的单一实例

10.1.11. .spec.template.spec.lifecycleHooks.preDrain

描述
preDrain hook 会阻止机器排空。这也会阻止进一步的生命周期事件,如终止。
类型
数组

10.1.12. .spec.template.spec.lifecycleHooks.preDrain[]

描述
LifecycleHook 代表生命周期 hook 的单一实例
类型
object
必填
  • 名称
  • owner
属性类型描述

name

string

name 为 lifcycle hook 定义唯一名称。名称应是唯一的,最好是 1-3 个单词,在 CamelCase 中,或者可以是命名空间,如 foo.example.com/CamelCase。名称必须是唯一的,并且只能由单个实体管理。

owner

string

Owner 定义生命周期 hook 的所有者。这应该完全描述性,以便用户可以识别谁/负责阻塞生命周期。这可以是控制器的名称(如 clusteroperator/etcd)或管理员管理 hook。

10.1.13. .spec.template.spec.lifecycleHooks.preTerminate

描述
preTerminate hook 会阻止机器被终止。在机器排空后,会执行 preTerminate hook。
类型
数组

10.1.14. .spec.template.spec.lifecycleHooks.preTerminate[]

描述
LifecycleHook 代表生命周期 hook 的单一实例
类型
object
必填
  • 名称
  • owner
属性类型描述

name

string

name 为 lifcycle hook 定义唯一名称。名称应是唯一的,最好是 1-3 个单词,在 CamelCase 中,或者可以是命名空间,如 foo.example.com/CamelCase。名称必须是唯一的,并且只能由单个实体管理。

owner

string

Owner 定义生命周期 hook 的所有者。这应该完全描述性,以便用户可以识别谁/负责阻塞生命周期。这可以是控制器的名称(如 clusteroperator/etcd)或管理员管理 hook。

10.1.15. .spec.template.spec.metadata

描述
ObjectMeta 将自动填充所创建的节点。使用此选项来指示创建节点时应使用哪些标签、注解、名称前缀等。
类型
object
属性类型描述

annotations

对象(字符串)

annotations 是一个无结构的键值映射,它存储有资源,可通过外部工具存储和检索任意元数据。它们不可查询,应在修改对象时保留。更多信息: http://kubernetes.io/docs/user-guide/annotations

generateName

字符串

generateName 是一个可选前缀,服务器使用它来生成唯一的名称 IF,即未提供 Name 字段。如果使用此字段,返回到客户端的名称将与传递的名称不同。这个值也会与唯一的后缀合并。provided 值的验证规则与 Name 字段相同,并可能由使值在服务器上唯一要求的后缀长度截断。如果指定了此字段并且存在生成的名称,服务器将不会返回 409 -,它会返回 201 Created 或 500 with Reason ServerTimeout,表示无法在分配时找到唯一名称,并且客户端应重试(可选在 Retry-After 标头中指定的时间之后)。仅在未指定 Name 时应用。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

labels

对象(字符串)

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

name

字符串

名称在命名空间中必须是唯一的。创建资源时需要一些资源,但有些资源可能会允许客户端自动请求生成适当名称。name 主要用于创建 idempotence 和配置定义。无法更新。更多信息: http://kubernetes.io/docs/user-guide/identifiers#names

namespace

字符串

namespace 定义每个名称中的空间必须是唯一的。空命名空间等同于 "default" 命名空间,但 "default" 是规范表示。不是所有对象都必须限定到命名空间 - 这些对象的这个字段的值为空。必须是 DNS_LABEL。无法更新。更多信息: http://kubernetes.io/docs/user-guide/namespaces

ownerReferences

array

此对象依赖的对象列表。如果列表中删除列表中的 all 对象,则会收集此对象。如果此对象由控制器管理,则此列表中的一个条目将指向此控制器,controller 字段设为 true。不能有多个管理控制器。

ownerReferences[]

对象

OwnerReference 包含足够信息,供您标识拥有的对象。所属对象必须与依赖的命名空间相同,或是集群范围的,因此没有命名空间字段。

10.1.16. .spec.template.spec.metadata.ownerReferences

描述
此对象依赖的对象列表。如果列表中删除列表中的 all 对象,则会收集此对象。如果此对象由控制器管理,则此列表中的一个条目将指向此控制器,controller 字段设为 true。不能有多个管理控制器。
类型
array

10.1.17. .spec.template.spec.metadata.ownerReferences[]

描述
OwnerReference 包含足够信息,供您标识拥有的对象。所属对象必须与依赖的命名空间相同,或是集群范围的,因此没有命名空间字段。
类型
object
必填
  • apiVersion
  • kind
  • name
  • uid
属性类型描述

apiVersion

字符串

引用的 API 版本。

blockOwnerDeletion

布尔值

如果为 true,并且所有者是否有"foregroundDeletion"终结器,则无法从键值存储中删除所有者,直到此引用被删除为止。有关垃圾收集器如何与此字段交互并强制实施前台删除方式,请参阅 https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion。默认为false。要设置此字段,用户需要所有者的"删除"权限,否则将返回 422 (不可处理实体)。

controller

布尔值

如果为 true,则此引用指向管理控制器。

kind

字符串

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

name

字符串

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

uid

字符串

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

10.1.18. .spec.template.spec.providerSpec

描述
providerSpec 详情特定于供应商的配置,以便在节点创建过程中使用。
类型
object
属性类型描述

value

``

值是资源配置的内联序列化表示。建议供应商维护自己的版本化 API 类型,这些类型应该从此字段序列化/反序列化到组件配置。

10.1.19. .spec.template.spec.taints

描述
要以增加方式应用到对应节点的污点列表。此列表不会根据其他实体持续覆盖添加到节点的任何其他污点。这些污点应该被主动协调,例如,如果您要求机器控制器应用污点,然后手动删除机器控制器将重新放置的污点,但机器控制器没有删除任何污点
类型
array

10.1.20. .spec.template.spec.taints[]

描述
此 Taint 附加到任何不容许 Taint 的 pod 上的"effect"的节点。
类型
object
必填
  • effect
  • key
属性类型描述

effect

字符串

必需。污点对不容许该污点的 pod 的影响。有效效果为 NoSchedule、PreferNoSchedule 和 NoExecute。

key

字符串

必需。要应用到节点的污点键。

timeAdded

字符串

TimeAdded 代表添加污点的时间。它仅针对 NoExecute 污点编写。

value

字符串

与污点键对应的污点值。

10.1.21. .status

描述
MachineSetStatus 定义 MachineSet 的观察状态
类型
object
属性类型描述

availableReplicas

整数

此 MachineSet 的可用副本数(至少为 minReadySeconds)。

errorMessage

字符串

 

errorReason

字符串

如果终端问题协调副本,则会设置 ErrorReason 和 ErrorMessage。ErrorReason 将填充适合机器解释的 succinct 值,而 ErrorMessage 将包含更详细的字符串,适合日志记录和人为消耗。这些字段不应设置为传输错误,因为控制器会随着时间的推移自动修复(如服务中断),而是表示 MachineTemplate 的 spec 或机器配置需要手动干预。终端错误示例在 spec 中是无效的设置组合,机器控制器不支持的值,或者负责的机器控制器本身被严重错误配置。在 Machine 协调过程中发生的任何临时错误都可以作为事件添加到 MachineSet 对象和/或登录控制器的输出中。

fullyLabeledReplicas

整数

具有与 MachineSet 机器模板标签匹配的副本数量。

observedGeneration

整数

observedGeneration 反映了最近观察到的 MachineSet 的生成。

readyReplicas

整数

此 MachineSet 的就绪副本数。当节点被创建并且为"Ready"时,机器被视为就绪。

replicas

整数

replicas 是最近观察到的副本数。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.