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

升級Astra Control Center

貢獻者

若要升級 Astra Control Center 、請下載安裝映像並完成這些指示。您可以使用此程序、在連線網際網路或無線環境中升級Astra Control Center。

這些指示說明 Astra Control Center 從最新版本升級至目前版本的程序。您無法直接從目前版本之後的兩個或更多版本升級。如果您安裝的 Astra Control Center 版本比最新版本落後許多版本、您可能需要執行鏈結升級至最新版本、直到安裝的 Astra Control Center 僅比最新版本落後一個版本為止。如需已發行版本的完整清單、請參閱 "版本資訊"

開始之前

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

  • * 已啟用 "Astra Control 資源配置程式" Astra Trident Running *

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

      kubectl get tridentversion -n trident
      註 如果您執行的是 Astra Trident 23.01 或更早版本、請使用這些項目 "說明" 在升級至 Astra Control Provisioner 之前、先升級至較新版本的 Astra Trident 。如果您的 Astra Trident 位於 24.02 版的四個版本視窗內、您可以直接升級至 Astra Control Provisioner 24.02 。例如、您可以直接從 Astra Trident 23.04 升級至 Astra Control Provisioner 24.02 。
    2. 確認 Astra Control Provisioner 已完成 "已啟用"。Astra Control Provisioner 無法搭配 23.10 之前的 Astra Control Center 版本使用。升級 Astra Control Provisioner 、使其與您升級的 Astra Control Center 版本相同、以便存取最新功能。

  • * 支援的 Kubernetes 發佈 *

    判斷您執行的 Kubernetes 版本:

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

    判斷可用的叢集資源:

    kubectl describe node <node name>
  • * 預設儲存類別 *

    判斷您的預設儲存類別:

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

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

    kubectl get apiservices
  • * (僅限本機登錄)可用於推送及上傳 Astra Control Center Images ( Astra 控制中心影像)的本機登錄 *

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

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

    kubectl get clusteroperators

您也應該考慮下列事項:

提示 當排程、備份和快照未執行時、請在維護期間執行升級。
  • * 存取 NetApp Astra 控制影像登錄 * :
    您可以選擇從 NetApp 映像登錄取得 Astra Control 的安裝映像和功能增強功能、例如 Astra Control Provisioner 。

    1. 記錄您登入登錄所需的 Astra Control 帳戶 ID 。

      您可以在 Astra Control Service 網頁 UI 中看到您的帳戶 ID 。選取頁面右上角的圖示、選取 * API access* 、然後寫下您的帳戶 ID 。

    2. 從同一頁面選取 * 產生 API 權杖 * 、然後將 API 權杖字串複製到剪貼簿、並將其儲存在編輯器中。

    3. 登入 Astra Control 登錄:

      docker login cr.astra.netapp.io -u <account-id> -p <api-token>
  • * Istio 服務網狀網路部署 *
    如果您在 Astra Control Center 安裝期間安裝了 Istio 服務網格、此 Astra Control Center 升級將包含 Istio 服務網格。如果您還沒有服務網格、則在期間只能安裝一個網格 "初始部署" 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

從下列其中一個位置下載 Astra Control Center 影像:

  • *Astra Control Service 映像登錄 * :如果您不將本機登錄與 Astra Control Center 映像搭配使用、或是您偏好從 NetApp 支援網站 下載套件時使用此方法、請使用此選項。

  • * NetApp 支援網站 * :如果您將本機登錄與 Astra 控制中心影像搭配使用、請使用此選項。

Astra Control 影像登錄
  1. 登入 Astra Control Service 。

  2. 在儀表板上、選取 * 部署自動管理的 Astra Control* 執行個體。

  3. 依照指示登入 Astra Control 影像登錄、拉出 Astra Control Center 安裝映像、並擷取映像。

NetApp 支援網站
  1. 下載包含Astra Control Center的套裝組合 (astra-control-center-[version].tar.gz)從 "Astra Control Center 下載頁面"

  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

如果您使用本機登錄、請完成其他步驟

如果您打算將 Astra Control Center 套裝軟體推送至本機登錄、則需要使用 NetApp Astra kubectl 命令列外掛程式。

移除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. 如果您打算將 Astra Control Center 套件推送至本機登錄、請為您的容器引擎完成適當的步驟順序:

    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/
      kubectl-astra/
      acc.manifest.bundle.yaml

    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=24.02.0-69
      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=24.02.0-69
      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://downloads.example.io/docker-astra-control-prod/netapp/astra/acc/24.02.0-69/image:version
  2. 變更目錄:

    cd manifests

安裝更新的Astra Control Center操作員

  1. (僅限本機登錄)如果您使用本機登錄、請完成下列步驟:

    1. 開啟 Astra Control Center 營運商部署 YAML :

      vim astra_control_center_operator_deploy.yaml
      註 附註的Y反 洗錢範例遵循下列步驟。
    2. 如果您使用需要驗證的登錄、請取代或編輯的預設行 imagePullSecrets: [] 提供下列功能:

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

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

    5. 將下列值新增至「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: 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:24.02.68
            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
  2. 安裝更新的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
  3. 確認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]
    註 附註的Y反 洗錢範例遵循下列步驟。
  2. 變更Astra版本號碼 (astraVersion 內部 spec)自 23.10.024.02.0

    註 您無法直接從目前版本之後的兩個或更多版本升級。如需已發行版本的完整清單、請參閱 "版本資訊"
    spec:
      accountName: "Example"
      astraVersion: "[Version number]"
  3. 變更映像登錄:

    • (僅限本機登錄)如果您使用本機登錄、請確認映像登錄路徑與您在中將映像推入的登錄路徑相符 上一步。更新 imageRegistry 內部 spec 如果自上次安裝後本機登錄已變更。

    • ( Astra Control 影像登錄)使用 Astra Control 影像登錄 (cr.astra.netapp.io)您曾經下載更新版的 Astra Control 套裝軟件。

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

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

    additionalValues:
        nautilus:
          startupProbe:
            periodSeconds: 30
            failureThreshold: 600
        keycloak-operator:
          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      24.02.0-69   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. 確認您所有的託管叢集和應用程式仍存在且受到保護。