使用 Kubernetes 工具來升級間接連線的已啟用 Azure Arc 的資料控制器
本文說明如何使用 Kubernetes 工具來升級間接連線的已啟用 Azure Arc 的資料控制器。
在資料控制器升級期間,可能會升級部分的資料控制平面,例如「自訂資源定義 (CRD)」和容器。 資料控制器的升級不會造成資料服務 (SQL 受控執行個體或 PostgreSQL 伺服器) 停機。
在本文中,您會將 .yaml 檔案套用至:
- 建立執行升級的服務帳戶。
- 升級啟動載入器。
- 升級資料控制器。
注意
某些資料服務層級和模式已正式推出,有些則處於預覽狀態。 如果您在相同的資料控制器上安裝 GA 和預覽服務,則無法就地升級。 若要升級,請刪除所有非 GA 資料庫執行個體。 您可以在 [版本資訊] 中找到正式推出和預覽服務的清單。
必要條件
開始升級資料控制器之前,您需要:
- 連線並驗證 Kubernetes 叢集
- 已選取現有 Kubernetes 內容
您需要具有 imageTag: v1.0.0_2021-07-30
或更新版本的間接連線資料控制器。
安裝工具
若要使用 Kubernetes 工具來升級資料控制器,您必須安裝 Kubernetes 工具。
本文中的範例會使用 kubectl
,但您可以使用類似的方法搭配其他 Kubernetes 工具,例如 Kubernetes 儀表板、oc
或 Helm (如果您熟悉這些工具和 Kubernetes yaml/json)。
檢視可用的映像並選擇版本
使用下列命令提取資料控制器的可用映像清單:
az arcdata dc list-upgrades --k8s-namespace <namespace>
上述命令會傳回類似下列範例的輸出:
Found 2 valid versions. The current datacontroller version is <current-version>.
<available-version>
...
升級資料控制器
本節說明如何升級間接連線的資料控制器。
注意
某些資料服務層級和模式已正式推出,有些則處於預覽狀態。 如果您在相同的資料控制器上安裝 GA 和預覽服務,則無法就地升級。 若要升級,請刪除所有非 GA 資料庫執行個體。 您可以在 [版本資訊] 中找到正式推出和預覽服務的清單。
如需支援的升級路徑,請參閱升級已啟用 Azure Arc 的資料服務。
升級
您必須連線並驗證 Kubernetes 叢集,並在開始升級資料控制器之前選取現有的 Kubernetes 內容。
建立執行升級的服務帳戶
重要
需要 Kubernetes 權限才能建立服務帳戶、角色繫結、叢集角色、叢集角色繫結,以及授與服務帳戶的所有 RBAC 權限。
儲存 arcdata-deployer.yaml 的複本,並將檔案中的預留位置 {{NAMESPACE}}
換成資料控制器的命名空間,例如:arc
。 執行下列命令,使用已編輯的檔案建立部署器服務帳戶。
kubectl apply --namespace arc -f arcdata-deployer.yaml
升級啟動載入器
下列命令會建立作業來升級啟動載入器和相關的 Kubernetes 物件。
重要
下列命令中的 yaml 檔案預設為 mcr.microsoft.com/arcdata。 請儲存 yaml 檔案的複本,並視需要將其更新為使用不同的登錄/存放庫。
kubectl apply --namespace arc -f https://raw.githubusercontent.com/microsoft/azure_arc/main/arc_data_services/upgrade/yaml/bootstrapper-upgrade-job.yaml
升級資料控制器
下列命令會修補映射標籤,以便升級資料控制器。
kubectl apply --namespace arc -f https://raw.githubusercontent.com/microsoft/azure_arc/main/arc_data_services/upgrade/yaml/data-controller-upgrade.yaml
監視升級狀態
您可以使用 kubectl 來監視升級進度。
kubectl
kubectl get datacontrollers --namespace <namespace> -w
kubectl get monitors --namespace <namespace> -w
升級流程分為兩部分。 控制器會先升級,接著監視堆疊也會跟著升級。 在升級期間,請使用 kubectl get monitors -n <namespace> -w
來檢視狀態。 輸出將是:
NAME STATUS AGE
monitorstack Updating 36m
monitorstack Updating 36m
monitorstack Updating 39m
monitorstack Updating 39m
monitorstack Updating 41m
monitorstack Ready 41m
疑難排解
當所需的版本設定為特定版本時,啟動載入器作業會嘗試升級至該版本,直到成功為止。 如果升級成功,規格的 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>
若要檢視常見的錯誤以及如何進行疑難排解,請移至針對資源進行疑難排解。