|
Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi. |
Dépannage de la mise à niveau
Pour un aperçu général du cycle de vie de la mise à niveau et des composants, veuillez vous référer au document associé.
Côté Rancher
Dans cet exemple, nous avons mis à niveau les nœuds du cluster avec la définition suivante de ManagedOSImage :
apiVersion: elemental.cattle.io/v1beta1
kind: ManagedOSImage
metadata:
name: my-upgrade
namespace: fleet-default
spec:
# Set to the new {elemental-product-name} version you would like to upgrade to or track the latest tag
osImage: "registry.suse.com/rancher/sle-micro/5.5:latest"
clusterTargets:
- clusterName: my-cluster
Une fois que le ManagedOSImage est appliqué, le elemental-operator le vérifiera et générera un Bundle associé.
Le nom du Bundle sera préfixé par mos puis par le nom du ManagedOSImage. Dans ce cas mos-my-upgrade.
Dans la définition du Bundle, vous trouverez les détails concernant le plan de mise à niveau et la cible souhaitée.
Par exemple :
kubectl -n fleet-default get bundle mos-my-upgrade -o yaml
Cliquez ici pour plus de détails
apiVersion: fleet.cattle.io/v1alpha1
kind: Bundle
metadata:
creationTimestamp: "2023-06-16T09:01:47Z"
generation: 1
name: mos-my-upgrade
namespace: fleet-default
ownerReferences:
- apiVersion: elemental.cattle.io/v1beta1
controller: true
kind: ManagedOSImage
name: my-upgrade
uid: e468ed21-23bb-487a-a022-dbc7ef753720
resourceVersion: "1038645"
uid: 35e83fc4-28c8-4b10-8059-cae6cdff2cda
spec:
resources:
- content: '{"kind":"ClusterRole","apiVersion":"rbac.authorization.k8s.io/v1","metadata":{"name":"os-upgrader-my-upgrade","creationTimestamp":null},"rules":[{"verbs":["update","get","list","watch","patch"],"apiGroups":[""],"resources":["nodes"]},{"verbs":["list"],"apiGroups":[""],"resources":["pods"]}]}'
name: ClusterRole--os-upgrader-my-upgrade-296a3abf3451.yaml
- content: '{"kind":"ClusterRoleBinding","apiVersion":"rbac.authorization.k8s.io/v1","metadata":{"name":"os-upgrader-my-upgrade","creationTimestamp":null},"subjects":[{"kind":"ServiceAccount","name":"os-upgrader-my-upgrade","namespace":"cattle-system"}],"roleRef":{"apiGroup":"rbac.authorization.k8s.io","kind":"ClusterRole","name":"os-upgrader-my-upgrade"}}'
name: ClusterRoleBinding--os-upgrader-my-upgrade-f63eaecde935.yaml
- content: '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"os-upgrader-my-upgrade","namespace":"cattle-system","creationTimestamp":null}}'
name: ServiceAccount-cattle-system-os-upgrader-my-upgrade-ce93d-01096.yaml
- content: '{"kind":"Secret","apiVersion":"v1","metadata":{"name":"os-upgrader-my-upgrade","namespace":"cattle-system","creationTimestamp":null},"data":{"cloud-config":""}}'
name: Secret-cattle-system-os-upgrader-my-upgrade-a997ee6a67ef.yaml
- content: '{"kind":"Plan","apiVersion":"upgrade.cattle.io/v1","metadata":{"name":"os-upgrader-my-upgrade","namespace":"cattle-system","creationTimestamp":null},"spec":{"concurrency":1,"nodeSelector":{},"serviceAccountName":"os-upgrader-my-upgrade","version":"latest","secrets":[{"name":"os-upgrader-my-upgrade","path":"/run/data"}],"tolerations":[{"operator":"Exists"}],"cordon":true,"upgrade":{"image":"registry.suse.com/suse/sle-micro/5.5","command":["/usr/sbin/suc-upgrade"]}},"status":{}}'
name: Plan-cattle-system-os-upgrader-my-upgrade-273c2c09afca.yaml
targets:
- clusterName: my-cluster
.
.
.
SUSE® Rancher Prime: OS Manager Côté cluster
Tout nœud SUSE® Rancher Prime: OS Manager correctement enregistré et faisant partie du cluster cible récupérera le bundle et commencera à l’appliquer.
Cette opération est effectuée par le system-upgrade-controller de Rancher s’exécutant sur le cluster SUSE® Rancher Prime: OS Manager.
Pour surveiller le bon fonctionnement de ce contrôleur, vous pouvez consulter ses journaux :
kubectl -n cattle-system logs deployment/system-upgrade-controller
Si tout est correct, le system-upgrade-controller créera un plan de mise à niveau sur le cluster :
kubectl -n cattle-system get plans
Pour chaque plan, le contrôleur orchestrera les tâches qui l’appliqueront sur chaque nœud ciblé.
Les noms des tâches utiliseront le nom du plan (os-upgrader-my-upgrade) et le nom d’hôte de la machine cible (my-host) pour une découverte facile.
Par exemple : apply-os-upgrader-my-upgrade-on-my-host-7a25e
Vous pouvez surveiller ces tâches avec :
kubectl -n cattle-system get jobs
Chaque tâche utilisera un conteneur privileged: true avec l’image SLE Micro spécifiée dans la définition ManagedOSImage. Ce conteneur tentera de mettre à niveau le système et d’effectuer un redémarrage.
Si le travail échoue, vous pouvez vérifier son statut en examinant les journaux :
kubectl -n cattle-system logs job.batch/apply-os-upgrader-my-upgrade-on-my-host-7a25e
|
Processus de tâches en deux étapes
Notez que le processus de mise à niveau s’effectue en deux étapes.
|
Récupération après des échecs
Il est possible que le processus de mise à niveau de ManagedOSImage échoue, laissant un ou plusieurs nœuds dans un état défectueux. Par exemple, si l’image à mettre à niveau n’est pas trouvée dans le registre ou est autrement corrompue, la tâche de mise à niveau exécutée sur les clusters en aval ne réussira pas.
Lorsque c’est le cas, les nœuds exécutant la tâche de mise à niveau qui a échoué resteront isolés. Vous pouvez mettre à jour le ManagedOSImage avec un osImage fonctionnel, ou alternativement le supprimer pour arrêter toute nouvelle tentative de mise à niveau. Dans tous les cas, afin de les restaurer et de pouvoir également planifier les mises à niveau suivantes, les nœuds affectés doivent être désisolés manuellement.