Share via


使用 CLI 升級間接連線的 Azure Arc 資料控制器

本文說明如何使用 Azure CLI (az) 升級間接連線且已啟用 Azure Arc 的資料控制器。

在資料控制器升級期間,可能會升級部分的資料控制平面,例如自訂資源定義 (CRD) 和容器。 資料控制器的升級不會造成資料服務 (SQL 受控理執行個體或 PostgreSQL 伺服器) 停機。

必要條件

您需要具有 imageTag v1.0.0_2021-07-30 或更新版本的間接連線資料控制器。

若要檢查版本,請執行:

kubectl get datacontrollers -n <namespace> -o custom-columns=BUILD:.spec.docker.imageTag

安裝工具

您必須先安裝下列項目,才能繼續進行本文中的工作:

本文中的範例會使用角括弧 < ... > 來識別您需要在執行指令碼之前取代的值。 取代括弧和括弧內的值。

arcdata 延伸模組與映像版本相關。 檢查您是否有正確的 arcdata 延伸模組版本,而此版本對應至版本記錄中您想要升級至的映像版本。

檢視可用的映像並選擇版本

使用下列命令提取資料控制器的可用映像清單:

az arcdata dc list-upgrades --k8s-namespace <namespace>

上述命令會傳回類似下列範例的輸出:

Found 2 valid versions.  The current datacontroller version is v1.0.0_2021-07-30.
v1.1.0_2021-11-02
v1.0.0_2021-07-30

升級資料控制器

本節說明如何升級間接連線的資料控制器。

注意

某些資料服務層級和模式已正式推出,有些則為預覽版。 如果您在相同的資料控制器上安裝 GA 和預覽服務,則無法就地升級。 若要升級,請刪除所有非 GA 資料庫執行個體。 您可以在 [版本資訊] 中找到正式推出和預覽服務的清單。

如需支援的升級路徑,請參閱升級已啟用 Azure Arc 的資料服務

升級

您必須連線並驗證 Kubernetes 叢集,並在開始升級 Azure Arc 資料控制器之前選取現有的 Kubernetes 內容。

您可以先執行試執行。 試執行會驗證登錄是否存在、版本結構描述,以及私人存放庫授權權杖 (使用時)。 若要執行試執行,請使用 az arcdata dc upgrade 命令中的 --dry-run 參數。 例如:

az arcdata dc upgrade --desired-version <version> --k8s-namespace <namespace> --dry-run --use-k8s

上述命令的輸出為:

Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
****Dry Run****
Arcdata Control Plane would be upgraded to: <version-tag>

若要升級資料控制器,請執行 az arcdata dc upgrade 命令,將映像標籤指定為 --desired-version

az arcdata dc upgrade --name <data controller name> --desired-version <image tag> --k8s-namespace <namespace> --use-k8s

範例:

az arcdata dc upgrade --name arcdc --desired-version v1.7.0_2022-05-24 --k8s-namespace arc --use-k8s

上述命令的輸出會顯示步驟的狀態:

Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
Creating service account: arc:cr-upgrade-worker
Creating cluster role: arc:cr-upgrade-worker
Creating cluster role binding: arc:crb-upgrade-worker
Cluster role binding: arc:crb-upgrade-worker created successfully.
Cluster role: arc:cr-upgrade-worker created successfully.
Service account arc:cr-upgrade-worker has been created successfully.
Creating privileged job arc-elevated-bootstrapper-job

監視升級狀態

升級流程分為兩部分。 控制器會先升級,接著監視堆疊也會跟著升級。 您可以使用 CLI 來監視升級進度。

CLI

 az arcdata dc status show --name <data controller name> --k8s-namespace <namespace> --use-k8s

升級完成時,輸出將會是:

Ready

疑難排解

當所需的版本設定為特定版本時,啟動載入器工作會嘗試升級至該版本,直到成功為止。 如果升級成功,規格的 RunningVersion 屬性會更新為新版本。 升級可能會失敗,例如不正確的映像標籤、無法連線至登錄或存放庫、配置給容器的 CPU 或記憶體不足,或儲存體不足。

  1. 執行下列命令,以查看是否有任何 Pod 顯示 Error 狀態或有大量重新啟動:

    kubectl get pods --namespace <namespace>
    
  2. 若要查看事件以了解是否發生錯誤,請執行

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. 若要取得 Pod 中的容器清單,請執行

    kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
    
  4. 若要取得容器的記錄,請執行

    kubectl logs <pod name> <container name> --namespace <namespace>
    

若要檢視常見的錯誤以及如何進行疑難排解,請移至針對資源進行疑難排解