與營運者一起升級
您可以使用操作員手動或使用 Helm 輕鬆升級現有的 Astra Trident 安裝。
使用Trident營運者進行升級
一般而言、您應該使用原本用於安裝 Astra Trident 的相同方法來升級 Astra Trident 。檢閱 "選擇升級方法" 嘗試與 Trident 運算子一起升級之前。
從使用命名空間範圍運算子( 20.07 至 20.10 版)安裝的 Astra Trident 執行個體升級時、 Trident 運算子會自動:
|
升級叢集範圍的Trident操作員安裝
您可以升級叢集範圍的 Trident 運算子安裝。所有Astra Trident版本21.01及更新版本均使用叢集範圍的運算子。
確保您使用的是執行中的 Kubernetes 叢集 "支援的Kubernetes版本"。
-
驗證 Astra Trident 版本:
./tridentctl -n trident version
-
刪除用來安裝目前Astra Trident執行個體的Trident運算子。例如、如果您要從 22.01 升級、請執行下列命令:
kubectl delete -f 22.01/trident-installer/deploy/bundle.yaml -n trident
-
如果您使用自訂初始安裝
TridentOrchestrator
屬性、您可以編輯TridentOrchestrator
物件以修改安裝參數。這可能包括針對離線模式指定鏡射Trident和csi映像登錄、啟用偵錯記錄或指定映像提取機密所做的變更。 -
使用適用於您環境的正確套裝組合Yaml檔案和Astra Trident版本來安裝Astra Trident。例如、如果您要為 Kubernetes 1.27 安裝 Astra Trident 23.04 、請執行下列命令:
kubectl create -f 23.04.0/trident-installer/deploy/bundle_post_1_25.yaml -n trident
Trident提供一個套裝組合檔案、可用來安裝運算子、並為Kubernetes版本建立相關的物件。
-
對於執行 Kubernetes 1.24 或更早版本的叢集、請使用 "bunder_pre_1_25.yaml"。
-
對於執行 Kubernetes 1.25 或更新版本的叢集、請使用 "bunder_POST_1_25.yaml"。
-
Trident營運者將識別現有的Astra Trident安裝、並將其升級至與營運者相同的版本。
升級命名空間範圍內的操作員安裝
您可以使用命名空間範圍運算子( 20.07 至 20.10 版)、從安裝的 Astra Trident 執行個體升級到叢集範圍的運算子安裝。
您需要用來部署命名空間範圍運算子的套件 YAML 檔案 https://github.com/NetApp/trident/tree/stable/vXX.XX/deploy/BUNDLE.YAML
其中 vXX.XX
為版本編號和 BUNDLE.YAML
為套裝組合Yaml檔案名稱。
-
驗證
TridentProvisioner
現有 Trident 安裝的狀態為Installed
。kubectl describe tprov trident -n trident | grep Message: -A 3 Message: Trident installed Status: Installed Version: v20.10.1
如果狀態顯示 Updating
、請務必先解決此問題、再繼續進行。如需可能狀態值的清單、請參閱 "請按這裡"。 -
建立
TridentOrchestrator
請使用Trident安裝程式隨附的資訊清單來進行CRD。# Download the release required [23.04.0] mkdir 23.04.0 cd 23.04.0 wget https://github.com/NetApp/trident/releases/download/v23.04.0/trident-installer-23.04.0.tar.gz tar -xf trident-installer-23.04.0.tar.gz cd trident-installer kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
-
使用命名空間範圍的運算子資訊清單來刪除。
-
確保您位於正確的目錄中。
pwd /root/20.10.1/trident-installer
-
刪除命名空間範圍運算子。
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
-
確認 Trident 運算子已移除。
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
-
-
(選用)如果需要修改安裝參數、請更新
TridentProvisioner
規格這可能包括變更:的值tridentImage
、autosupportImage
、私有映像儲存庫、以及提供imagePullSecrets
)刪除命名空間範圍的運算子之後、安裝叢集範圍的運算子之前。如需可更新的完整參數清單、請參閱 "組態選項"。kubectl patch tprov <trident-provisioner-name> -n <trident-namespace> --type=merge -p '{"spec":{"debug":true}}'
-
安裝 Trident 叢集範圍運算子。
-
確保您位於正確的目錄中。
pwd /root/23.04.0/trident-installer
-
在同一個命名空間中安裝叢集範圍的運算子。
Trident提供一個套裝組合檔案、可用來安裝運算子、並為Kubernetes版本建立相關的物件。
-
對於執行 Kubernetes 1.24 或更早版本的叢集、請使用 "bunder_pre_1_25.yaml"。
-
對於執行 Kubernetes 1.25 或更新版本的叢集、請使用 "bunder_POST_1_25.yaml"。
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
-
-
檢查命名空間中的 Trident Pod 。。
trident-controller
和Pod名稱反映了23.01中引入的命名慣例。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
-
確認 Trident 已更新至所需版本。
kubectl describe torc trident | grep Message -A 3 Message: Trident installed Namespace: trident Status: Installed Version: v23.04.0
-
升級Helm型的營運者安裝
請執行下列步驟、升級Helm型的操作員安裝。
將Kubernetes叢集從1.24升級至1.25或更新版本、且已安裝Astra Trident時、您必須更新vales.yaml才能設定 excludePodSecurityPolicy 至 true 或新增 --set excludePodSecurityPolicy=true 至 helm upgrade 命令、然後才能升級叢集。
|
-
下載最新的Astra Trident版本。
-
使用
helm upgrade
命令位置trident-operator-23.04.0.tgz
反映您要升級的版本。helm upgrade <name> trident-operator-23.04.0.tgz
如果您在初始安裝期間設定任何非預設選項(例如指定Trident和csi映像的私有、鏡射登錄)、請使用
--set
為了確保升級命令中包含這些選項、否則這些值會重設為預設值。例如、變更的預設值
tridentDebug
,執行下列命令:helm upgrade <name> trident-operator-23.04.0-custom.tgz --set tridentDebug=true
-
執行
helm list
以確認圖表和應用程式版本均已升級。執行tridentctl logs
以檢閱任何偵錯訊息。
Trident營運者將識別現有的Astra Trident安裝、並將其升級至與營運者相同的版本。
從非營運者安裝升級
您可以從升級至最新版的Trident運算子 tridentctl
安裝:
-
下載最新的Astra Trident版本。
# Download the release required [23.04.0] mkdir 23.04.0 cd 23.04.0 wget https://github.com/NetApp/trident/releases/download/v22.01.1/trident-installer-23.04.0.tar.gz tar -xf trident-installer-23.04.0.tar.gz cd trident-installer
-
建立
tridentorchestrator
資訊清單中的CRD。kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
-
在同一個命名空間中部署叢集範圍的運算子。
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
-
建立
TridentOrchestrator
用於安裝Astra Trident的CR。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
-
確認 Trident 已升級至所需版本。
kubectl describe torc trident | grep Message -A 3 Message: Trident installed Namespace: trident Status: Installed Version: v23.04.0
現有的後端和PVCS會自動提供使用。