43 Acciones del ciclo de vida #
Esta sección describe las acciones de gestión del ciclo de vida de los clústeres desplegados con SUSE Edge for Telco.
43.1 Actualizaciones del clúster de gestión #
La actualización del clúster de gestión implica varios componentes. Para
obtener una lista de los componentes generales que requieren una
actualización, consulte la documentación sobre el clúster de gestión de
día 2 (Capítulo 35, Clúster de gestión).
El procedimiento de actualización de los componentes específicos de esta configuración se indica a continuación.
Actualización de Metal3
Para actualizar Metal3, use el
comando siguiente para actualizar la caché del repositorio de Helm y obtener
el chart más reciente para instalar
Metal3 desde el repositorio de
charts de Helm:
helm repo update
helm fetch suse-edge/metal3Después, la forma más fácil de actualizar es exportar las configuraciones
actuales a un archivo y, a continuación, actualizar la versión de
Metal3 utilizando ese archivo
anterior. Si es necesario realizar algún cambio en la nueva versión, el
archivo se puede editar antes de la actualización.
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.543.2 Actualización de clústeres descendentes #
Para actualizar los clústeres descendentes hay que actualizar varios componentes. Las siguientes secciones describen el proceso de actualización de cada uno de los componentes.
Actualización del sistema operativo
Para este proceso, consulte la siguiente referencia (Sección 42.2, “Preparación de la imagen del clúster descendente para entornos conectados”) para crear la nueva imagen con una
nueva versión del sistema operativo. Con esta nueva imagen generada por
EIB, la siguiente fase de aprovisionamiento utiliza la
nueva versión operativa proporcionada. En el siguiente paso, la nueva imagen
se utiliza para actualizar los nodos.
Actualización del clúster RKE2
Los cambios necesarios para actualizar el clúster RKE2
utilizando el flujo de trabajo automatizado son los siguientes:
Cambie el bloque
RKE2ControlPlaneen el archivocapi-provisioning-example.yamlque se muestra en la siguiente sección (Sección 42.4, “Aprovisionamiento de clústeres descendentes con aprovisionamiento de red dirigida (nodo único)”):Especifique la estrategia
rolloutStrategydeseada.Cambie la versión del clúster
RKE2a la nueva versión sustituyendo${RKE2_NEW_VERSION}.
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"Cambie el bloque
Metal3MachineTemplatedel archivocapi-provisioning-example.yamlque se muestra en la siguiente sección (Sección 42.4, “Aprovisionamiento de clústeres descendentes con aprovisionamiento de red dirigida (nodo único)”):Cambie el nombre de la imagen y la suma de comprobación a la nueva versión generada en el paso anterior.
En la directiva
nodeReusedefina el valortruepara evitar crear un nuevo nodo.En la directiva
automatedCleaningModedefinametadatapara habilitar la limpieza automática del nodo.
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}.rawDespués de realizar estos cambios, el archivo
capi-provisioning-example.yaml se puede aplicar al
clúster con este comando:
kubectl apply -f capi-provisioning-example.yaml