升級Astra Control Center
若要升級Astra Control Center、請從NetApp 支援網站 下列網址下載安裝套裝軟體、並完成這些指示。您可以使用此程序、在連線網際網路或無線環境中升級Astra Control Center。
-
升級前、請參閱 "營運環境需求" 確保您的環境仍符合Astra Control Center部署的最低需求。您的環境應具備下列條件:
-
支援的 Astra Trident 版本
若要判斷您執行的版本、請針對現有的 Astra Control Center 執行下列命令:kubectl get tridentversion -n trident
請參閱 "Astra Trident文件" 升級舊版。
您必須升級至Astra Trident 22.10 * PRIOS*、才能升級至Kubernetes 1.25。 -
支援的 Kubernetes 發佈
若要判斷您執行的版本、請針對現有的 Astra Control Center 執行下列命令:kubectl get nodes -o wide
-
足夠的叢集資源
若要判斷叢集資源、請在現有的 Astra Control Center 叢集中執行下列命令:kubectl describe node <node name>
-
您可以用來推送和上傳Astra Control Center映像的登錄
-
預設儲存類別
若要判斷預設的儲存類別、請對現有的 Astra Control Center 執行下列命令:kubectl get storageclass
-
-
(僅限OpenShift)確保所有叢集操作員都處於健全狀態且可用。
kubectl get clusteroperators
-
確保所有API服務都處於健全狀態且可用。
kubectl get apiservices
-
在開始升級之前、請先登出Astra Control Center UI。
Astra Control Center升級程序會引導您完成下列高層級步驟:
請勿刪除Astra Control Center運算子(例如、 kubectl delete -f astra_control_center_operator_deploy.yaml )在Astra Control Center升級或操作期間、隨時避免刪除Pod。
|
當排程、備份和快照未執行時、請在維護期間執行升級。 |
下載並擷取Astra Control Center
-
前往 "Astra Control Center產品下載頁面" 於 NetApp 支援網站。您可以從下拉式功能表中選取所需的最新版本或其他版本。
-
下載包含Astra Control Center的套裝組合 (
astra-control-center-[version].tar.gz
)。 -
(建議但可選)下載Astra Control Center的憑證與簽名套件 (
astra-control-center-certs-[version].tar.gz
)若要驗證套件的簽名:tar -vxzf astra-control-center-certs-[version].tar.gz
openssl dgst -sha256 -verify certs/AstraControlCenter-public.pub -signature certs/astra-control-center-[version].tar.gz.sig astra-control-center-[version].tar.gz
隨即顯示輸出
Verified OK
驗證成功之後。 -
從Astra Control Center套裝組合擷取映像:
tar -vxzf astra-control-center-[version].tar.gz
移除NetApp Astra kubectl外掛程式、然後重新安裝
您可以使用 NetApp Astra kubectl 命令列外掛程式、將影像推送至本機 Docker 儲存庫。
-
確定是否安裝了外掛程式:
kubectl astra
-
請採取下列其中一項行動:
-
如果已安裝外掛程式、則命令應傳回KECBECtl外掛程式說明。若要移除現有版本的kubecl-Astra、請執行下列命令:
delete /usr/local/bin/kubectl-astra
。 -
如果命令傳回錯誤、表示外掛程式尚未安裝、您可以繼續下一步進行安裝。
-
-
安裝外掛程式:
-
列出可用的NetApp Astra kubectl外掛程式二進位檔、並記下作業系統和CPU架構所需的檔案名稱:
KECBECTl外掛程式庫是tar套件的一部分、會擷取到資料夾中 kubectl-astra
。
ls kubectl-astra/
-
將正確的二進位檔移至目前路徑、並將其重新命名為
kubectl-astra
:cp kubectl-astra/<binary-name> /usr/local/bin/kubectl-astra
-
將映像新增至本機登錄
-
為您的Container引擎完成適當的步驟順序:
-
切換到tar檔案的根目錄。您應該會看到這個檔案和目錄:
acc.manifest.bundle.yaml
acc/
-
將Astra Control Center映像目錄中的套件映像推送到本機登錄。執行之前、請先進行下列替換
push-images
命令:-
以<BUNDLE_FILE> Astra Control套裝組合檔案的名稱取代 (
acc.manifest.bundle.yaml
)。 -
以<MY_FULL_REGISTRY_PATH> Docker儲存庫的URL取代支援;例如 "https://<docker-registry>"。
-
以<MY_REGISTRY_USER> 使用者名稱取代。
-
以<MY_REGISTRY_TOKEN> 登錄的授權權杖取代。
kubectl astra packages push-images -m <BUNDLE_FILE> -r <MY_FULL_REGISTRY_PATH> -u <MY_REGISTRY_USER> -p <MY_REGISTRY_TOKEN>
-
-
切換到tar檔案的根目錄。您應該會看到這個檔案和目錄:
acc.manifest.bundle.yaml
acc/
-
登入您的登錄:
podman login <YOUR_REGISTRY>
-
針對您使用的Podman版本、準備並執行下列其中一個自訂指令碼。以包含任何子目錄的儲存庫URL取代<MY_FULL_REGISTRY_PATH> 。
Podman 4
export REGISTRY=<MY_FULL_REGISTRY_PATH> export PACKAGENAME=acc export PACKAGEVERSION=23.04.2-7 export DIRECTORYNAME=acc for astraImageFile in $(ls ${DIRECTORYNAME}/images/*.tar) ; do astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image: //') astraImageNoPath=$(echo ${astraImage} | sed 's:.*/::') podman tag ${astraImageNoPath} ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath} podman push ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath} done
Podman 3
export REGISTRY=<MY_FULL_REGISTRY_PATH> export PACKAGENAME=acc export PACKAGEVERSION=23.04.2-7 export DIRECTORYNAME=acc for astraImageFile in $(ls ${DIRECTORYNAME}/images/*.tar) ; do astraImage=$(podman load --input ${astraImageFile} | sed 's/Loaded image: //') astraImageNoPath=$(echo ${astraImage} | sed 's:.*/::') podman tag ${astraImageNoPath} ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath} podman push ${REGISTRY}/netapp/astra/${PACKAGENAME}/${PACKAGEVERSION}/${astraImageNoPath} done
指令碼所建立的映像路徑應如下所示、視登錄組態而定: https://netappdownloads.jfrog.io/docker-astra-control-prod/netapp/astra/acc/23.04.2-7/image:version
安裝更新的Astra Control Center操作員
-
變更目錄:
cd manifests
-
編輯Astra Control Center營運者部署yaml (
astra_control_center_operator_deploy.yaml
)以參考您的本機登錄和機密。vim astra_control_center_operator_deploy.yaml
-
如果您使用需要驗證的登錄、請取代或編輯的預設行
imagePullSecrets: []
提供下列功能:imagePullSecrets: [{name: astra-registry-cred}]
-
變更
[your_registry_path]
適用於kube-rbac-proxy
映像到您在中推入映像的登錄路徑 上一步。 -
變更
[your_registry_path]
適用於acc-operator
映像到您在中推入映像的登錄路徑 上一步。 -
將下列值新增至
env
區段:- name: ACCOP_HELM_UPGRADETIMEOUT value: 300m
apiVersion: apps/v1 kind: Deployment metadata: labels: control-plane: controller-manager name: acc-operator-controller-manager namespace: netapp-acc-operator spec: replicas: 1 selector: matchLabels: control-plane: controller-manager strategy: type: Recreate template: metadata: labels: control-plane: controller-manager spec: containers: - args: - --secure-listen-address=0.0.0.0:8443 - --upstream=http://127.0.0.1:8080/ - --logtostderr=true - --v=10 image: [your_registry_path]/kube-rbac-proxy:v4.8.0 name: kube-rbac-proxy ports: - containerPort: 8443 name: https - args: - --health-probe-bind-address=:8081 - --metrics-bind-address=127.0.0.1:8080 - --leader-elect env: - name: ACCOP_LOG_LEVEL value: "2" - name: ACCOP_HELM_UPGRADETIMEOUT value: 300m image: [your_registry_path]/acc-operator:23.04.36 imagePullPolicy: IfNotPresent livenessProbe: httpGet: path: /healthz port: 8081 initialDelaySeconds: 15 periodSeconds: 20 name: manager readinessProbe: httpGet: path: /readyz port: 8081 initialDelaySeconds: 5 periodSeconds: 10 resources: limits: cpu: 300m memory: 750Mi requests: cpu: 100m memory: 75Mi securityContext: allowPrivilegeEscalation: false imagePullSecrets: [] securityContext: runAsUser: 65532 terminationGracePeriodSeconds: 10
-
-
安裝更新的Astra Control Center操作員:
kubectl apply -f astra_control_center_operator_deploy.yaml
回應範例:
namespace/netapp-acc-operator unchanged customresourcedefinition.apiextensions.k8s.io/astracontrolcenters.astra.netapp.io configured role.rbac.authorization.k8s.io/acc-operator-leader-election-role unchanged clusterrole.rbac.authorization.k8s.io/acc-operator-manager-role configured clusterrole.rbac.authorization.k8s.io/acc-operator-metrics-reader unchanged clusterrole.rbac.authorization.k8s.io/acc-operator-proxy-role unchanged rolebinding.rbac.authorization.k8s.io/acc-operator-leader-election-rolebinding unchanged clusterrolebinding.rbac.authorization.k8s.io/acc-operator-manager-rolebinding configured clusterrolebinding.rbac.authorization.k8s.io/acc-operator-proxy-rolebinding unchanged configmap/acc-operator-manager-config unchanged service/acc-operator-controller-manager-metrics-service unchanged deployment.apps/acc-operator-controller-manager configured
-
確認Pod正在執行:
kubectl get pods -n netapp-acc-operator
升級Astra Control Center
-
編輯Astra Control Center自訂資源(CR):
kubectl edit AstraControlCenter -n [netapp-acc or custom namespace]
-
變更Astra版本號碼 (
astraVersion
內部spec
)升級至您要升級的版本:spec: accountName: "Example" astraVersion: "[Version number]"
-
確認您的映像登錄路徑符合您在中推送映像的登錄路徑 上一步。更新
imageRegistry
內部spec
如果登錄自上次安裝後有所變更。imageRegistry: name: "[your_registry_path]"
-
將下列項目新增至
crds
的內部組態spec
:crds: shouldUpgrade: true
-
在中新增下列行
additionalValues
內部spec
在Astra Control Center CR:additionalValues: nautilus: startupProbe: periodSeconds: 30 failureThreshold: 600
-
儲存並結束檔案編輯器。將套用變更、並開始升級。
-
(可選)驗證Pod是否終止並再次可用:
watch kubectl get pods -n [netapp-acc or custom namespace]
-
等待Astra Control狀態狀態顯示升級已完成且準備就緒 (
True
):kubectl get AstraControlCenter -n [netapp-acc or custom namespace]
回應:
NAME UUID VERSION ADDRESS READY astra 9aa5fdae-4214-4cb7-9976-5d8b4c0ce27f 23.04.2-7 10.111.111.111 True
若要在作業期間監控升級狀態、請執行下列命令: kubectl get AstraControlCenter -o yaml -n [netapp-acc or custom namespace]
若要檢查Astra控制中心的操作員記錄、請執行下列命令:
kubectl logs deploy/acc-operator-controller-manager -n netapp-acc-operator -c manager -f
驗證系統狀態
-
登入Astra Control Center。
-
確認版本已升級。請參閱UI中的* Support*頁面。
-
確認您所有的託管叢集和應用程式仍存在且受到保護。