第 3 章 BareMetalHost [metal3.io/v1alpha1]
- 描述
- BareMetalHost 是 baremetalhosts API 的 Schema
- 类型
-
对象
3.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 | |
|
| BareMetalHostSpec 定义 BareMetalHost 的所需状态 |
|
| BareMetalHostStatus 定义 BareMetalHost 的观察状态 |
3.1.1. .spec
- 描述
- BareMetalHostSpec 定义 BareMetalHost 的所需状态
- 类型
-
object
- 必填
-
online
-
属性 | 类型 | 描述 |
---|---|---|
|
| 主机的 CPU 架构,如 "x86_64" 或 "aarch64"。如果未设置,则最终由检查填充。 |
|
| 当设置为 disabled 时,会在置备和取消置备过程中避免自动清理。 |
|
| 如何连接到 BMC? |
|
| 哪个 MAC 地址将 PXE 引导?对于某些类型,这是可选的,但 vbmc 驱动的 libvirt 虚拟机是必需的。 |
|
| 选择在引导过程中初始化硬件的方法。默认为 UEFI。 |
|
| consumerRef 可用于存储使用主机的内容的信息。如果主机不为空,则主机被视为"使用"。 |
|
| 自定义部署流程。 |
|
| description 是人类可读的文本,用于帮助识别主机 |
|
| externallyProvisioned 表示其他管理主机上运行的镜像,Operator 应该仅管理电源状态和硬件清单检查。如果填写了 Image 字段,则忽略此字段。 |
|
| 裸机服务器的 BIOS 配置 |
|
| 此主机的硬件配置文件的名称是什么?硬件配置集已弃用,不应使用。改为使用单独的字段 Architecture 和 RootDeviceHints。设置为"空",以在没有硬件配置集的情况下为 API 的未来版本做准备。 |
|
| image 包含要调配的镜像的详细信息。 |
|
| 元数据包含对包含主机元数据(如 meta_data.json)的 Secret 的引用,后者被传递给 Config Drive。 |
|
| networkData 包含对包含网络配置(如 network_data.json)的 Secret 的引用,该 secret 传递给 Config Drive。 |
|
| 服务器是否应在线? |
|
| preprovisioningNetworkDataName 是本地命名空间中的 Secret 名称,其中包含网络配置(例如 network_data.json 的内容),该配置传递到预置备镜像,如果没有通过指定 NetworkData 覆盖到 Config Drive。 |
|
| 裸机服务器的 RAID 配置 |
|
| 提供有关如何为所调配镜像选择设备的说明。 |
|
| 污点是要应用到对应机器的完整、权威污点列表。此列表将持续覆盖对机器所做的任何修改。 |
|
| 此 Taint 附加到任何不容许 Taint 的 pod 上的"effect"的节点。 |
|
| userData 包含对包含要传递给主机的用户数据的 Secret 的引用。 |
3.1.2. .spec.bmc
- 描述
- 如何连接到 BMC?
- 类型
-
object
- 必填
-
address
-
credentialsName
-
属性 | 类型 | 描述 |
---|---|---|
|
| address 包含用于访问网络上控制器的 URL。 |
|
| 包含 BMC 凭证的 secret 名称(需要密钥 "username" 和 "password")。 |
|
| disableCertificateVerification 在使用 HTTPS 连接到 BMC 时禁用服务器证书验证。当服务器证书是自签名的但不安全时,这是必需的,因为它允许 man-in-the-middle 截获连接。 |
3.1.3. .spec.consumerRef
- 描述
- consumerRef 可用于存储使用主机的内容的信息。如果主机不为空,则主机被视为"使用"。
- 类型
-
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 |
3.1.4. .spec.customDeploy
- 描述
- 自定义部署流程。
- 类型
-
object
- 必填
-
method
-
属性 | 类型 | 描述 |
---|---|---|
|
| 自定义部署方法名称。此名称特定于使用的部署 ramdisk。如果您没有自定义部署 ramdisk,则不应使用自定义部署。 |
3.1.5. .spec.firmware
- 描述
- 裸机服务器的 BIOS 配置
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 允许单个物理处理器内核显示为多个逻辑处理器。这支持以下选项: true,false。 |
|
| SR-IOV 支持可让虚拟机监控程序创建 PCI-express 设备的虚拟实例,这可能会提高性能。这支持以下选项: true,false。 |
|
| 支持平台硬件的虚拟化。这支持以下选项: true,false。 |
3.1.6. .spec.image
- 描述
- image 包含要调配的镜像的详细信息。
- 类型
-
object
- 必填
-
url
-
属性 | 类型 | 描述 |
---|---|---|
|
| checksum 是镜像的 checksum。 |
|
| checksumType 是镜像的校验和算法。如 md5、sha256、sha512 |
|
| DiskFormat 包含镜像的格式(raw, qcow2, …)。需要设置为 raw 用于原始镜像流。请注意 live-iso 意味着 url 引用的 iso 将会被实时引导,而不是部署到磁盘,在这种情况下,不需要校验和选项,如果指定,则忽略。 |
|
| URL 是要部署的镜像的位置。 |
3.1.7. .spec.metaData
- 描述
- 元数据包含对包含主机元数据(如 meta_data.json)的 Secret 的引用,后者被传递给 Config Drive。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 在命名空间中是唯一的,用于引用 secret 资源。 |
|
| namespace 定义 secret 名称必须是唯一的的空间。 |
3.1.8. .spec.networkData
- 描述
- networkData 包含对包含网络配置(如 network_data.json)的 Secret 的引用,该 secret 传递给 Config Drive。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 在命名空间中是唯一的,用于引用 secret 资源。 |
|
| namespace 定义 secret 名称必须是唯一的的空间。 |
3.1.9. .spec.raid
- 描述
- 裸机服务器的 RAID 配置
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| `` |
硬件 RAID 的逻辑卷列表(如果 rootDeviceHints 没有使用),则第一个卷是 root 卷。您可以将此字段的值设置为 |
| `` | 软件 RAID 的逻辑卷列表(如果 rootDeviceHints 没有使用),则第一个卷是 root 卷。如果设置了 HardwareRAIDVolumes,则此项将无效。创建的软件 RAID 设备的数量必须是 1 或 2。如果只有一个软件 RAID 设备,它必须是 RAID-1。如果有两个,则第一个必须是 RAID-1,而第二个的 RAID 级别可以是 0、1 或 1+0。因为第一个 RAID 设备将是部署设备,所以强制 RAID-1 会在磁盘失败时降低以非引导节点结束的风险。软件 RAID 将始终被删除。 |
3.1.10. .spec.rootDeviceHints
- 描述
- 提供有关如何为所调配镜像选择设备的说明。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 比如 "/dev/vda" 的 Linux 设备名称,或指向它的一个 by-path 链接,如 "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0"。hint 必须与实际值完全匹配。 |
|
| SCSI 总线地址,如 0:0:0:0。hint 必须与实际值完全匹配。 |
|
| 以 Gigabytes 为单位的设备的最小大小。 |
|
| 特定于厂商的设备标识符。hint 可以是实际值的子字符串。 |
|
| 如果设备应使用旋转介质,则为 true,否则为 false。 |
|
| 设备序列号。hint 必须与实际值完全匹配。 |
|
| 设备的厂商或制造商的名称。hint 可以是实际值的子字符串。 |
|
| 唯一的存储标识符。hint 必须与实际值完全匹配。 |
|
| 唯一的厂商存储标识符。hint 必须与实际值完全匹配。 |
|
| 附加厂商扩展的唯一存储标识符。hint 必须与实际值完全匹配。 |
3.1.11. .spec.taints
- 描述
- 污点是要应用到对应机器的完整、权威污点列表。此列表将持续覆盖对机器所做的任何修改。
- 类型
-
array
3.1.12. .spec.taints[]
- 描述
- 此 Taint 附加到任何不容许 Taint 的 pod 上的"effect"的节点。
- 类型
-
object
- 必填
-
effect
-
key
-
属性 | 类型 | 描述 |
---|---|---|
|
| 必需。污点对不容许该污点的 pod 的影响。有效效果为 NoSchedule、PreferNoSchedule 和 NoExecute。 |
|
| 必需。要应用到节点的污点键。 |
|
| TimeAdded 代表添加污点的时间。它仅针对 NoExecute 污点编写。 |
|
| 与污点键对应的污点值。 |
3.1.13. .spec.userData
- 描述
- userData 包含对包含要传递给主机的用户数据的 Secret 的引用。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 在命名空间中是唯一的,用于引用 secret 资源。 |
|
| namespace 定义 secret 名称必须是唯一的的空间。 |
3.1.14. .status
- 描述
- BareMetalHostStatus 定义 BareMetalHost 的观察状态
- 类型
-
object
- 必填
-
errorCount
-
errorMessage
-
hardwareProfile
-
operationalStatus
-
poweredOn
-
provisioning
-
属性 | 类型 | 描述 |
---|---|---|
|
| ErrorCount 记录主机在上一次成功操作后出现错误的次数 |
|
| provisioning 子系统报告的最后一个错误消息 |
|
| ErrorType 表示在 OperationalStatus 是 OperationalStatus 是 OperationalStatusError 时遇到的故障类型 |
|
| 我们能够验证为工作的最后一个凭证 |
|
| 主机上存在发现的硬件。 |
|
| 与硬件详情匹配的配置集的名称。 |
|
| lastUpdated 标识此状态最后观察到的时间。 |
|
| operationHistory 包含有关在此主机上执行的操作的信息。 |
|
| OperationalStatus 保存主机的状态 |
|
| 主机是否开机的指示器 |
|
| 置备程序跟踪的信息。 |
|
| 我们发送到置备后端的最后一个凭证 |
3.1.15. .status.goodCredentials
- 描述
- 我们能够验证为工作的最后一个凭证
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| secretReference 代表 Secret 引用。它有足够的信息来检索任何命名空间中的 secret |
|
|
3.1.16. .status.goodCredentials.credentials
- 描述
- secretReference 代表 Secret 引用。它有足够的信息来检索任何命名空间中的 secret
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 在命名空间中是唯一的,用于引用 secret 资源。 |
|
| namespace 定义 secret 名称必须是唯一的的空间。 |
3.1.17. .status.hardware
- 描述
- 主机上存在发现的硬件。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| CPU 描述了主机上的一个处理器。 |
|
| 固件描述了主机上的固件。 |
|
| |
|
| |
|
| NIC 描述主机上的一个网络接口。 |
|
| |
|
| |
|
| Storage 描述了主机上的一个存储设备(磁盘、SSD 等)。 |
|
| HardwareSystemVendor 存储整个硬件系统的详细信息。 |
3.1.18. .status.hardware.cpu
- 描述
- CPU 描述了主机上的一个处理器。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| |
|
| ClockSpeed 是 MHz 中的时钟速度 |
|
| |
|
| |
|
|
3.1.19. .status.hardware.firmware
- 描述
- 固件描述了主机上的固件。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 此固件的 BIOS |
3.1.20. .status.hardware.firmware.bios
- 描述
- 此固件的 BIOS
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 此 BIOS 的发行版本/构建日期 |
|
| 此 BIOS 的供应商名称 |
|
| BIOS 的版本 |
3.1.21. .status.hardware.nics
- 描述
- 类型
-
array
3.1.22. .status.hardware.nics[]
- 描述
- NIC 描述主机上的一个网络接口。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 接口的 IP 地址。如果存在 IPv4 或 IPv6 地址,这将是 IPv4 或 IPv6 地址。如果双栈环境中同时存在 IPv4 和 IPv6 地址,则两个 nics 为输出,每个 IP 都有一个。 |
|
| 设备 MAC 地址 |
|
| NIC 的供应商和产品 ID,例如:"0x8086 0x1572" |
|
| 网络接口的名称,如 "en0" |
|
| NIC 是否可以引导 |
|
| 设备每秒千兆位的速度 |
|
| 未标记的 VLAN ID |
|
| 可用的 VLAN |
|
| VLAN 代表 VLAN 的名称和 ID |
3.1.23. .status.hardware.nics[].vlans
- 描述
- 可用的 VLAN
- 类型
-
array
3.1.24. .status.hardware.nics[].vlans[]
- 描述
- VLAN 代表 VLAN 的名称和 ID
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| VLANID 是一个 12 位 802.1Q VLAN 标识符 |
|
|
3.1.25. .status.hardware.storage
- 描述
- 类型
-
array
3.1.26. .status.hardware.storage[]
- 描述
- Storage 描述了主机上的一个存储设备(磁盘、SSD 等)。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 磁盘的备用 Linux 设备名称列表,例如"/dev/sda"。请注意,此列表并不完整,并且系统重启后名称可能不稳定。 |
|
| 设备的 SCSI 位置 |
|
| 硬件模型 |
|
| 磁盘的 Linux 设备名称,如 "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0"。如果一个名称可用,它将在重启后保持稳定。 |
|
| 这个磁盘是否代表轮转存储。不建议使用此字段,首选使用 'Type' 字段,此字段最终将被弃用。 |
|
| 设备的序列号 |
|
| Bytes 中磁盘大小 |
|
| 设备类型,其中之一: HDD、SSD、NVME。 |
|
| 设备的厂商名称 |
|
| 设备的 WWN |
|
| 设备的 WWN 供应商扩展 |
|
| 带有扩展名的 WWN |
3.1.27. .status.hardware.systemVendor
- 描述
- HardwareSystemVendor 存储整个硬件系统的详细信息。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| |
|
| |
|
|
3.1.28. .status.operationHistory
- 描述
- operationHistory 包含有关在此主机上执行的操作的信息。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| OperationMetric 包含有关操作的元数据(检查、调配等),用于跟踪指标。 |
|
| OperationMetric 包含有关操作的元数据(检查、调配等),用于跟踪指标。 |
|
| OperationMetric 包含有关操作的元数据(检查、调配等),用于跟踪指标。 |
|
| OperationMetric 包含有关操作的元数据(检查、调配等),用于跟踪指标。 |
3.1.29. .status.operationHistory.deprovision
- 描述
- OperationMetric 包含有关操作的元数据(检查、调配等),用于跟踪指标。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| `` | |
| `` |
3.1.30. .status.operationHistory.inspect
- 描述
- OperationMetric 包含有关操作的元数据(检查、调配等),用于跟踪指标。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| `` | |
| `` |
3.1.31. .status.operationHistory.provision
- 描述
- OperationMetric 包含有关操作的元数据(检查、调配等),用于跟踪指标。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| `` | |
| `` |
3.1.32. .status.operationHistory.register
- 描述
- OperationMetric 包含有关操作的元数据(检查、调配等),用于跟踪指标。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| `` | |
| `` |
3.1.33. .status.provisioning
- 描述
- 置备程序跟踪的信息。
- 类型
-
object
- 必填
-
ID
-
state
-
属性 | 类型 | 描述 |
---|---|---|
|
| 来自底层调配工具的机器 UUID |
|
| bootMode 表示用于置备节点的引导模式 |
|
| 应用到主机的自定义部署流程。 |
|
| 用户设置的 Bios |
|
| 镜像包含成功调配到主机的最后一个镜像的详细信息。 |
|
| 用户设置的 Raid |
|
| 用户设置的 RootDevicehints |
|
| 用于置备程序使用主机进行的操作的信息。 |
3.1.34. .status.provisioning.customDeploy
- 描述
- 应用到主机的自定义部署流程。
- 类型
-
object
- 必填
-
method
-
属性 | 类型 | 描述 |
---|---|---|
|
| 自定义部署方法名称。此名称特定于使用的部署 ramdisk。如果您没有自定义部署 ramdisk,则不应使用自定义部署。 |
3.1.35. .status.provisioning.firmware
- 描述
- 用户设置的 Bios
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 允许单个物理处理器内核显示为多个逻辑处理器。这支持以下选项: true,false。 |
|
| SR-IOV 支持可让虚拟机监控程序创建 PCI-express 设备的虚拟实例,这可能会提高性能。这支持以下选项: true,false。 |
|
| 支持平台硬件的虚拟化。这支持以下选项: true,false。 |
3.1.36. .status.provisioning.image
- 描述
- 镜像包含成功调配到主机的最后一个镜像的详细信息。
- 类型
-
object
- 必填
-
url
-
属性 | 类型 | 描述 |
---|---|---|
|
| checksum 是镜像的 checksum。 |
|
| checksumType 是镜像的校验和算法。如 md5、sha256、sha512 |
|
| DiskFormat 包含镜像的格式(raw, qcow2, …)。需要设置为 raw 用于原始镜像流。请注意 live-iso 意味着 url 引用的 iso 将会被实时引导,而不是部署到磁盘,在这种情况下,不需要校验和选项,如果指定,则忽略。 |
|
| URL 是要部署的镜像的位置。 |
3.1.37. .status.provisioning.raid
- 描述
- 用户设置的 Raid
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
| `` |
硬件 RAID 的逻辑卷列表(如果 rootDeviceHints 没有使用),则第一个卷是 root 卷。您可以将此字段的值设置为 |
| `` | 软件 RAID 的逻辑卷列表(如果 rootDeviceHints 没有使用),则第一个卷是 root 卷。如果设置了 HardwareRAIDVolumes,则此项将无效。创建的软件 RAID 设备的数量必须是 1 或 2。如果只有一个软件 RAID 设备,它必须是 RAID-1。如果有两个,则第一个必须是 RAID-1,而第二个的 RAID 级别可以是 0、1 或 1+0。因为第一个 RAID 设备将是部署设备,所以强制 RAID-1 会在磁盘失败时降低以非引导节点结束的风险。软件 RAID 将始终被删除。 |
3.1.38. .status.provisioning.rootDeviceHints
- 描述
- 用户设置的 RootDevicehints
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 比如 "/dev/vda" 的 Linux 设备名称,或指向它的一个 by-path 链接,如 "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0"。hint 必须与实际值完全匹配。 |
|
| SCSI 总线地址,如 0:0:0:0。hint 必须与实际值完全匹配。 |
|
| 以 Gigabytes 为单位的设备的最小大小。 |
|
| 特定于厂商的设备标识符。hint 可以是实际值的子字符串。 |
|
| 如果设备应使用旋转介质,则为 true,否则为 false。 |
|
| 设备序列号。hint 必须与实际值完全匹配。 |
|
| 设备的厂商或制造商的名称。hint 可以是实际值的子字符串。 |
|
| 唯一的存储标识符。hint 必须与实际值完全匹配。 |
|
| 唯一的厂商存储标识符。hint 必须与实际值完全匹配。 |
|
| 附加厂商扩展的唯一存储标识符。hint 必须与实际值完全匹配。 |
3.1.39. .status.triedCredentials
- 描述
- 我们发送到置备后端的最后一个凭证
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| secretReference 代表 Secret 引用。它有足够的信息来检索任何命名空间中的 secret |
|
|
3.1.40. .status.triedCredentials.credentials
- 描述
- secretReference 代表 Secret 引用。它有足够的信息来检索任何命名空间中的 secret
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| name 在命名空间中是唯一的,用于引用 secret 资源。 |
|
| namespace 定义 secret 名称必须是唯一的的空间。 |