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

升級Astra Control Center

貢獻者

若要升級Astra Control Center、請從NetApp 支援網站 下列網址下載安裝套裝軟體、並完成這些指示。您可以使用此程序、在連線網際網路或無線環境中升級Astra Control Center。

開始之前

升級之前、請確保您的環境仍符合 "Astra Control Center 部署的最低需求"。您的環境應具備下列條件:

  • 支援的 Astra Trident 版本

    Details

    判斷您正在執行的 Trident 版本:

    kubectl get tridentversion -n trident

    請參閱 "Astra Trident文件" 升級舊版。

    警告 您必須升級至Astra Trident 22.10 * PRIOS*、才能升級至Kubernetes 1.25。
  • 支援的 Kubernetes 發佈

    Details

    判斷您執行的 Kubernetes 版本:

    kubectl get nodes -o wide
  • 足夠的叢集資源

    Details

    判斷可用的叢集資源:

    kubectl describe node <node name>
  • 您可以用來推送和上傳Astra Control Center映像的登錄

  • 預設儲存類別

    Details

    判斷您的預設儲存類別:

    kubectl get storageclass
  • 健全且可用的 API 服務

    Details

    確保所有API服務均處於健全狀態且可供使用:

    kubectl get apiservices
  • (僅限 OpenShift )健全且可用的叢集操作員

    Details

    確保所有叢集操作員都處於健全狀態且可用。

    kubectl get clusteroperators
重要 在本程序中、您需要 如果您要升級 Astra Control Center 。您無法使用此更新的運算子升級至舊版 Astra Control Center 。
關於這項工作

Astra Control Center升級程序會引導您完成下列高層級步驟:

註 在開始升級之前、請先登出Astra Control Center UI。
重要 請勿刪除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-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 驗證成功之後。

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

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

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

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

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

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

    • 如果已安裝外掛程式、則命令應傳回 kubectl 外掛程式說明、您可以移除現有版本的 kubectl-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/
    kubectl-astra/
    acc.manifest.bundle.yaml

  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.07.0-25
    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.07.0-25
    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.07.0-25/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. 變更 ASTRA_IMAGE_REGISTRY 適用於 kube-rbac-proxy 映像到您在中推入映像的登錄路徑 上一步

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

    4. 將下列值新增至 env 區段:

      - name: ACCOP_HELM_UPGRADETIMEOUT
        value: 300m
    Astra 控制中心運算子部署 .yaml 範例:
    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: ASTRA_IMAGE_REGISTRY/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: ASTRA_IMAGE_REGISTRY/acc-operator:23.07.25
            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
        polaris-keycloak:
          livenessProbe:
            initialDelaySeconds: 180
          readinessProbe:
            initialDelaySeconds: 180
  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.07.0-25   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. 確認您所有的託管叢集和應用程式仍存在且受到保護。