Skip to main content
此產品有較新版本可以使用。
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

升級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

  1. 前往 "Astra Control Center產品下載頁面" 於 NetApp 支援網站。您可以從下拉式功能表中選取所需的最新版本或其他版本。

  2. 下載包含Astra Control Center的套裝組合 (astra-control-center-[version].tar.gz)。

  3. (建議但可選)下載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 驗證成功之後。

  4. 從Astra Control Center套裝組合擷取映像:

    tar -vxzf astra-control-center-[version].tar.gz

移除NetApp Astra kubectl外掛程式、然後重新安裝

您可以使用 NetApp Astra kubectl 命令列外掛程式、將影像推送至本機 Docker 儲存庫。

  1. 確定是否安裝了外掛程式:

    kubectl astra
  2. 請採取下列其中一項行動:

    • 如果已安裝外掛程式、則命令應傳回KECBECtl外掛程式說明。若要移除現有版本的kubecl-Astra、請執行下列命令: delete /usr/local/bin/kubectl-astra

    • 如果命令傳回錯誤、表示外掛程式尚未安裝、您可以繼續下一步進行安裝。

  3. 安裝外掛程式:

    1. 列出可用的NetApp Astra kubectl外掛程式二進位檔、並記下作業系統和CPU架構所需的檔案名稱:

      註 KECBECTl外掛程式庫是tar套件的一部分、會擷取到資料夾中 kubectl-astra
    ls kubectl-astra/
    1. 將正確的二進位檔移至目前路徑、並將其重新命名為 kubectl-astra

      cp kubectl-astra/<binary-name> /usr/local/bin/kubectl-astra

將映像新增至本機登錄

  1. 為您的Container引擎完成適當的步驟順序:

Docker
  1. 切換到tar檔案的根目錄。您應該會看到這個檔案和目錄:

    acc.manifest.bundle.yaml
    acc/

  2. 將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>
Podman
  1. 切換到tar檔案的根目錄。您應該會看到這個檔案和目錄:

    acc.manifest.bundle.yaml
    acc/

  2. 登入您的登錄:

    podman login <YOUR_REGISTRY>
  3. 針對您使用的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操作員

  1. 變更目錄:

    cd manifests
  2. 編輯Astra Control Center營運者部署yaml (astra_control_center_operator_deploy.yaml)以參考您的本機登錄和機密。

    vim astra_control_center_operator_deploy.yaml
    1. 如果您使用需要驗證的登錄、請取代或編輯的預設行 imagePullSecrets: [] 提供下列功能:

      imagePullSecrets: [{name: astra-registry-cred}]
    2. 變更 [your_registry_path] 適用於 kube-rbac-proxy 映像到您在中推入映像的登錄路徑 上一步

    3. 變更 [your_registry_path] 適用於 acc-operator 映像到您在中推入映像的登錄路徑 上一步

    4. 將下列值新增至 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
  3. 安裝更新的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
  4. 確認Pod正在執行:

    kubectl get pods -n netapp-acc-operator

升級Astra Control Center

  1. 編輯Astra Control Center自訂資源(CR):

    kubectl edit AstraControlCenter -n [netapp-acc or custom namespace]
  2. 變更Astra版本號碼 (astraVersion 內部 spec)升級至您要升級的版本:

    spec:
      accountName: "Example"
      astraVersion: "[Version number]"
  3. 確認您的映像登錄路徑符合您在中推送映像的登錄路徑 上一步。更新 imageRegistry 內部 spec 如果登錄自上次安裝後有所變更。

      imageRegistry:
        name: "[your_registry_path]"
  4. 將下列項目新增至 crds 的內部組態 spec

    crds:
      shouldUpgrade: true
  5. 在中新增下列行 additionalValues 內部 spec 在Astra Control Center CR:

    additionalValues:
        nautilus:
          startupProbe:
            periodSeconds: 30
            failureThreshold: 600
  6. 儲存並結束檔案編輯器。將套用變更、並開始升級。

  7. (可選)驗證Pod是否終止並再次可用:

    watch kubectl get pods -n [netapp-acc or custom namespace]
  8. 等待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

驗證系統狀態

  1. 登入Astra Control Center。

  2. 確認版本已升級。請參閱UI中的* Support*頁面。

  3. 確認您所有的託管叢集和應用程式仍存在且受到保護。