本文說明如何使用 Azure CLI (az) 升級直接連線且已啟用 Azure Arc 的資料控制器。
在資料控制器升級期間,可能會升級部分的資料控制平面,例如自訂資源定義 (CRD) 和容器。 數據控制器的升級不會造成數據服務的停機時間。
Prerequisites
您需要具有 imageTag v1.0.0_2021-07-30 或更新版本的直接連線資料控制器。
若要檢查版本,請執行:
kubectl get datacontrollers -n <namespace> -o custom-columns=BUILD:.spec.docker.imageTag
Install tools
您必須先安裝下列項目,才能繼續進行本文中的工作:
本文中的範例會使用角括弧 < ... > 來識別您需要在執行指令碼之前取代的值。 取代括弧和括弧內的值。
arcdata 延伸模組與映像版本相關。 Check that you have the correct arcdata extension version that corresponds to the image version you want to upgrade to in the Version log.
檢視可用的映像並選擇版本
使用下列命令提取資料控制器的可用映像清單:
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
升級資料控制器
本節說明如何升級直接連線的資料控制器。
Note
某些資料服務層級和模式已正式推出,有些則處於預覽狀態。 如果您在相同的資料控制器上安裝 GA 和預覽服務,則無法就地升級。 若要升級,請刪除所有非 GA 資料庫執行個體。 You can find the list of generally available and preview services in the Release Notes.
如需支援的升級路徑,請參閱升級已啟用 Azure Arc 的資料服務。
Authenticate
您必須連線並驗證 Kubernetes 叢集,並在開始升級 Azure Arc 資料控制器之前選取現有的 Kubernetes 內容。
kubectl config use-context <Kubernetes cluster name>
升級資料控制器
您可以先執行試執行。 試執行會驗證登錄是否存在、版本結構描述,以及私人存放庫授權權杖 (使用時)。 若要執行試執行,請使用 --dry-run 命令中的 az arcdata dc upgrade 參數。 For example:
az arcdata dc upgrade --resource-group <resource group> --name <data controller name> --desired-version <version> --dry-run [--no-wait]
上述命令的輸出為:
Preparing to upgrade dc arcdc in namespace arc to version <version-tag>.
****Dry Run****
Arcdata Control Plane would be upgraded to: <version-tag>
升級 Arc 資料控制器延伸模組之後,請執行 az arcdata dc upgrade 命令,並使用 --desired-version 指定映像標籤。
az arcdata dc upgrade --resource-group <resource group> --name <data controller name> --desired-version <version> [--no-wait]
Example:
az arcdata dc upgrade --resource-group rg-arcds --name dc01 --desired-version v1.7.0_2022-05-24 [--no-wait]
監視升級狀態
您可以使用 CLI 來監視升級進度。
CLI
az arcdata dc status show --resource-group <resource group>
升級流程分為兩部分。 首先,控制器會升級,然後升級監視堆疊。 升級完成時,輸出將會是:
Ready
Troubleshooting
當所需的版本設定為特定版本時,啟動載入器作業會嘗試升級至該版本,直到成功為止。 如果升級成功,規格的 RunningVersion 屬性會更新為新版本。 升級可能會失敗,例如不正確的映像標籤、無法連線至登錄或存放庫、配置給容器的 CPU 或記憶體不足,或儲存體不足。
執行下列命令,以查看是否有任何 Pod 顯示
Error狀態或有大量重新啟動:kubectl get pods --namespace <namespace>若要查看事件以了解是否發生錯誤,請執行
kubectl describe pod <pod name> --namespace <namespace>若要取得 Pod 中的容器清單,請執行
kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'若要取得容器的記錄,請執行
kubectl logs <pod name> <container name> --namespace <namespace>
To view common errors and how to troubleshoot them go to Troubleshooting resources.