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/metal3
Despué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.5
43.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
RKE2ControlPlane
en el archivocapi-provisioning-example.yaml
que 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
rolloutStrategy
deseada.Cambie la versión del clúster
RKE2
a 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
Metal3MachineTemplate
del archivocapi-provisioning-example.yaml
que 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
nodeReuse
defina el valortrue
para evitar crear un nuevo nodo.En la directiva
automatedCleaningMode
definametadata
para 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}.raw
Despué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