升級 Azure Kubernetes 機群管理員資源的中樞叢集類型
在本文中,您將了解如何將沒有中樞叢集的 Azure Kubernetes 機群管理員 (Kubernetes 機群) 資源升級為具有中樞叢集的 Kubernetes 機群資源。 若建立沒有中樞叢集的 Kubernetes 機群資源,就不會建立用於 Kubernetes 機群資源的中央 Azure Kubernetes Service (AKS) 叢集。 若建立具有中樞叢集的 Kubernetes 機群資源,就會建立中央受控 AKS 叢集,以支援工作負載協調流程和第 4 層負載平衡等案例。
如需詳細資訊,請參閱選擇 Azure Kubernetes 機群管理員選項。
先決條件與限制
如果您沒有 Azure 訂閱,請在開始之前,先建立 Azure 免費帳戶。
- 安裝 Azure CLI 或升級至最新版本。
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 您必須具備沒有中樞叢集的 Kubernetes 機群資源。 本文中的步驟說明如何建立沒有中樞叢集的 Kubernetes 機群資源。 如果您已經有一個,您可以略過初始設定,從升級 Kubernetes 機群資源的中樞叢集類型開始。
- 本文也包含加入成員叢集的步驟。 如果您打算跟著做,您需要至少一個 AKS 叢集。
重要
沒有中樞叢集的 Kubernetes 機群資源可以升級為具有中樞叢集的 Kubernetes 機群資源。 然而,已經具有中樞叢集的 Kubernetes 機群資源無法降級為沒有中樞叢集的 Kubernetes 機群資源。 建立或升級時間之後,與具有中樞叢集的 Kubernetes 機群資源相關聯的所有組態選項和設定都會固定且無法變更。 從沒有中樞叢集的 Kubernetes 機群資源升級為具有中樞叢集的叢集,這項作業只能透過 Azure CLI 完成。 Azure 入口網站目前沒有相等的體驗。
初始設定
若要開始,請建立資源群組和沒有中樞叢集的 Kubernetes 機群資源,並將現有的 AKS 叢集加入為成員。 您必須針對要與機群資源建立關聯的每個個別成員叢集重複 az fleet member create
命令。
RG=myResourceGroup
LOCATION=eastus
FLEET=myKubernetesFleet
FLEET_MEMBER=<name-identifying-member-cluster>
SUBSCRIPTION_ID=<your-subscription-id>
CLUSTER=<your-aks-cluster-name>
# Create resource group
az group create -n $RG -l $LOCATION
# Create a hubless fleet resource
az fleet create -g $RG -n $FLEET
# Join member cluster to hubless fleet resource
az fleet member create --name $FLEET_MEMBER --fleet-name $FLEET --resource-group $RG --member-cluster-id /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RG/providers/Microsoft.ContainerService/managedClusters/$CLUSTER
升級 Kubernetes 機群資源的中樞叢集類型
若要升級 Kubernetes 機群資源的中樞叢集類型,請使用 az fleet create
命令並設定 --enable-hub
旗標。 請務必包含任何其他相關的組態選項,因為機群資源在完成此作業之後會變為固定。
# Upgrade the Kubernetes fleet resource without a hub cluster to one with a hub cluster
az fleet create --name $FLEET --resource-group $RG --enable-hub
驗證升級
執行 az fleet create
命令以升級機群資源之後,請檢視輸出,確認升級成功。 provisioningState
應該顯示 Succeeded
,而且應該有 hubProfile
欄位。 例如,請看下列的輸出:
{
...
"hubProfile": {
"agentProfile": {
"subnetId": null,
"vmSize": null
},
"apiServerAccessProfile": {
"enablePrivateCluster": false,
"enableVnetIntegration": false,
"subnetId": null
},
"dnsPrefix": "contoso-user-xxxx-xxxxxxx",
"fqdn": "contoso-user-flth-xxxxxx-xxxxxxxx.hcp.eastus.azmk8s.io",
"kubernetesVersion": "1.28.5",
"portalFqdn": "contoso-user-flth-xxxxxxx-xxxxxxxx.portal.hcp.eastus.azmk8s.io"
},
"provisioningState": "Succeeded"
...
}
重新加入成員叢集
若要將成員叢集重新加入至新升級的機群資源,請針對每個個別成員叢集使用 az fleet member reconcile
命令。
az fleet member reconcile -g $RG -f $FLEET -n $FLEET_MEMBER
注意
在發生升級之後,第一次加入機群資源的任何 AKS 叢集都不需要使用 az fleet member reconcile
協調。
確認已成功加入成員叢集
針對您重新加入新升級機群的每個成員叢集,檢視輸出,並確認 provisioningState
顯示 Succeeded
。 例如:
{
...
"provisioningState": "Succeeded"
...
}
確認正常運作
您需要中樞叢集的 Kubernetes API 存取權。 如果您沒有存取權,請參閱 Access Fleet 中樞叢集 Kubernetes API。
若要確認您新升級的 Kubernetes 機群資源正常運作,且已成功加入成員叢集,請確認您可以使用 kubectl get memberclusters
命令存取中樞叢集的 API 伺服器。
如果成功,輸出看起來應該會類似下列範例輸出:
NAME JOINED AGE
aks-member-1 True 2m
aks-member-2 True 2m
aks-member-3 True 2m
清除資源
完成後,您可以藉由刪除資源群組來移除機群資源和相關資源。 請記住,如果 AKS 叢集位於不同的資源群組中,則此作業不會將其加以移除。
az group delete -n $RG
下一步
Kubernetes 機群資源已升級為具有中樞叢集,您現在可以使用先前無法使用的功能。 例如,請參閱︰