La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Mise à niveau avec l’opérateur

Contributeurs

Vous pouvez facilement mettre à niveau une installation Astra Trident existante à l’aide de l’opérateur.

Avant de commencer

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".

Attention
  • Lors de la mise à niveau de Trident à l’aide de l’opérateur sur OpenShift Container Platform, nous vous recommandons d’effectuer une mise à niveau vers Trident 21.01.1 ou version ultérieure. L’opérateur Trident sorti avec 21.01.0 contient un problème connu qui a été résolu en 21.01.1. Pour plus de détails, consultez le "Consultez le document GitHub pour plus d’informations".

  • N’utilisez pas l’opérateur pour mettre à niveau Trident si vous utilisez un `etcd`Version Trident basée (19.04 ou version antérieure).

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.

Étapes
  1. 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
  2. Si vous avez personnalisé votre installation initiale à l’aide de TridentOrchestrator attributs, vous pouvez modifier le TridentOrchestrator 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.

  3. 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.0/trident-installer/deploy/bundle_post_1_25.yaml -n trident
    Note

    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.

Résultats

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).

Étapes
  1. Vérifiez l’état de l’installation Trident existante. Pour ce faire, vérifiez le Statut de TridentProvisioner. Le statut doit être de Installed.

    kubectl describe tprov trident -n trident | grep Message: -A 3
    Message:  Trident installed
    Status:   Installed
    Version:  v20.10.1
    Note 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".
  2. Créer le TridentOrchestrator CRD en utilisant le manifeste fourni avec le programme d’installation Trident.

    # Download the release required [23.01.0]
    mkdir 23.01.0
    cd 23.01.0
    wget https://github.com/NetApp/trident/releases/download/v23.01.0/trident-installer-23.01.0.tar.gz
    tar -xf trident-installer-23.01.0.tar.gz
    cd trident-installer
    kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
  3. 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.YAMLvXX.XX est le numéro de version et BUNDLE.YAML Est le nom du fichier YAML du bundle.

    Note 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 fourniture imagePullSecrets) 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>
    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é.

  4. (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}}'
  5. Installez l’opérateur Trident.

    Note L’installation de l’opérateur à périmètre de cluster initie la migration de TridentProvisioner objets à TridentOrchestrator objets, supprime TridentProvisioner objets et le tridentprovisioner CRD, et met à niveau Astra Trident vers la version de l’opérateur délimité par le cluster. Dans l’exemple suivant, Trident est mis à niveau vers la version 23.01.0.
    Important La mise à niveau d’Astra Trident avec l’opérateur Trident entraîne la migration de tridentProvisioner à un tridentOrchestrator 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.0/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.0
    Note 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.

Étapes
  1. Téléchargez la dernière version d’Astra Trident.

  2. Utilisez le helm upgrade commande où trident-operator-23.01.0.tgz reflète la version que vous souhaitez mettre à niveau vers :

    helm upgrade <name> trident-operator-23.01.0.tgz
    Note

    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.0-custom.tgz --set tridentDebug=true
  3. Courez helm list pour vérifier que le graphique et la version de l’application ont tous deux été mis à niveau. Courez tridentctl logs pour consulter les messages de débogage.

Résultats

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.

Étapes
  1. Téléchargez la dernière version d’Astra Trident.

    # Download the release required [23.01.0]
    mkdir 23.01.0
    cd 23.01.0
    wget https://github.com/NetApp/trident/releases/download/v22.01.0/trident-installer-23.01.0.tar.gz
    tar -xf trident-installer-23.01.0.tar.gz
    cd trident-installer
  2. Créer le tridentorchestrator CRD du manifeste.

    kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
  3. 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
  4. 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.0
Résultats

Les systèmes back-end et demandes de volume persistant sont automatiquement disponibles.