Skip to main content
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Eseguire l'upgrade con l'operatore

Collaboratori

È possibile aggiornare facilmente un'installazione Astra Trident esistente utilizzando l'operatore.

Di cosa hai bisogno

Per eseguire l'aggiornamento utilizzando l'operatore, devono essere soddisfatte le seguenti condizioni:

  • È necessario disporre di un'installazione Astra Trident basata su CSI. Per verificare se CSI Trident è in esecuzione, esaminare i pod nello spazio dei nomi Trident. Se seguono trident-csi-* Schema di denominazione, si sta eseguendo CSI Trident.

  • È necessario disporre di un'installazione di Trident basata su CRD. Questo rappresenta tutte le release della versione 19.07 e successive. Se si dispone di un'installazione basata su CSI, è molto probabile che si disponga di un'installazione basata su CRD.

  • Se CSI Trident è stato disinstallato e i metadati dell'installazione persistono, è possibile eseguire l'aggiornamento utilizzando l'operatore.

  • Deve esistere una sola installazione Astra Trident in tutti gli spazi dei nomi di un determinato cluster Kubernetes.

  • Si dovrebbe utilizzare un cluster Kubernetes in esecuzione "versione 1.18 - 1.24".

  • Se sono presenti CRD Alpha Snapshot, rimuoverli con tridentctl obliviate alpha-snapshot-crd. In questo modo vengono eliminati i CRD per le specifiche di snapshot alfa. Per gli snapshot esistenti che devono essere cancellati/migrati, vedere "questo blog".

Attenzione Quando si aggiorna Trident utilizzando l'operatore su OpenShift Container Platform, è necessario eseguire l'aggiornamento a Trident 21.01.1 o versione successiva. L'operatore Trident rilasciato con 21.01.0 contiene un problema noto che è stato risolto nel 21.01.1. Per ulteriori informazioni, vedere "Dettagli del problema su GitHub".

Aggiornare un'installazione di un operatore con ambito cluster

Per eseguire l'aggiornamento da Trident 21.01 e versioni successive, ecco la procedura da seguire.

Fasi
  1. Eliminare l'operatore Trident utilizzato per installare l'istanza corrente di Astra Trident. Ad esempio, se si esegue l'aggiornamento da 21.01, eseguire il seguente comando:

    kubectl delete -f 21.01/trident-installer/deploy/bundle.yaml -n trident
  2. (Facoltativo) se si desidera modificare i parametri di installazione, modificare TridentOrchestrator Oggetto creato durante l'installazione di Trident. Ciò può includere modifiche, ad esempio la modifica dell'immagine Trident personalizzata, il Registro di sistema di immagini private da cui estrarre le immagini container, l'attivazione dei registri di debug o la specifica dei segreti di pull delle immagini.

  3. Installare Astra Trident utilizzando bundle.yaml File che imposta l'operatore Trident per la nuova versione. Eseguire il seguente comando:

    kubectl create -f 21.10.0/trident-installer/deploy/bundle.yaml -n trident

Nell'ambito di questa fase, l'operatore 21.10.0 Trident identificherà un'installazione Astra Trident esistente e la aggiornerà alla stessa versione dell'operatore.

Aggiornare un'installazione dell'operatore con ambito namespace

Per eseguire l'aggiornamento da un'istanza di Astra Trident installata utilizzando l'operatore namespace-scoped (versioni da 20.07 a 20.10), ecco la serie di passaggi da seguire:

Fasi
  1. Verificare lo stato dell'installazione Trident esistente. Per eseguire questa operazione, selezionare il valore Status di TridentProvisioner. Lo stato deve essere Installed.

    $ kubectl describe tprov trident -n trident | grep Message: -A 3
    Message:  Trident installed
    Status:   Installed
    Version:  v20.10.1
    Nota Se viene visualizzato lo stato Updating, assicurarsi di risolverlo prima di procedere. Per un elenco dei possibili valori di stato, vedere "qui".
  2. Creare il TridentOrchestrator CRD utilizzando il manifesto fornito con il programma di installazione di Trident.

    # Download the release required [21.01]
    $ mkdir 21.07.1
    $ cd 21.07.1
    $ wget https://github.com/NetApp/trident/releases/download/v21.07.1/trident-installer-21.07.1.tar.gz
    $ tar -xf trident-installer-21.07.1.tar.gz
    $ cd trident-installer
    $ kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
  3. Eliminare l'operatore con ambito dello spazio dei nomi utilizzando il relativo manifesto. Per completare questo passaggio, è necessario il bundle.yaml file utilizzato per implementare l'operatore con ambito dello spazio dei nomi. È possibile ottenere bundle.yaml dal "Repository di Trident". Assicurarsi di utilizzare la filiale appropriata.

    Nota È necessario apportare le modifiche necessarie ai parametri di installazione di Trident (ad esempio, modificando i valori per tridentImage, autosupportImage, repository di immagini privato e fornitura imagePullSecrets) dopo aver eliminato l'operatore con ambito dello spazio dei nomi e prima di installare l'operatore con ambito del cluster. Per un elenco completo dei parametri che è possibile aggiornare, vedere "elenco dei parametri".
    #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

    A questo punto, il trident-operator-xxxxxxxxxx-xxxxx pod eliminato.

  4. (Facoltativo) se è necessario modificare i parametri di installazione, aggiornare TridentProvisioner spec. Tali modifiche potrebbero essere apportate, ad esempio, alla modifica del Registro di sistema dell'immagine privata per estrarre le immagini container, abilitare i registri di debug o specificare i segreti di pull delle immagini.

    $  kubectl patch tprov <trident-provisioner-name> -n <trident-namespace> --type=merge -p '{"spec":{"debug":true}}'
  5. Installare l'operatore cluster-scoped.

    Nota L'installazione dell'operatore con ambito cluster avvia la migrazione di TridentProvisioner oggetti a. TridentOrchestrator oggetti, elimina TridentProvisioner oggetti e il tridentprovisioner CRD e aggiorna Astra Trident alla versione dell'operatore cluster-scoped in uso. Nell'esempio seguente, Trident viene aggiornato alla versione 21.07.1.
    Importante L'aggiornamento di Astra Trident utilizzando l'operatore con ambito cluster comporta la migrazione di tridentProvisioner a un tridentOrchestrator oggetto con lo stesso nome. Questo viene gestito automaticamente dall'operatore. Nell'aggiornamento verrà installato anche Astra Trident nello stesso namespace di prima.
    #Ensure you are in the correct directory
    $ pwd
    $ /root/21.07.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-csi-79df798bdc-m79dc        6/6     Running   0          1m41s
    trident-csi-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:                v21.07.1

Aggiornare un'installazione basata su Helm

Per aggiornare un'installazione basata su Helm, procedere come segue.

Fasi
  1. Scarica l'ultima release di Astra Trident.

  2. Utilizzare helm upgrade comando. Vedere il seguente esempio:

    $ helm upgrade <name> trident-operator-21.07.1.tgz

    dove trident-operator-21.07.1.tgz indica la versione alla quale si desidera eseguire l'aggiornamento.

  3. Eseguire helm list per verificare che la versione del grafico e dell'applicazione sia stata aggiornata.

Nota Per passare i dati di configurazione durante l'aggiornamento, utilizzare --set.

Ad esempio, per modificare il valore predefinito di tridentDebug, eseguire il seguente comando:

$ helm upgrade <name> trident-operator-21.07.1-custom.tgz --set tridentDebug=true

Se corri $ tridentctl logs, vengono visualizzati i messaggi di debug.

Nota Se si impostano opzioni non predefinite durante l'installazione iniziale, assicurarsi che le opzioni siano incluse nel comando di aggiornamento, altrimenti i valori verranno ripristinati ai valori predefiniti.

Aggiornamento da un'installazione non eseguita dall'operatore

Se si dispone di un'istanza di CSI Trident che soddisfa i prerequisiti elencati in precedenza, è possibile eseguire l'aggiornamento all'ultima versione dell'operatore Trident.

Fasi
  1. Scarica l'ultima release di Astra Trident.

    # Download the release required [21.07.1]
    $ mkdir 21.07.1
    $ cd 21.07.1
    $ wget https://github.com/NetApp/trident/releases/download/v21.07.1/trident-installer-21.07.1.tar.gz
    $ tar -xf trident-installer-21.07.1.tar.gz
    $ cd trident-installer
  2. Creare il tridentorchestrator CRD dal manifesto.

    $ kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
  3. Implementare l'operatore.

    #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-csi-79df798bdc-m79dc        6/6     Running   0          150d
    trident-csi-xrst8                   2/2     Running   0          150d
    trident-operator-5574dbbc68-nthjv   1/1     Running   0          1m30s
  4. Creare un TridentOrchestrator CR per l'installazione di Astra Trident.

    #Create a tridentOrchestrator to initate 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:                v21.07.1

I backend e i PVC esistenti sono automaticamente disponibili.