documentation.suse.com / SUSE Edge 文档 / 产品文档 / 生命周期操作

43 生命周期操作

本节介绍通过 SUSE Edge for Telco 部署的群集的生命周期管理操作。

43.1 管理群集升级

管理群集的升级涉及到多个组件。有关需要升级的常规组件的列表,请参见 Day 2 管理群集(第 35 章 “管理群集)文档。

下面介绍了针对此设置组件的升级过程。

升级 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=303.0.7+up0.11.5

43.2 下游群集升级

升级下游群集涉及到更新多个组件。以下章节介绍了每个组件的升级过程。

升级操作系统

对于此过程,请参考此章节(第 42.2 节 “为联网场景准备下游群集映像”)来构建包含新操作系统版本的新映像。使用 EIB 生成此新映像后,下一置备阶段将使用提供的新操作系统版本。下一步骤将使用新映像来升级节点。

升级 RKE2 群集

需要做出以下更改才能使用自动化工作流程升级 RKE2 群集:

apiVersion: controlplane.cluster.x-k8s.io/v1beta1
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
  version: ${RKE2_NEW_VERSION}
  replicas: 1
  rolloutStrategy:
    type: "RollingUpdate"
    rollingUpdate:
      maxSurge: 0
  serverConfig:
    cni: cilium
  rolloutStrategy:
    rollingUpdate:
      maxSurge: 0
  registrationMethod: "control-plane-endpoint"
  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
    nodeName: "localhost.localdomain"
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
Documentation survey