简介
Rancher Elemental 用于快速部署和管理基于容器的操作系统,例如 SLE Micro。它面向边缘计算和云原生场景,能够提供轻量、可维护、易批量管理的操作系统交付能力。
安装 Elemental Extension
首先在 Rancher Extension 中安装 Elemental:

添加 OS Channel
创建一个 ManagedOSVersionChannel,用于定义可用的 OS 镜像版本来源:
1 2 3 4 5 6 7 8 9 10 11
| apiVersion: elemental.cattle.io/v1beta1 kind: ManagedOSVersionChannel metadata: name: sl-micro-6.0-base-channel namespace: fleet-default spec: deleteNoLongerInSyncVersions: false options: image: registry.suse.com/rancher/elemental-channel/sl-micro:6.0-base syncInterval: 1h type: custom
|
创建 MachineRegistration
创建 MachineRegistration,用于定义节点注册、安装以及 Cloud Configuration 配置。
其中 cloud-config 可根据实际需求自定义,例如:
- 配置主机名
- 配置网络
- 配置 SSH 登录
- 写入系统环境变量
- 指定安装磁盘
- 定义重置策略
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| apiVersion: elemental.cattle.io/v1beta1 kind: MachineRegistration metadata: name: test namespace: fleet-default spec: config: cloud-config: runcmd: - systemctl daemon-reload users: - name: root passwd: password ssh-authorized-keys: - >- ssh-rsa xxx write_files: - content: | [connection] id=eth0 type=ethernet interface-name=eth0 autoconnect=true
[ipv4] method=auto dns=172.16.16.1;
[ipv6] method=ignore path: /etc/NetworkManager/system-connections/eth0.nmconnection permissions: '0600' - content: | export CONTAINER_RUNTIME_ENDPOINT="unix:///run/k3s/containerd/containerd.sock" export CONTAINERD_ADDRESS="/run/k3s/containerd/containerd.sock" export CONTAINERD_NAMESPACE="k8s.io" export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/var/lib/rancher/rke2/bin export KUBECONFIG=/etc/rancher/rke2/rke2.yaml path: /root/.bashrc permissions: '0600' - content: | PermitRootLogin yes UsePam yes path: /etc/ssh/sshd_config.d/enable-root.conf permissions: '0600' elemental: install: device-selector: - key: Name operator: In values: - /dev/sda - /dev/vda - /dev/nvme0 - key: Size operator: Gt values: - 25Gi reboot: true snapshotter: type: btrfs reset: reboot: true reset-oem: true reset-persistent: true machineInventoryLabels: author: warner BlockDevices: ${System Data/Block Devices/Number Devices} CPUCores: ${System Data/CPU/Total Cores} CPUModel: ${System Data/CPU/Model} CPUThreads: ${System Data/CPU/Total Threads} CPUVender: ${System Data/CPU/Vendor} GPUVender: ${System Data/GPU/Vendor} Hostname: ${System Data/Runtime/Hostname} NetworkInterfaces: ${System Data/Network/Number Interfaces} TotalMemoryBytes: ${System Data/Memory/Total Physical Bytes} machineUUID: ${System Information/UUID} manufacturer: ${System Information/Manufacturer} serialNumber: ${System Information/Serial Number}
|
构建 ISO 镜像
创建 MachineRegistration 后,选择对应的 OS Version 构建镜像。
点击构建后,fleet-default 命名空间下会生成一个 Pod,用于执行以下操作:
- 拉取 Base Image
- 构建安装镜像
- 生成 ISO 下载地址

获取 ISO 下载地址
可以直接在 Rancher UI 中下载构建好的 ISO,也可以通过 SeedImage CRD 获取下载地址:
1
| kubectl -n fleet-default get seedimages.elemental.cattle.io media-image-reg-xxx -o jsonpath='{.status.downloadURL}'
|
下载完成后,即可使用该 ISO 创建虚拟机。
vSphere 虚拟机配置注意事项
Elemental OS 安装过程中需要使用 TPM,因此在 vSphere 中需要为虚拟机启用本机类型的 TPM。
启用本机类型 TPM 前,需要满足以下条件:
- vSphere 需要配置域名,否则虚拟机创建后无法进行 TPM 备份;如果 TPM 无法备份,则无法为虚拟机添加 TPM 设备。
- 创建虚拟机所在的 ESXi 主机需要位于一个集群中,否则添加 TPM 设备后可能导致虚拟机创建失败。
满足上述条件后,即可创建虚拟机。引导模式需要选择 EFI:

节点安装与注册
虚拟机启动后,会自动进行 OS 安装,并注册到 Rancher Elemental。
可以在节点上通过以下命令查看注册状态:
1
| journalctl -f -u elemental-register-install.service
|
如果注册成功,Rancher 中会生成一个 MachineInventory,用于记录该设备的详细信息:

创建集群
节点注册成功后,即可使用该节点创建集群:
