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
TridentOrchestrator
Oggetto 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.YAML
dovevXX.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
TridentOrchestrator
CRD 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.YAML
dovevXX.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-xxxxx
pod eliminato. -
(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}}'
-
Installare l'operatore cluster-scoped.
L'installazione dell'operatore con ambito cluster avvia la migrazione di TridentProvisioner
oggetti a.TridentOrchestrator
oggetti, eliminaTridentProvisioner
oggetti e iltridentprovisioner
CRD 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 tridentProvisioner
a untridentOrchestrator
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/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 upgrade
comando. Vedere il seguente esempio:helm upgrade <name> trident-operator-22.10.0.tgz
dove
trident-operator-22.10.0.tgz
indica la versione alla quale si desidera eseguire l'aggiornamento. -
Eseguire
helm list
per 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
tridentorchestrator
CRD 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
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: v22.10.0
I backend e i PVC esistenti sono automaticamente disponibili.