32 生命周期操作 #
本章介绍已部署的 ATIP 群集的生命周期管理操作。
32.1 管理群集升级 #
管理群集的升级涉及到多个组件。有关需要升级的常规组件的列表,请参见 Day 2
管理群集(第 24 章 “管理群集”)文档。
下面介绍了特定于此设置的组件的升级过程。
升级 Metal3
要升级 Metal3
,请使用以下命令更新 Helm
储存库缓存,并从 Helm chart 储存库提取用于安装
Metal3
的最新 chart:
helm repo update helm fetch suse-edge/metal3
然后,最简单的升级方式是将当前配置导出到某个文件,然后使用该文件升级
Metal3
版本。如果需要对新版本进行任何更改,可以先编辑该文件,然后再升级。
helm get values metal3 -n metal3-system -o yaml > metal3-values.yaml helm upgrade metal3 suse-edge/metal3 \ --namespace metal3-system \ -f metal3-values.yaml \ --version=0.7.1
32.2 下游群集升级 #
升级下游群集涉及到更新多个组件。以下章节介绍了每个组件的升级过程。
升级操作系统
对于此过程,请参考此章节来构建包含新操作系统版本的新映像。使用
EIB
生成此新映像后,下一置备阶段将使用提供的新操作系统版本。下一步骤将使用新映像来升级节点。
升级 RKE2 群集
需要做出以下更改才能使用自动化工作流程升级 RKE2
群集:
按照此章节中所示更改
capi-provisioning-example.yaml
中的RKE2ControlPlane
块:在规范文件中添加部署策略。
将
RKE2
群集的版本更改为新版本(请替换以下代码中的${RKE2_NEW_VERSION}
)。
apiVersion: controlplane.cluster.x-k8s.io/v1alpha1
kind: RKE2ControlPlane
metadata:
name: single-node-cluster
namespace: default
spec:
infrastructureRef:
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: Metal3MachineTemplate
name: single-node-cluster-controlplane
replicas: 1
serverConfig:
cni: cilium
rolloutStrategy:
rollingUpdate:
maxSurge: 0
agentConfig:
format: ignition
additionalUserData:
config: |
variant: fcos
version: 1.4.0
systemd:
units:
- name: rke2-preinstall.service
enabled: true
contents: |
[Unit]
Description=rke2-preinstall
Wants=network-online.target
Before=rke2-install.service
ConditionPathExists=!/run/cluster-api/bootstrap-success.complete
[Service]
Type=oneshot
User=root
ExecStartPre=/bin/sh -c "mount -L config-2 /mnt"
ExecStart=/bin/sh -c "sed -i \"s/BAREMETALHOST_UUID/$(jq -r .uuid /mnt/openstack/latest/meta_data.json)/\" /etc/rancher/rke2/config.yaml"
ExecStart=/bin/sh -c "echo \"node-name: $(jq -r .name /mnt/openstack/latest/meta_data.json)\" >> /etc/rancher/rke2/config.yaml"
ExecStartPost=/bin/sh -c "umount /mnt"
[Install]
WantedBy=multi-user.target
kubelet:
extraArgs:
- provider-id=metal3://BAREMETALHOST_UUID
version: ${RKE2_NEW_VERSION}
nodeName: "localhost.localdomain"
按照此章节中所示更改
capi-provisioning-example.yaml
中的Metal3MachineTemplate
块:将映像名称与校验和更改为在上一步骤中生成的新版本。
将指令
nodeReuse
设置为true
,以避免创建新节点。将指令
automatedCleaningMode
设置为metadata
,以启用节点自动清理。
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: Metal3MachineTemplate
metadata:
name: single-node-cluster-controlplane
namespace: default
spec:
nodeReuse: True
template:
spec:
automatedCleaningMode: metadata
dataTemplate:
name: single-node-cluster-controlplane-template
hostSelector:
matchLabels:
cluster-role: control-plane
image:
checksum: http://imagecache.local:8080/${NEW_IMAGE_GENERATED}.sha256
checksumType: sha256
format: raw
url: http://imagecache.local:8080/${NEW_IMAGE_GENERATED}.raw
完成这些更改后,可以使用以下命令将 capi-provisioning-example.yaml
文件应用于群集:
kubectl apply -f capi-provisioning-example.yaml