Eseguire l'upgrade con l'operatore
È possibile aggiornare facilmente un'installazione Astra Trident esistente utilizzando l'operatore.
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 "Una versione di Kubernetes supportata".
-
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".
|
|
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, procedere come segue.
-
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 22.01/trident-installer/deploy/BUNDLE.YAML -n trident
-
In alternativa, è possibile modificare
TridentOrchestratorOggetto creato durante l'installazione di Trident per modificare i parametri di installazione. Ciò può includere modifiche quali la modifica dell'immagine Trident personalizzata, il registro di immagine privato da cui estrarre le immagini container, l'attivazione dei registri di debug o la specifica dei segreti di pull delle immagini. -
Installare Astra Trident utilizzando il file YAML del bundle corretto per il proprio ambiente e la versione di Astra Trident di
https://github.com/NetApp/trident/tree/stable/vXX.XX/deploy/BUNDLE.YAMLdovevXX.XXè il numero di versione (ad esempiov22.10) e.BUNDLE.YAMLÈ il nome del file YAML del bundle.-
Per i cluster che eseguono Kubernetes 1.24 o versione precedente, utilizzare "bundle_pre_1_25.yaml".
-
Per i cluster che eseguono Kubernetes 1.25 o versioni successive, utilizzare "bundle_post_1_25.yaml".
Ad esempio, se si sta installando Astra Trident 22.10 per Kubernetes 1.25, eseguire il seguente comando:
kubectl create -f 22.10.0/trident-installer/deploy/bundle_post_1_25.yaml -n trident
Nell'ambito di questa fase, l'operatore 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:
-
Verificare lo stato dell'installazione Trident esistente. Per eseguire questa operazione, selezionare il valore Status di
TridentProvisioner. Lo stato deve essereInstalled.kubectl describe tprov trident -n trident | grep Message: -A 3 Message: Trident installed Status: Installed Version: v20.10.1
Se viene visualizzato lo stato Updating, assicurarsi di risolverlo prima di procedere. Per un elenco dei possibili valori di stato, vedere "qui". -
Creare il
TridentOrchestratorCRD utilizzando il manifesto fornito con il programma di installazione di Trident.# Download the release required [22.10.0] mkdir 22.10.0 cd 22.10.0 wget https://github.com/NetApp/trident/releases/download/v22.10.0/trident-installer-22.10.0.tar.gz tar -xf trident-installer-22.10.0.tar.gz cd trident-installer kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
-
Eliminare l'operatore con ambito dello spazio dei nomi utilizzando il relativo manifesto. Per completare questo passaggio, è necessario il file YAML bundle utilizzato per implementare l'operatore con ambito dello spazio dei nomi da
https://github.com/NetApp/trident/tree/stable/vXX.XX/deploy/BUNDLE.YAMLdovevXX.XXè il numero di versione (ad esempiov22.10) e.BUNDLE.YAMLÈ il nome del file YAML del bundle.È necessario apportare le modifiche necessarie ai parametri di installazione di Trident (ad esempio, modificando i valori per tridentImage,autosupportImage, repository di immagini privato e fornituraimagePullSecrets) 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, fare riferimento a. "opzioni di configurazione".#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-xxxxxpod eliminato. -
(Facoltativo) se è necessario modificare i parametri di installazione, aggiornare
TridentProvisionerspec. 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}}' -
Installare l'operatore cluster-scoped.
L'installazione dell'operatore con ambito cluster avvia la migrazione di TridentProvisioneroggetti a.TridentOrchestratoroggetti, eliminaTridentProvisioneroggetti e iltridentprovisionerCRD e aggiorna Astra Trident alla versione dell'operatore cluster-scoped in uso. Nell'esempio seguente, Trident viene aggiornato alla versione 22.10.0.L'aggiornamento di Astra Trident utilizzando l'operatore con ambito cluster comporta la migrazione di tridentProvisionera untridentOrchestratoroggetto 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/22.10.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-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: v22.10.0
Aggiornare un'installazione basata su Helm
Per aggiornare un'installazione basata su Helm, procedere come segue.
-
Scarica l'ultima release di Astra Trident.
-
Utilizzare
helm upgradecomando. Vedere il seguente esempio:helm upgrade <name> trident-operator-22.10.0.tgz
dove
trident-operator-22.10.0.tgzindica la versione alla quale si desidera eseguire l'aggiornamento. -
Eseguire
helm listper verificare che la versione del grafico e dell'applicazione sia stata aggiornata.
|
|
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-22.10.0-custom.tgz --set tridentDebug=true
Se corri tridentctl logs, vengono visualizzati i messaggi di debug.
|
|
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.
-
Scarica l'ultima release di Astra Trident.
# Download the release required [22.10.0] mkdir 22.10.0 cd 22.10.0 wget https://github.com/NetApp/trident/releases/download/v22.10.0/trident-installer-22.10.0.tar.gz tar -xf trident-installer-22.10.0.tar.gz cd trident-installer
-
Creare il
tridentorchestratorCRD dal manifesto.kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
-
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
-
Creare un
TridentOrchestratorCR 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: v22.10.0
I backend e i PVC esistenti sono automaticamente disponibili.