Azure Kubernetes Fleet Manager リソースのハブ クラスターの種類をアップグレードする

この記事では、ハブ クラスターのない Azure Kubernetes Fleet Manager (Kubernetes Fleet) リソースを、ハブ クラスターを持つ Kubernetes Fleet リソースにアップグレードする方法について説明します。 Kubernetes Fleet リソースがハブ クラスターなしで作成されると、その Kubernetes Fleet リソース用に中央の Azure Kubernetes Service (AKS) クラスターは作成されません。 ハブ クラスターを含む Kubernetes Fleet リソースが作成されると、中央のマネージド AKS クラスターが作成され、ワークロード オーケストレーションやレイヤー 4 負荷分散などのシナリオが可能になります。

詳細については、「Azure Kubernetes Fleet Manager オプションの選択」を参照してください。

前提条件と制限事項

Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。

重要

ハブ クラスターのない Kubernetes Fleet リソースは、ハブ クラスターを持つ Kubernetes Fleet リソースにアップグレードできます。 ただし、既にハブ クラスターを持つ Kubernetes Fleet リソースをハブ クラスターなしの Kubernetes Fleet リソースにダウングレードすることはできません。 ハブ クラスターを持つ Kubernetes Fleet リソースに関連付けられているすべての構成オプションと設定は不変であり、作成またはアップグレード後に変更することはできません。 ハブ クラスターのない Kubernetes Fleet リソースからハブ クラスターのある Kubernetes Fleet リソースへのアップグレードは、Azure CLI でのみ実行できます。 現在、同等の Azure portal での操作はありません。

初期設定

まず、リソース グループとハブ クラスターなしの Kubernetes Fleet リソースを作成し、既存の 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 Fleet リソースのハブ クラスターの種類をアップグレードする

Kubernetes Fleet リソースのハブ クラスターの種類をアップグレードするには、--enable-hub フラグを設定して az fleet create コマンドを使用します。 この操作が完了するとフリート リソースは不変になるため、他の関連する構成オプションもすべて必ず含めるようにしてください。

# 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 コマンドを実行してフリート リソースをアップグレードした後、出力を表示してアップグレードが成功したことを確認します。 provisioningStateSucceeded となっており、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

Note

アップグレードが既に行われた後に初めてフリート リソースに参加する AKS クラスターは、az fleet member reconcile を使用して調整する必要はありません。

メンバー クラスターが正常に参加したことを確認する

新しくアップグレードされたフリートに再参加させるメンバー クラスターごとに、出力を表示し、provisioningStateSucceeded になっていることを確認します。 次に例を示します。

{
  ...
  "provisioningState": "Succeeded"
  ...
}

機能を検証する

ハブ クラスターの Kubernetes API へのアクセス権が必要です。 アクセス権がない場合は、「Azure Kubernetes Fleet Manager を使用したフリート リソースの Kubernetes API へのアクセス」を参照してください。

新しくアップグレードした Kubernetes Fleet リソースが正常に機能していること、およびメンバー クラスターが正常に参加したことを確認するには、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 Fleet リソースがアップグレードされてハブ クラスターを使用するようになったので、以前は利用できなかった機能を利用できます。 たとえば、次を参照してください。