Machine是machines API的Schema。兼容性级别2:在主要版本中稳定至少9个月或3个次要版本(以较长者为准)。
Machine是machines API的Schema。兼容性级别2:在主要版本中稳定至少9个月或3个次要版本(以较长者为准)。
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
APIVersion定义了对象的此表示的版本化模式。服务器应将识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
|
Kind 是一个字符串值,表示此对象表示的 REST 资源。服务器可以从客户端提交请求的端点推断出这一点。不可更新。使用驼峰命名法。更多信息: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 |
|
|
|
MachineSpec 定义了 Machine 的期望状态 |
|
|
MachineStatus 定义了 Machine 的观察状态 |
MachineSpec 定义了 Machine 的期望状态
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
LifecycleHooks 允许用户在机器生命周期的某些预定义点暂停机器上的操作。 |
|
|
ObjectMeta 将自动填充创建的 Node。使用它来指示在创建 Node 时应使用哪些标签、注释、名称前缀等。 |
|
|
ProviderID 是提供者提供的机器的标识 ID。此字段必须与在与此机器对应的节点对象上看到的提供者 ID 匹配。此字段是集群 API 的更高级别使用者所需的。用例示例是使用集群 API 作为提供者的集群自动缩放器。自动缩放器中的清理逻辑比较机器和节点以找出无法注册为 Kubernetes 节点的提供商处的机器。使用集群 API 作为自动缩放器的通用树外提供程序,自动缩放器需要此字段才能拥有机器列表的提供程序视图。从 k8s apiserver 查询节点的另一个列表,然后进行比较以找出未注册的机器并将其标记为删除。此字段将由执行器设置,并由像自动缩放器这样的更高级别实体使用,这些实体将与集群 API 作为通用提供程序交互。 |
|
|
ProviderSpec 详细说明了在节点创建期间使用的特定于提供程序的配置。 |
|
|
以累加方式应用于相应 Node 的污点的列表。此列表不会持续覆盖其他实体添加到 Node 的任何其他污点。(例如,如果您要求机器控制器应用污点,然后手动删除污点,机器控制器会将其放回)但不会让机器控制器删除任何污点。 |
|
|
附加此污点的节点对任何不宽容此污点的 Pod 都有“影响”。 |
LifecycleHooks 允许用户在机器生命周期的某些预定义点暂停机器上的操作。
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
PreDrain 挂钩阻止机器被排空。这也阻止了进一步的生命周期事件,例如终止。 |
|
|
LifecycleHook 代表生命周期挂钩的单个实例。 |
|
|
PreTerminate 挂钩阻止机器被终止。在 Machine 被排空后,可以执行 PreTerminate 挂钩。 |
|
|
LifecycleHook 代表生命周期挂钩的单个实例。 |
LifecycleHook 代表生命周期挂钩的单个实例。
对象
name
owner
属性 | 类型 | 描述 |
---|---|---|
|
|
Name 定义了生命周期挂钩的唯一名称。名称应唯一且具有描述性,理想情况下为 1-3 个单词,使用驼峰命名法,或者它可以命名空间,例如 foo.example.com/CamelCase。名称必须唯一,并且只能由单个实体管理。 |
|
|
Owner 定义了生命周期挂钩的所有者。这应该足够具有描述性,以便用户可以识别谁/什么负责阻止生命周期。这可能是控制器的名称(例如 clusteroperator/etcd)或管理挂钩的管理员。 |
PreTerminate 挂钩阻止机器被终止。在 Machine 被排空后,可以执行 PreTerminate 挂钩。
数组
LifecycleHook 代表生命周期挂钩的单个实例。
对象
name
owner
属性 | 类型 | 描述 |
---|---|---|
|
|
Name 定义了生命周期挂钩的唯一名称。名称应唯一且具有描述性,理想情况下为 1-3 个单词,使用驼峰命名法,或者它可以命名空间,例如 foo.example.com/CamelCase。名称必须唯一,并且只能由单个实体管理。 |
|
|
Owner 定义了生命周期挂钩的所有者。这应该足够具有描述性,以便用户可以识别谁/什么负责阻止生命周期。这可能是控制器的名称(例如 clusteroperator/etcd)或管理挂钩的管理员。 |
ObjectMeta 将自动填充创建的 Node。使用它来指示在创建 Node 时应使用哪些标签、注释、名称前缀等。
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
Annotations 是与资源一起存储的非结构化键值映射,外部工具可以设置它来存储和检索任意元数据。它们不可查询,并且在修改对象时应保留。更多信息:https://kubernetes.ac.cn/docs/user-guide/annotations |
|
|
GenerateName 是一个可选前缀,服务器使用它来生成唯一名称,仅当未提供 Name 字段时才使用。如果使用此字段,则返回给客户端的名称将与传递的名称不同。此值还将与唯一的后缀组合。提供的值得以与 Name 字段相同的验证规则,并且可能因生成服务器上唯一值所需的后缀长度而被截断。如果指定此字段并且生成的名称存在,服务器将不会返回 409 - 相反,它将返回 201 已创建或 500,原因是 ServerTimeout 指示在分配的时间内找不到唯一名称,客户端应重试(可选地在 Retry-After 标头中指示的时间之后)。仅当未指定 Name 时才适用。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency |
|
|
可以用来组织和分类(范围和选择)对象的字符串键和值的映射。可能与复制控制器和服务的选取器匹配。更多信息:https://kubernetes.ac.cn/docs/user-guide/labels |
|
|
Name 在命名空间内必须唯一。创建资源时是必需的,尽管某些资源可能允许客户端请求自动生成合适的名称。Name 主要用于创建幂等性和配置定义。不可更新。更多信息:https://kubernetes.ac.cn/docs/user-guide/identifiers#names |
|
|
Namespace 定义了每个名称必须唯一的空间。空命名空间等效于“default”命名空间,但“default”是规范表示。并非所有对象都需要限定到命名空间 - 这些对象的此字段的值将为空。必须是 DNS_LABEL。不可更新。更多信息:https://kubernetes.ac.cn/docs/user-guide/namespaces |
|
|
此对象依赖的对象列表。如果列表中的所有对象都被删除,则此对象将被垃圾收集。如果此对象由控制器管理,则此列表中的条目将指向此控制器,并将 controller 字段设置为 true。不能有多个管理控制器。 |
|
|
OwnerReference 包含足够的信息,可让您识别拥有对象。拥有对象必须与从属对象位于相同的命名空间中,或者必须是集群范围的,因此没有命名空间字段。 |
此对象依赖的对象列表。如果列表中的所有对象都被删除,则此对象将被垃圾收集。如果此对象由控制器管理,则此列表中的条目将指向此控制器,并将 controller 字段设置为 true。不能有多个管理控制器。
数组
OwnerReference 包含足够的信息,可让您识别拥有对象。拥有对象必须与从属对象位于相同的命名空间中,或者必须是集群范围的,因此没有命名空间字段。
对象
apiVersion
kind
name
uid
属性 | 类型 | 描述 |
---|---|---|
|
|
引用的 API 版本。 |
|
|
如果为 true,并且所有者具有“foregroundDeletion”最终确定器,则在删除此引用之前,无法从键值存储中删除所有者。有关垃圾收集器如何与此字段交互并强制执行前台删除的信息,请参阅https://kubernetes.ac.cn/docs/concepts/architecture/garbage-collection/#foreground-deletion。默认为 false。要设置此字段,用户需要所有者的“删除”权限,否则将返回 422(无法处理的实体)。 |
|
|
如果为 true,则此引用指向管理控制器。 |
|
|
引用的 Kind。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
|
|
引用的 Name。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names#names |
|
|
引用的 UID。更多信息:https://kubernetes.ac.cn/docs/concepts/overview/working-with-objects/names#uids |
ProviderSpec 详细说明了在节点创建期间使用的特定于提供程序的配置。
对象
属性 | 类型 | 描述 |
---|---|---|
|
`` |
Value 是资源配置的内联序列化表示。建议提供者维护他们自己的版本化 API 类型,这些类型应该从此字段序列化/反序列化,类似于组件配置。 |
以累加方式应用于相应 Node 的污点的列表。此列表不会持续覆盖其他实体添加到 Node 的任何其他污点。(例如,如果您要求机器控制器应用污点,然后手动删除污点,机器控制器会将其放回)但不会让机器控制器删除任何污点。
数组
附加此污点的节点对任何不宽容此污点的 Pod 都有“影响”。
对象
effect
key
属性 | 类型 | 描述 |
---|---|---|
|
|
必填。对不兼容此污点的 Pod 的污点影响。有效的 effect 为 NoSchedule、PreferNoSchedule 和 NoExecute。 |
|
|
必填。要应用于节点的污点键。 |
|
|
TimeAdded 表示添加污点的时间。它仅针对 NoExecute 污点写入。 |
|
|
对应于污点键的污点值。 |
MachineStatus 定义了 Machine 的观察状态
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
Addresses 是分配给机器的一系列地址。如果可用,则从云提供商查询。 |
|
|
NodeAddress 包含节点地址的信息。 |
|
|
Conditions 定义了机器的当前状态。 |
|
|
Condition 定义了对机器 API 资源操作状态的观察。 |
|
|
如果在协调机器时出现终端问题,则会设置 ErrorMessage,并且包含更详细的字符串,适合于日志记录和人工查看。此字段不应设置为控制器面临的预计会随着时间推移自动修复的瞬态错误(例如服务中断),而是指示机器的规范或控制器的配置存在根本性问题,并且需要人工干预。终端错误的示例包括规范中设置的无效组合、控制器不支持的值或负责的控制器本身严重配置错误。在协调机器期间发生的任何瞬态错误都可以作为事件添加到机器对象和/或记录在控制器的输出中。 |
|
|
如果在协调机器时出现终端问题,则会设置 ErrorReason,并且包含适合机器解释的简洁值。此字段不应设置为控制器面临的预计会随着时间推移自动修复的瞬态错误(例如服务中断),而是指示机器的规范或控制器的配置存在根本性问题,并且需要人工干预。终端错误的示例包括规范中设置的无效组合、控制器不支持的值或负责的控制器本身严重配置错误。在协调机器期间发生的任何瞬态错误都可以作为事件添加到机器对象和/或记录在控制器的输出中。 |
|
|
LastOperation 描述了机器控制器执行的最后一次操作。此 API 对于特定机器上执行的最新操作的历史记录非常有用。它还应传达最新操作的状态,例如它是否仍在进行中、失败或成功完成。 |
|
|
LastUpdated 指明上次观察到此状态的时间。 |
|
|
如果存在,NodeRef 将指向相应的 Node。 |
|
|
Phase 表示机器执行的当前阶段。其中之一:Failed、Provisioning、Provisioned、Running、Deleting |
|
`` |
ProviderStatus 详细说明了特定于提供商的状态。建议提供者维护他们自己的版本化 API 类型,这些类型应该从此字段序列化/反序列化。 |
NodeAddress 包含节点地址的信息。
对象
address
type
属性 | 类型 | 描述 |
---|---|---|
|
|
节点地址。 |
|
|
节点地址类型,Hostname、ExternalIP 或 InternalIP 之一。 |
Condition 定义了对机器 API 资源操作状态的观察。
对象
type
属性 | 类型 | 描述 |
---|---|---|
|
|
条件从一种状态转换到另一种状态的最后时间。这应该是底层条件发生变化的时间。如果不知道,则使用 API 字段发生变化的时间是可以接受的。 |
|
|
指示转换详细信息的人类可读消息。此字段可能为空。 |
|
|
条件上次转换的原因,采用驼峰式大小写。特定 API 可以选择此字段是否被视为保证的 API。此字段不能为空。 |
|
|
Severity 提供了 Reason 代码的明确分类,因此用户或机器可以立即了解当前情况并采取相应措施。只有当 Status=False 时,才必须设置 Severity 字段。 |
|
|
条件的状态,True、False、Unknown 之一。 |
|
|
条件的类型,采用驼峰式大小写或 foo.example.com/CamelCase。许多 .condition.type 值在资源(如 Available)中是一致的,但由于任意条件可能很有用(请参阅 .node.status.conditions),因此消除冲突的能力非常重要。 |
LastOperation 描述了机器控制器执行的最后一次操作。此 API 对于特定机器上执行的最新操作的历史记录非常有用。它还应传达最新操作的状态,例如它是否仍在进行中、失败或成功完成。
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
Description 是上次操作的人类可读描述。 |
|
|
LastUpdated 是上次更新 LastOperation API 的时间戳。 |
|
|
State 是最后一次执行的操作的当前状态。例如 Processing、Failed、Successful 等 |
|
|
Type 是最后一次执行的操作的类型。例如 Create、Delete、Update 等 |
如果存在,NodeRef 将指向相应的 Node。
对象
属性 | 类型 | 描述 |
---|---|---|
|
|
引用的 API 版本。 |
|
|
如果引用对象的一部分而不是整个对象,则此字符串应包含有效的 JSON/Go 字段访问语句,例如 desiredState.manifest.containers[2]。例如,如果对象引用指向 Pod 中的容器,则其值将类似于:“spec.containers{name}”(其中“name”指的是触发事件的容器的名称)或者如果未指定容器名称,则为“spec.containers[2]”(此 Pod 中索引为 2 的容器)。选择此语法只是为了有一种定义明确的方法来引用对象的一部分。待办事项:此设计并非最终版本,此字段将来可能会更改。 |
|
|
引用的 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 |
|
|
引用的命名空间。更多信息:https://kubernetes.ac.cn/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.ac.cn/docs/concepts/overview/working-with-objects/names/#uids |
提供以下 API 端点
/apis/machine.openshift.io/v1beta1/machines
GET
:列出 Machine 类型的对象
/apis/machine.openshift.io/v1beta1/namespaces/{namespace}/machines
DELETE
:删除 Machine 集合
GET
:列出 Machine 类型的对象
POST
:创建一个 Machine
/apis/machine.openshift.io/v1beta1/namespaces/{namespace}/machines/{name}
DELETE
:删除一个 Machine
GET
:读取指定的 Machine
PATCH
:部分更新指定的 Machine
PUT
:替换指定的 Machine
/apis/machine.openshift.io/v1beta1/namespaces/{namespace}/machines/{name}/status
GET
:读取指定的 Machine 的状态
PATCH
:部分更新指定的 Machine 的状态
PUT
:替换指定的 Machine 的状态
GET
列出 Machine 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
DELETE
删除 Machine 集合
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
GET
列出 Machine 类型的对象
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
POST
创建 Machine
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这都将通过标准警告响应头发送警告。如果没有任何其他错误,请求仍然会成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - 已创建 |
|
202 - 已接受 |
|
401 - 未授权 |
空 |
参数 | 类型 | 描述 |
---|---|---|
|
|
Machine 的名称 |
DELETE
删除 Machine
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
202 - 已接受 |
|
401 - 未授权 |
空 |
GET
读取指定的 Machine
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
PATCH
部分更新指定的 Machine
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这都将通过标准警告响应头发送警告。如果没有任何其他错误,请求仍然会成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
PUT
替换指定的 Machine
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这都将通过标准警告响应头发送警告。如果没有任何其他错误,请求仍然会成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - 已创建 |
|
401 - 未授权 |
空 |
参数 | 类型 | 描述 |
---|---|---|
|
|
Machine 的名称 |
GET
读取指定的 Machine 的状态
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
PATCH
部分更新指定的 Machine 的状态
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这都将通过标准警告响应头发送警告。如果没有任何其他错误,请求仍然会成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
401 - 未授权 |
空 |
PUT
替换指定的 Machine 的状态
参数 | 类型 | 描述 |
---|---|---|
|
|
如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段 |
|
|
fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何从对象中静默删除的未知字段,并将忽略解码器遇到的除最后一个重复字段以外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段以及遇到的每个重复字段,这都将通过标准警告响应头发送警告。如果没有任何其他错误,请求仍然会成功,并且只会持久化任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。 |
参数 | 类型 | 描述 |
---|---|---|
|
|
HTTP 代码 | 响应正文 |
---|---|
200 - OK |
|
201 - 已创建 |
|
401 - 未授权 |
空 |