43 Ações de ciclo de vida #
Esta seção aborda as ações de gerenciamento do ciclo de vida para clusters implantados pelo SUSE Edge for Telco.
43.1 Upgrades de cluster de gerenciamento #
O upgrade do cluster de gerenciamento envolve vários componentes. Para ver a
lista dos componentes gerais que exigem upgrade, consulte a documentação do
cluster de gerenciamento de dia 2
(Capítulo 35, Cluster de gerenciamento).
O procedimento de upgrade dos componentes específicos desta configuração está descrito abaixo.
Fazendo upgrade do Metal3
Para fazer upgrade do Metal3
,
use o seguinte comando para atualizar o cache do repositório Helm e buscar o
gráfico mais recente para instalar o
Metal3
do repositório de
gráficos Helm:
helm repo update
helm fetch suse-edge/metal3
Depois disso, a maneira fácil de fazer upgrade é exportar suas configurações
atuais para um arquivo e fazer upgrade da versão do
Metal3
usando o arquivo
anterior. Se for necessário alterar alguma coisa na nova versão, edite o
arquivo antes do upgrade.
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 Upgrades de cluster downstream #
O upgrade de clusters downstream envolve a atualização de vários componentes. As seções a seguir abordam o processo de upgrade de cada um deles.
Fazendo upgrade do sistema operacional
Para este processo, consulte a seguinte referência (Seção 42.2, “Preparar uma imagem de cluster downstream para cenários conectados”) para criar uma imagem com uma nova
versão do sistema operacional. Com essa imagem gerada pelo
EIB
, a próxima fase de provisionamento usará a nova
versão do sistema operacional fornecida. Na etapa seguinte, a nova imagem
será usada para fazer upgrade dos nós.
Fazendo upgrade do cluster RKE2
As alterações necessárias para fazer upgrade do cluster
RKE2
usando o fluxo de trabalho automatizado são as
seguintes:
Altere o bloco
RKE2ControlPlane
nocapi-provisioning-example.yaml
mostrado na seguinte seção (Seção 42.4, “Provisionamento de cluster downstream com provisionamento de rede direcionado (nó único)”):Especifique a
rolloutStrategy
desejada.Altere a versão do cluster
RKE2
para a nova versão, substituindo${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"
Altere o bloco
Metal3MachineTemplate
nocapi-provisioning-example.yaml
mostrado na seguinte seção (Seção 42.4, “Provisionamento de cluster downstream com provisionamento de rede direcionado (nó único)”):Altere o nome e o checksum da imagem para a nova versão gerada na etapa anterior.
Adicione a diretiva
nodeReuse
atrue
para evitar a criação de um novo nó.Adicione a diretiva
automatedCleaningMode
ametadata
para habilitar a limpeza automatizada do nó.
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
Depois de fazer essas alterações, o arquivo
capi-provisioning-example.yaml
poderá ser aplicado ao
cluster usando o seguinte comando:
kubectl apply -f capi-provisioning-example.yaml