Mise à niveau avec l'opérateur
Vous pouvez facilement mettre à niveau une installation Astra Trident existante à l'aide de l'opérateur.
Pour effectuer la mise à niveau à l'aide de l'opérateur, les conditions suivantes doivent être remplies :
-
Vous devez disposer d'une installation Astra Trident basée sur CSI. Toutes les versions de 19.07 sont basées sur CSI. Vous pouvez examiner les pods dans votre espace de noms Trident pour en vérifier l'état.
-
Dans les versions antérieures à 23.01, le nom des pods suit un
trident-csi-*
convention. -
Le nom de pod dans la version 23.01 et ultérieures utilise :
trident-controller-<generated id>
pour le pod de contrôleurs ;trident-node-<operating system>-<generated id>
pour les pods des nœuds ;trident-operator-<generated id>
pour le boîtier de commande.
-
-
Si vous avez désinstallé CSI Trident et que les métadonnées de l'installation persistent, vous pouvez effectuer une mise à niveau à l'aide de l'opérateur.
-
Une seule installation Astra Trident doit exister sur l'ensemble des espaces de noms d'un cluster Kubernetes donné.
-
Vous devez utiliser un cluster Kubernetes en cours d'exécution "Version Kubernetes prise en charge".
-
Si des CRD alpha snapshot sont présents, vous devez les supprimer avec
tridentctl obliviate alpha-snapshot-crd
. Ceci supprime les CRD pour la spécification de snapshot alpha. Pour les snapshots existants qui doivent être supprimés/migrés, reportez-vous à la section "de ce blog".
|
Mettre à niveau l'installation d'un opérateur Trident du type cluster
Procédez comme suit pour mettre à niveau l'installation d'un opérateur Trident du système d'extension du cluster. Toutes les versions 21.01 et supérieures d'Astra Trident utilisent un opérateur à périmètre de cluster.
-
Vérifiez votre version d'Astra Trident :
./tridentctl -n trident version
-
Supprimez l'opérateur Trident qui a été utilisé pour installer l'instance Astra Trident actuelle. Par exemple, si vous effectuez une mise à niveau depuis 22.01, exécutez la commande suivante :
kubectl delete -f 22.01/trident-installer/deploy/bundle.yaml -n trident
-
Si vous avez personnalisé votre installation initiale à l'aide de
TridentOrchestrator
attributs, vous pouvez modifier leTridentOrchestrator
objet pour modifier les paramètres d'installation. Cela peut inclure des modifications visant à spécifier les registres d'images en miroir Trident et CSI pour le mode hors ligne, à activer les journaux de débogage ou à spécifier les secrets d'extraction d'images. -
Installez Astra Trident à l'aide du fichier YAML correspondant à votre environnement et à la version Trident d'Astra. Par exemple, si vous installez Astra Trident 23.01 pour Kubernetes 1.26, exécutez la commande suivante :
kubectl create -f 23.01.1/trident-installer/deploy/bundle_post_1_25.yaml -n trident
Trident fournit un fichier bundle qui peut être utilisé pour installer l'opérateur et créer les objets associés pour votre version Kubernetes.
-
Pour les clusters exécutant Kubernetes 1.24 ou version inférieure, utilisez "bundle_pre_1_25.yaml".
-
Pour les clusters qui exécutent Kubernetes 1.25 ou version supérieure, utilisez "bundle_post_1_25.yaml".
-
L'opérateur de Trident identifiera une installation Astra Trident existante et la mettra à niveau vers la même version que l'opérateur.
Mettre à niveau l'installation d'un opérateur à l'aide d'un espace de noms
Suivez ces étapes pour effectuer une mise à niveau à partir d'une instance d'Astra Trident installée à l'aide de l'opérateur doté de l'espace de noms (versions 20.07 à 20.10).
-
Vérifiez l'état de l'installation Trident existante. Pour ce faire, vérifiez le Statut de
TridentProvisioner
. Le statut doit être deInstalled
.kubectl describe tprov trident -n trident | grep Message: -A 3 Message: Trident installed Status: Installed Version: v20.10.1
Si l'état s'affiche Updating
, assurez-vous de le résoudre avant de continuer. Pour obtenir la liste des valeurs d'état possibles, reportez-vous à la section "ici". -
Créer le
TridentOrchestrator
CRD en utilisant le manifeste fourni avec le programme d'installation Trident.# Download the release required [23.01.1] mkdir 23.01.1 cd 23.01.1 wget https://github.com/NetApp/trident/releases/download/v23.01.1/trident-installer-23.01.1.tar.gz tar -xf trident-installer-23.01.1.tar.gz cd trident-installer kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
-
Supprimez l'opérateur délimité par l'espace de noms à l'aide de son manifeste. Pour effectuer cette étape, vous devez utiliser le fichier YAML de bundle pour déployer l'opérateur à étendue de l'espace de noms à partir de
https://github.com/NetApp/trident/tree/stable/vXX.XX/deploy/BUNDLE.YAML
oùvXX.XX
est le numéro de version etBUNDLE.YAML
Est le nom du fichier YAML du bundle.Vous devez apporter les modifications nécessaires aux paramètres d'installation de Trident (par exemple, en modifiant les valeurs de tridentImage
,autosupportImage
, un référentiel d'images privé, et la fournitureimagePullSecrets
) après avoir supprimé l'opérateur du périmètre de l'espace de noms et avant d'installer l'opérateur du périmètre de cluster. Pour obtenir une liste complète des paramètres pouvant être mis à jour, reportez-vous au "options de configuration".#Ensure you are in the right directory pwd /root/20.10.1/trident-installer #Delete the namespace-scoped operator kubectl delete -f deploy/<BUNDLE.YAML> -n trident serviceaccount "trident-operator" deleted clusterrole.rbac.authorization.k8s.io "trident-operator" deleted clusterrolebinding.rbac.authorization.k8s.io "trident-operator" deleted deployment.apps "trident-operator" deleted podsecuritypolicy.policy "tridentoperatorpods" deleted #Confirm the Trident operator was removed kubectl get all -n trident NAME READY STATUS RESTARTS AGE pod/trident-csi-68d979fb85-dsrmn 6/6 Running 12 99d pod/trident-csi-8jfhf 2/2 Running 6 105d pod/trident-csi-jtnjz 2/2 Running 6 105d pod/trident-csi-lcxvh 2/2 Running 8 105d NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/trident-csi ClusterIP 10.108.174.125 <none> 34571/TCP,9220/TCP 105d NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/trident-csi 3 3 3 3 3 kubernetes.io/arch=amd64,kubernetes.io/os=linux 105d NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/trident-csi 1/1 1 1 105d NAME DESIRED CURRENT READY AGE replicaset.apps/trident-csi-68d979fb85 1 1 1 105d
À ce stade, le
trident-operator-xxxxxxxxxx-xxxxx
le pod a été supprimé. -
(Facultatif) si les paramètres d'installation doivent être modifiés, mettez à jour le
TridentProvisioner
spécifications Il peut s'agir de modifications telles que la modification du registre d'images privées pour extraire des images de conteneur, l'activation des journaux de débogage ou la spécification de secrets de collecte d'images.kubectl patch tprov <trident-provisioner-name> -n <trident-namespace> --type=merge -p '{"spec":{"debug":true}}'
-
Installez l'opérateur Trident.
L'installation de l'opérateur à périmètre de cluster initie la migration de TridentProvisioner
objets àTridentOrchestrator
objets, supprimeTridentProvisioner
objets et letridentprovisioner
CRD, et met à niveau Astra Trident vers la version de l'opérateur délimité par le cluster. Dans l'exemple qui suit, Trident est mis à niveau vers la version 23.01.1.La mise à niveau d'Astra Trident avec l'opérateur Trident entraîne la migration de tridentProvisioner
à untridentOrchestrator
objet portant le même nom. Cette opération est gérée automatiquement par l'opérateur. La mise à niveau entraînera également l'installation d'Astra Trident dans le même espace de noms qu'auparavant.#Ensure you are in the correct directory pwd /root/23.01.1/trident-installer #Install the cluster-scoped operator in the **same namespace** kubectl create -f deploy/<BUNDLE.YAML> serviceaccount/trident-operator created clusterrole.rbac.authorization.k8s.io/trident-operator created clusterrolebinding.rbac.authorization.k8s.io/trident-operator created deployment.apps/trident-operator created podsecuritypolicy.policy/tridentoperatorpods created #All tridentProvisioners will be removed, including the CRD itself kubectl get tprov -n trident Error from server (NotFound): Unable to list "trident.netapp.io/v1, Resource=tridentprovisioners": the server could not find the requested resource (get tridentprovisioners.trident.netapp.io) #tridentProvisioners are replaced by tridentOrchestrator kubectl get torc NAME AGE trident 13s #Examine Trident pods in the namespace kubectl get pods -n trident NAME READY STATUS RESTARTS AGE trident-controller-79df798bdc-m79dc 6/6 Running 0 1m41s trident-node-linux-xrst8 2/2 Running 0 1m41s trident-operator-5574dbbc68-nthjv 1/1 Running 0 1m52s #Confirm Trident has been updated to the desired version kubectl describe torc trident | grep Message -A 3 Message: Trident installed Namespace: trident Status: Installed Version: v23.01.1
Le trident-controller
les noms de pods reflètent la convention de nommage introduite en 23.01.
Mettre à niveau l'installation d'un opérateur basé sur Helm
Effectuer les étapes suivantes pour mettre à niveau l'installation d'un opérateur reposant sur Helm.
Lorsque vous mettez à niveau un cluster Kubernetes de 1.24 vers 1.25 ou version ultérieure sur lequel Astra Trident est installé, vous devez mettre à jour les valeurs.yaml pour les définir excludePodSecurityPolicy à true ou ajouter --set excludePodSecurityPolicy=true à la helm upgrade commande avant de pouvoir mettre à niveau le cluster.
|
-
Téléchargez la dernière version d'Astra Trident.
-
Utilisez le
helm upgrade
commande oùtrident-operator-23.01.1.tgz
reflète la version vers laquelle vous souhaitez effectuer la mise à niveau.helm upgrade <name> trident-operator-23.01.1.tgz
Si vous définissez des options autres que celles par défaut lors de l'installation initiale (par exemple, spécifier des registres privés en miroir pour les images Trident et CSI), utilisez
--set
pour vous assurer que ces options sont incluses dans la commande de mise à niveau, sinon les valeurs sont réinitialisées sur les valeurs par défaut.Par exemple, pour modifier la valeur par défaut de
tridentDebug
, exécutez la commande suivante :helm upgrade <name> trident-operator-23.01.1-custom.tgz --set tridentDebug=true
-
Courez
helm list
pour vérifier que le graphique et la version de l'application ont tous deux été mis à niveau. Coureztridentctl logs
pour consulter les messages de débogage.
L'opérateur de Trident identifiera une installation Astra Trident existante et la mettra à niveau vers la même version que l'opérateur.
Mise à niveau à partir d'une installation autre que celle d'un opérateur
Vous pouvez effectuer la mise à niveau vers la dernière version de l'opérateur Trident à partir d'un tridentctl
installation.
-
Téléchargez la dernière version d'Astra Trident.
# Download the release required [23.01.1] mkdir 23.01.1 cd 23.01.1 wget https://github.com/NetApp/trident/releases/download/v22.01.1/trident-installer-23.01.1.tar.gz tar -xf trident-installer-23.01.1.tar.gz cd trident-installer
-
Créer le
tridentorchestrator
CRD du manifeste.kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
-
Déployer l'opérateur.
#Install the cluster-scoped operator in the **same namespace** kubectl create -f deploy/<BUNDLE.YAML> serviceaccount/trident-operator created clusterrole.rbac.authorization.k8s.io/trident-operator created clusterrolebinding.rbac.authorization.k8s.io/trident-operator created deployment.apps/trident-operator created podsecuritypolicy.policy/tridentoperatorpods created #Examine the pods in the Trident namespace NAME READY STATUS RESTARTS AGE trident-controller-79df798bdc-m79dc 6/6 Running 0 150d trident-node-linux-xrst8 2/2 Running 0 150d trident-operator-5574dbbc68-nthjv 1/1 Running 0 1m30s
-
Créer un
TridentOrchestrator
CR pour l'installation d'Astra Trident.#Create a tridentOrchestrator to initiate a Trident install cat deploy/crds/tridentorchestrator_cr.yaml apiVersion: trident.netapp.io/v1 kind: TridentOrchestrator metadata: name: trident spec: debug: true namespace: trident kubectl create -f deploy/crds/tridentorchestrator_cr.yaml #Examine the pods in the Trident namespace NAME READY STATUS RESTARTS AGE trident-csi-79df798bdc-m79dc 6/6 Running 0 1m trident-csi-xrst8 2/2 Running 0 1m trident-operator-5574dbbc68-nthjv 1/1 Running 0 5m41s #Confirm Trident was upgraded to the desired version kubectl describe torc trident | grep Message -A 3 Message: Trident installed Namespace: trident Status: Installed Version: v23.01.1
Les systèmes back-end et demandes de volume persistant sont automatiquement disponibles.