裸金属 Provider API

裸金属基础设施 Provider 构建于 elemental-operator 和 Cluster API 之上。operator 会与两个 CRD 组交互,本文档均有说明:

  • infrastructure.cluster.x-k8s.io/v1beta1 — 该 Provider 自身的资源。
  • elemental.cattle.io/v1beta1 — 由 elemental-operator 管理;operator 创建 registration 和 seed 对象,并且可以声明由 inventory 拥有的托管存储;同时,provider 会读取 inventory 对象、添加注解、基于其进行规划,并更新其存储生命周期状态。

自定义资源

Provider 资源(infrastructure.cluster.x-k8s.io/v1beta1

资源说明文档
BaremetalCluster集群级基础设施:control-plane VIP、endpoint、网络类型。BaremetalCluster
BaremetalMachine绑定到一个 MachineInventory 的单个基础设施机器。BaremetalMachine
BaremetalMachineTemplate将一个池绑定到 KubeadmControlPlaneMachineDeployment 的模板。BaremetalMachineTemplate
MachineInventoryPool允许某个集群使用的 MachineInventory 名称集合。MachineInventoryPool

Elemental 资源(elemental.cattle.io/v1beta1

资源说明文档
MachineRegistrationregistration URL + 首次安装 cloud-config。每个集群只创建一次。MachineRegistration
SeedImage触发 ISO 构建,并将 registration 内置其中。SeedImage
MachineInventoryMachineInventoryPool 消费的长期存在的主机身份;包含观测到的网络信息、可选的托管存储期望状态、目标存储观测,以及 Provider 拥有的存储生命周期状态。MachineInventory

上游 Cluster API 资源

该 Provider 还会组合以下上游资源,而不更改其 schema。完整 schema 请参阅 Cluster API reference

资源API 组用途
Clustercluster.x-k8s.io/v1beta1顶层 CAPI 资源;携带 bare-metal 特定的 cpaas.io/* 注解。
KubeadmControlPlanecontrolplane.cluster.x-k8s.io/v1beta1管理 control-plane Machine 生命周期和 kubeadm 配置。
MachineDeploymentcluster.x-k8s.io/v1beta1管理 worker Machine 生命周期。
KubeadmConfigTemplatebootstrap.cluster.x-k8s.io/v1beta1worker cloud-init user-data 模板。