跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Edge 文档 / 产品文档 / 生命周期操作

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