|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
SUSE® Rancher Prime: OS Manager 命令行方式
按照本指南,通过 rke2/k3s 自动部署集群,并由 Rancher 管理,仅需借助 SUSE® Rancher Prime: OS Manager ISO 映像。
先决条件
-
配置好的 Rancher 服务器(v2.7.0 或更高版本)(已设置 server-url)
-
要配置 Rancher
server-url,请查看 Rancher 文档
-
-
一台具有 TPM 2.0 的机器(裸机或虚拟机)
-
提示 1:Libvirt 允许为虚拟机设置虚拟 TPM 示例在这里
-
提示 2:您可以在缺少 TPM 2.0 模块的裸机上启用 TPM 模拟 示例在这里
-
提示 3:确保在 x86-64 上使用 UEFI(而不是 BIOS),否则 .iso 映像将无法启动
-
提示 4:建议的最小卷大小为 25 GB。有关更多详细信息,请参见 SUSE® Rancher Prime: OS Manager 分区表
-
-
Helm 包管理器 (https://helm.sh/)
-
对于 Arm(aarch64) - 一张 SD 卡(32 GB 或更大,必须是 快速 - 40MB/s 的写入速度是可以接受的)和一个 USB 闪存驱动器用于安装
安装 SUSE® Rancher Prime: OS Manager Operator
elemental-operator 是管理端点,运行管理集群并负责创建库存、机器注册等更多功能。
我们将使用 Helm 包管理器将 elemental-operator 图表安装到我们的集群中。
helm upgrade --create-namespace -n cattle-elemental-system --install elemental-operator-crds oci://registry.suse.com/rancher/elemental-operator-crds-chart
helm upgrade --create-namespace -n cattle-elemental-system --install elemental-operator oci://registry.suse.com/rancher/elemental-operator-chart
现在,几秒钟后,您应该会看到 Operator pod 出现在 cattle-elemental-system 名称空间中:
kubectl get pods -n cattle-elemental-system
NAME READY STATUS RESTARTS AGE
elemental-operator-64f88fc695-b8qhn 1/1 Running 0 16s
{elemental-product-name} operator 图表通过 OCI 注册表分发:从 v3.8.0 版本开始,Helm 正确支持基于 OCI 的注册表。
当从嵌入 {elemental-product-name} CRD(版本 < 1.2.4)的 elemental-operator 版本升级时,elemental-operator-crds 图表安装将失败。
您需要先升级 elemental-operator 图表,然后再安装 elemental-operator-crds 图表。
非稳定安装
除了上述列出的 Helm 图表外,还有两个其他 non-stable 版本可用。
-
暂存: 指的是来自 Github 的最新标记版本。这在 下一步 页面中有文档记录。
-
开发: 指的是 Github 上 'HEAD' 指向的最新代码。这是正在进行的开发版本,并且不断变化。
-
暂存版本 (x86-64, ARM64 (树莓派 4))
-
开发版本 (x86-64, ARM64 (树莓派 4))
helm upgrade --create-namespace -n cattle-elemental-system --install elemental-operator-crds oci://registry.opensuse.org/isv/rancher/elemental/staging/charts/rancher/elemental-operator-crds-chart
helm upgrade --create-namespace -n cattle-elemental-system --install elemental-operator oci://registry.opensuse.org/isv/rancher/elemental/staging/charts/rancher/elemental-operator-chart
|
提醒
不建议在生产环境中使用开发版本。我们欢迎通过 Slack 或 Github 问题提供反馈,但它可能不稳定并包含可能会在没有通知的情况下删除的实验性功能。 |
helm upgrade --create-namespace -n cattle-elemental-system --install elemental-operator-crds oci://registry.opensuse.org/isv/rancher/elemental/dev/charts/rancher/elemental-operator-crds-chart
helm upgrade --create-namespace -n cattle-elemental-system --install --set image.imagePullPolicy=Always elemental-operator oci://registry.opensuse.org/isv/rancher/elemental/dev/charts/rancher/elemental-operator-chart
安装选项
图表安装中可以设置一些选项,但这超出了本文件的范围。您可以在图表 values.yaml 中查看所有值。
准备您的 Kubernetes 资源
节点部署从 MachineRegistration 开始,识别一组共享相同配置(磁盘驱动器、网络等)的机器。
在目标主机上执行 MachineRegistration 操作系统的部署需要 SUSE® Rancher Prime: OS Manager。启动时,每个主机注册到 SUSE® Rancher Prime: OS Manager 操作员,该操作员使用 MachineInventory 资源跟踪新主机。
然后继续使用一个集群资源,该资源使用 MachineInventorySelectorTemplate 来知道哪些机器属于该集群。
该选择器是基于在 MachineInventory 中设置的标签的简单匹配器,因此如果您的选择器在标签 cluster-id 上匹配值 cluster-id-val,并且您的 MachineInventory 具有相同的 cluster-id:``cluster-id-val` 标签,它将匹配,并作为集群的一部分进行启动。
在这个快速入门中,我们将部署资源以配置一个名为 volcano 的集群,该集群将匹配带有标签 MachineInventory 的 element:fire。
-
手动创建资源 YAML 文件
-
直接使用来自SUSE® Rancher Prime: OS Manager储存库的快速启动文件
您需要创建以下文件:
Unresolved include directive in modules/zh/pages/quickstarts/quickstart-cli.adoc - include::example$quickstart/selector.yaml[]
如您所见,这是一个非常简单的选择器,它查找具有键 element 和值 fire 的 MachineInventory 标签。
Unresolved include directive in modules/zh/pages/quickstarts/quickstart-cli.adoc - include::example$quickstart/cluster.yaml[]
如您所见,machineConfigRef 的类型为 MachineInventorySelectorTemplate,名称为 fire-machine-selector:它与我们创建的选择器匹配。您可以在 Rancher Manager 文档 中直接获取有关集群选项的更多信息,例如 machineGlobalConfig 或 machineSelectorConfig。
-
注册
-
树莓派的注册
Unresolved include directive in modules/zh/pages/quickstarts/quickstart-cli.adoc - include::example$quickstart/registration.yaml[]
Unresolved include directive in modules/zh/pages/quickstarts/quickstart-cli.adoc - include::example$quickstart/rpi-registration.yaml[]
要在树莓派上进行部署,您需要启用模拟 TPM(除非您有 [树莓派的硬件 TPM](https://thepihut.com/products/letstrust-tpm-for-raspberry-pi))。您还需要通过 disable-boot-entry: true 禁用对 EFI 存储的写入(因为树莓派没有 EFI 存储)。
MachineRegistration 定义注册和安装配置。创建后,SUSE® Rancher Prime: OS Manager 操作员公开一个唯一的 URL,以便与 elemental-register 二进制文件一起使用,以便在安装期间联系管理集群并注册机器:如果注册成功,操作员将创建一个 MachineInventory 来跟踪该机器,可以用来将该机器配置为我们集群的节点。我们在这里定义与选择器匹配的标签,尽管它也可以在创建的`MachineInventory`中稍后添加。
|
确保修改上面的registration.yaml,以设置正确的安装设备,指向基于您的节点配置的有效设备(即 /dev/sda、/dev/vda、/dev/nvme0 等)。 树莓派上的SD卡通常是`/dev/mmcblk0`。 |
-
种子镜像(x86_64)
-
树莓派的种子镜像
Unresolved include directive in modules/zh/pages/quickstarts/quickstart-cli.adoc - include::example$quickstart/seedimage.yaml[]
生成*种子镜像*(如可启动的.iso 映像)所需的`SeedImage`,该镜像将在目标机器上启动并开始SUSE® Rancher Prime: OS Manager的配置。
现在我们已经定义了所有配置文件,让我们应用它们以在Kubernetes中创建适当的资源:
kubectl apply -f selector.yaml
kubectl apply -f cluster.yaml
kubectl apply -f registration.yaml
kubectl apply -f seedimage.yaml
`SeedImage`资源自动创建SUSE® Rancher Prime: OS Manager可启动镜像(种子镜像),目前尚不支持树莓派ISO(点击[这里](raspi-disk.md)查看构建原始磁盘镜像的指南)。
我们将在[下一节](quickstart-cli.md#preparing-the-installation-seed-image)中手动生成*种子镜像*。
现在我们已经定义了所有配置文件,让我们应用它们以在Kubernetes中创建适当的资源:
kubectl apply -f selector.yaml
kubectl apply -f cluster.yaml
kubectl apply -f registration.yaml
您可以直接从[ SUSE® Rancher Prime: OS Manager储存库](https://github.com/rancher/elemental-docs)应用快速启动示例资源文件。
|
快速启动示例资源文件假设目标主机的默认存储映射到`/dev/sda`。如果您的主机存储设备文件不同,您必须在应用之前更改registration.yaml文件,并相应地更改`config.elemental.install.device`。 |
kubectl apply -f https://raw.githubusercontent.com/rancher/elemental-docs/main/examples/quickstart/selector.yaml
kubectl apply -f https://raw.githubusercontent.com/rancher/elemental-docs/main/examples/quickstart/cluster.yaml
kubectl apply -f https://raw.githubusercontent.com/rancher/elemental-docs/main/examples/quickstart/registration.yaml
kubectl apply -f https://raw.githubusercontent.com/rancher/elemental-docs/main/examples/quickstart/seedimage.yaml
|
目前`seedimage.yaml`不支持aarch64。 |
准备安装(种子)镜像
这是最后一步:您需要一个包含初始注册配置的SUSE® Rancher Prime: OS Manager种子镜像,以便它可以自动注册、安装并作为集群的一部分完全部署。
|
记事
当您创建`Machine Registration`时,会生成初始注册配置文件。 您可以通过以下方式下载它:
|
注册配置文件的内容仅包含节点需要注册的注册URL、适当的服务器证书和注册过程的一些选项。
一旦生成,种子镜像可以用于配置任意数量的机器。
-
下载快速入门 ISO
-
手动准备种子镜像(aarch64)
上面 SeedImage 资源创建的种子镜像可以通过以下脚本作为 .iso 映像下载:
kubectl wait --for=condition=ready pod -n fleet-default fire-img
wget --no-check-certificate `kubectl get seedimage -n fleet-default fire-img -o jsonpath="{.status.downloadURL}"` -O elemental.x86_64.iso
第一个命令等待 ISO 构建并准备好,第二个命令将其下载到当前目录,文件名为 elemental-x86_64.iso。
SUSE® Rancher Prime: OS Manager 对 Raspberry Pi 的支持目前主要用于演示目的。因此,安装过程类似于 x86-64。您从种子镜像(在这种情况下是 USB 闪存)启动,并安装到存储介质(Raspberry Pi 的 SD 卡)。
检索预构建的种子镜像
wget -q https://download.opensuse.org/repositories/isv:/Rancher:/SUSE® Rancher Prime OS Manager:/Stable/containers/rpi.raw
验证下载
为了验证下载的工件的完整性,您应该进行校验和验证:
wget -q https://download.opensuse.org/repositories/isv:/Rancher:/SUSE® Rancher Prime OS Manager:/Stable/containers/rpi.raw.sha256 sha256sum -c rpi.raw.sha256
这应该输出 rpi.raw: OK。
注入注册信息
添加 initial-registration.yaml 还未实现脚本化。这仍然是一个手动过程:
写入的 USB 闪存将有两个分区,RPI_BOOT 包含引导加载程序文件,COS_LIVE 包含 SUSE® Rancher Prime: OS Manager 文件。挂载 COS_LIVE 分区,并将 initial-registration.yaml 作为 livecd-cloud-config.yaml 写入该分区。
如果您使用文件管理器挂载了 USB 闪存,此命令应能复制注册信息:
sudo cp initial-registration.yaml /run/media/$USER/COS_LIVE/livecd-cloud-config.yaml
如果您更喜欢使用一些 CLI 工具:
IMAGE=rpi.raw
DEST=$(mktemp -d)
SECTORSIZE=$(sfdisk -J $\{IMAGE} | jq '.partitiontable.sectorsize')
DATAPARTITIONSTART=$(sfdisk -J $\{IMAGE} | jq '.partitiontable.partitions[1].start')
sudo mount -o rw,loop,offset=$(($\{SECTORSIZE}*$\{DATAPARTITIONSTART})) $\{IMAGE} $\{DEST}
sudo cp initial-registration.yaml $\{DEST}/livecd-cloud-config.yaml
sudo umount $\{DEST}
rmdir $\{DEST}
将种子镜像写入 USB 闪存
.raw 镜像需要写入 USB 闪存以便启动。如果您熟悉此命令,可以在 Linux 命令行中使用 dd 来完成此操作。[openSUSE](https://www.opensuse.org) 提供了有关如何将映像写入存储介质的详细说明,适用于 [Linux](Windows(https://en.opensuse.org/SDB:Create_a_Live_USB_stick_using_Windows) 和 [OS X](https://en.opensuse.org/SDB:Create_a_Live_USB_stick_using_macOS)。
启动 Raspberry Pi
现在卸载 USB 闪存并将其插入您的 Raspberry Pi。
将一张大容量(32 GB 或更大)且 快速 (!!) 的 micro SD 卡插入相应的插槽。
将系统连接到以太网。
重启将重新启动 Pi。其他一切与 x86-64 相同。
|
确保 micro SD 卡未分区。否则 Pi 引导加载程序将尝试从中启动并失败。 |
您现在可以使用此映像启动您的节点,它们将:
-
使用给定的 registrationURL 注册并为每台机器创建
MachineInventory。 -
将 SLE Micro 安装到指定设备。
-
重引导
选择要加入集群的正确机器。
MachineInventorySelectorTemplate 从具有 MachineInventory 标签的机器中选择所需的机器以配置集群。
我们在 MachineRegistration machineInventoryLabels 映射中添加了 element:fire 标签,因此所有来自该映射的 MachineInventory 已经具有该标签。
无论如何,可以跳过 MachineRegistration 中的标签并稍后添加:
kubectl -n fleet-default label machineinventory $(kubectl get machineinventory -n fleet-default --no-headers -o custom-columns=":metadata.name") element=fire
一旦存在带有 element:fire 的 MachineInventory,相应的机器将通过所选提供者(k3s/rke)自动部署集群。
几分钟后,您的新集群将完全配置完成!!
我如何选择集群的 Kubernetes 版本和部署工具?
在您的 cluster.yaml 文件中的 Spec 里有一个名为 kubernetesVersion 的键。这设置了将用于集群的版本和部署者,例如 Kubernetesv1.24.8 对于 rke2 将是 v1.24.8+rke2r1,而对于 k3s v1.24.8+k3s1。
要查看所有兼容的版本,请查看 Rancher 支持矩阵 PDF,了解 rke/rke2/k3s 版本及其组件。
您还可以查看我们的 版本文档 以了解如何获取这些版本。
请查看我们的 集群规格 页面以获取有关 Cluster 资源的更多信息。
我如何了解幕后动态?
您可以通过以下方式了解机器正在执行的操作:
-
在 ISO 启动期间:
-
ssh 进入机器 (用户/密码: root/ros):
-
运行
journalctl -f -t elemental可以显示注册进度 (elemental-register) 和 SUSE® Rancher Prime: OS Manager 的安装进度 (elemental install)。
-
-
-
一旦系统安装完成:
-
在 Rancher UI 中,通过
Cluster Management您可以查看新集群以及集群详细信息中的Provisioning Log。 -
ssh 进入机器 (用户/密码:您在
Spec.config.cloud-config.users下的 registration.yaml 中配置的内容):-
运行
journalctl -f -u elemental-system-agent显示初始的 elemental 配置及rancher-system-agent的安装输出。 -
运行
journalctl -f -u rancher-system-agent显示集群组件(如 k3s)的启动输出。 -
运行
journalctl -f -u k3s显示 k3s 部署的日志。
-
-
可选:通过 CLI 安装 Elemental UI 扩展。
创建并应用新的 ClusterRepo 以添加官方 Rancher 扩展储存库。
apiVersion: catalog.cattle.io/v1
kind: ClusterRepo
metadata:
name: rancher-ui-charts
spec:
gitBranch: main
gitRepo: https://github.com/rancher/ui-plugin-charts
为 Rancher UI 扩展 Chart 添加 helm 储存库。
helm repo add rancher-ui-plugins https://raw.githubusercontent.com/rancher/ui-plugin-charts/main/
安装 Elemental UI 扩展。
helm install elemental rancher-ui-plugins/elemental -n cattle-ui-plugin-system