Rancher Elemental 使用随记

简介

Rancher Elemental 用于快速部署和管理基于容器的操作系统,如 SLE Micro 和 openSUSE MicroOS。它专为边缘计算和云原生环境设计,可以提供极简、易维护的操作系统。

组件:

  1. elemental:负责操作系统安装、更新和维护的命令行工具
  2. elemental-operator:运行于 kubernetes 中,用于管理设备注册和生命周期
  3. elemental-register:运行于设备中,用于将设备与 Rancher Elemental 集群注册
  4. elemental-system-agent:负责设备的配置应用和生命周期管理

CRD:

  1. MachineRegistration:定义设备如何注册到 Rancher Elemental 集群,并提供初始化配置
  2. MachineInventory:记录注册设备的详细信息,包括硬件属性和状态
  3. MachineInventorySelector:用于选择一组符合特定标签或条件的设备
  4. MachineInventorySelectorTemplate:用于生成 MachineInventorySelector,支持动态创建设备分组规则
  5. ManagedOSImage:描述和管理设备可用的操作系统镜像信息
  6. ManagedOSVersion:定义操作系统版本及其支持的功能和变更点
  7. ManagedOSVersionChannel:管理操作系统版本更新的分发渠道
  8. SeedImage:用于创建安装介质,将 Elemental 安装到节点上

使用随记

在 Rancher Extension 安装 Elemental

添加一个 OS Channel

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,Cloud Configuration 可以根据需求自定义,例如设置主机名、网络配置等

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
apiVersion: elemental.cattle.io/v1beta1
kind: MachineRegistration
metadata:
name: elemental-cluster-1
namespace: fleet-default
spec:
config:
cloud-config:
users:
- name: root
passwd: password
ssh-authorized-keys:
- >-
ssh-rsa xxx
write_files:
- content: |
BOOTPROTO='static'
IPADDR='172.16.16.141'
NETMASK='255.255.255.0'
GATEWAY='172.16.16.1'
DNS='172.16.16.12'
STARTMODE='auto'
path: /etc/sysconfig/network/ifcfg-eth0
permissions: '0600'
elemental:
install:
debug: true
device: /dev/sda
reboot: true
snapshotter:
type: loopdevice
reset:
reboot: true
reset-oem: true
reset-persistent: true
machineInventoryLabels:
author: warner
machineUUID: ${System Information/UUID}
manufacturer: ${System Information/Manufacturer}
productName: ${System Information/Product Name}
serialNumber: ${System Information/Serial Number}

创建完后,选择对应的 OS Version 构建镜像,点击构建后在 fleet-default 命名空间下会生成一个 pod,用于 base image 拉取、镜像构建、生成镜像下载地址

在界面下载构建好的 ISO,也可以通过 SeedImage CRD 获取下载地址

1
kubectl -n fleet-default get seedimages.elemental.cattle.io media-image-reg-xxx -ojsonpath={.status.downloadURL}

下载好后就可以通过这个 ISO 创建虚拟机,OS 安装过程中需要用到 TPM,所以需要在 vSphere 中开启本机类型的 TPM

vSphere 开启本机类型的 TPM 有两个前提:

  1. vSphere 需要配置域名,否则创建好后会无法进行 TPM 备份,无法备份的话就无法给虚拟机添加 TPM 设备
  2. 创建虚拟机所在的主机需要在一个集群中,否则添加 TPM 设备后会无法创建

以上条件具备后,即可创建虚拟机,引导需要选择 EFI 模式

开机后就会自动进行 OS 安装,并注册到 Rancher Elemental 集群中,可以在节点上通过命令查看注册状态

1
journalctl -f -u elemental-register-install.service

注册没问题的话,会生成一个 MachineInventory,记录设备的详细信息

接着就可以用这个节点创建集群

Author

Warner Chen

Posted on

2024-11-20

Updated on

2024-11-21

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.