クイック スタート: Azure CLI を使用して Azure Kubernetes Fleet Manager リソースを作成し、メンバー クラスターを参加させる

Azure CLI を使用してフリート リソースを作成し、後でメンバー クラスターとして Azure Kubernetes Service (AKS) クラスターに接続することで、Azure Kubernetes Fleet Manager (フリート) の使用を開始します。

前提条件

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

  • このドキュメントで参照されているフリートとメンバー クラスターに関する説明を、この機能の概念的概要に関する記事でお読みください。

  • さまざまなフリート構成オプションの比較を提供する、フリートの種類の概念の概要に関するページをお読みください。

  • アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます

  • Azure CLI へのログインに使用できる ID (ユーザーまたはサービス プリンシパル)。 このクイック スタートに記載されている手順を完了するには、この ID に、フリートと AKS リソースの種類に対する次のアクセス許可が必要です。

    • Microsoft.ContainerService/fleets/read
    • Microsoft.ContainerService/fleets/write
    • Microsoft.ContainerService/fleets/members/read
    • Microsoft.ContainerService/fleets/members/write
    • Microsoft.ContainerService/fleetMemberships/read
    • Microsoft.ContainerService/fleetMemberships/write
    • Microsoft.ContainerService/managedClusters/read
    • Microsoft.ContainerService/managedClusters/write
  • バージョン 2.53.1 以降の Azure CLI をインストールするかアップグレードします。

  • az extension add コマンドを使用して fleet Azure CLI 拡張機能をインストールし、バージョンが 1.0.0 以上であることを確認します。

    az extension add --name fleet
    
  • 以下の環境変数を設定します。

    export SUBSCRIPTION_ID=<subscription_id>
    export GROUP=<your_resource_group_name>
    export FLEET=<your_fleet_name>
    
  • az aks install-cli コマンドを使用して kubectlkubelogin をインストールします。

    az aks install-cli
    
  • Fleet リソースにメンバー クラスターとして参加させる AKS クラスターは、サポートされているバージョンの AKS 内にある必要があります。 AKS バージョンのサポート ポリシーの詳細については、こちらを参照してください。

リソース グループを作成する

Azure リソース グループは、Azure リソースが展開され管理される論理グループです。 リソース グループを作成する際は、場所の指定を求めるプロンプトが表示されます。 この場所は、リソース グループのメタデータが格納される場所です。また、リソースの作成時に別の場所を指定しない場合は、Azure でリソースが実行される場所でもあります。

Azure サブスクリプションを設定し、az group create コマンドを使用してリソース グループを作成します。

az account set -s ${SUBSCRIPTION_ID}
az group create --name ${GROUP} --location eastus

リソース グループが正常に作成された場合の出力の例は、次のようになります。

{
  "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo",
  "location": "eastus",
  "managedBy": null,
  "name": "fleet-demo",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": "Microsoft.Resources/resourceGroups"
}

フリート リソースを作成する

Fleet リソースを作成すると、後で AKS クラスターをメンバー クラスターとしてグループ化できます。 Azure CLI を使用して作成された場合、既定では、このリソースにより、メンバー クラスターのグループ化と更新のオーケストレーションが有効になります。 Fleet ハブが有効な場合、メンバー クラスターへの Kubernetes オブジェクトの伝達や、複数のメンバー クラスター間での L4 サービスの負荷分散など、他のプレビュー機能が有効になります。 詳細については、さまざまなフリート構成の比較を提供するフリートの種類の概念の概要に関するページを参照してください。

重要

Kubernetes Fleet リソースが作成されたら、ハブ クラスターがない Kubernetes Fleet リソースを、ハブ クラスターがあるものにアップグレードできます。 ハブ クラスターがある Kubernetes Fleet リソースの場合、プライベートまたはパブリックを選択すると後から変更できません。

更新のオーケストレーションのみに Fleet を使用する場合 (Azure CLI を使用して新しい Fleet リソースを作成するときの既定のエクスペリエンス)、az fleet create コマンドを使用して、ハブ クラスターなしで Fleet リソースを作成できます。

az fleet create --resource-group ${GROUP} --name ${FLEET} --location eastus

出力は次の出力例のようになります。

{
  "etag": "...",
  "hubProfile": null,
  "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo/providers/Microsoft.ContainerService/fleets/fleet-demo",
  "identity": {
    "principalId": null,
    "tenantId": null,
    "type": "None",
    "userAssignedIdentities": null
  },
  "location": "eastus",
  "name": "fleet-demo",
  "provisioningState": "Succeeded",
  "resourceGroup": "fleet-demo",
  "systemData": {
    "createdAt": "2023-11-03T17:15:19.610149+00:00",
    "createdBy": "<user>",
    "createdByType": "User",
    "lastModifiedAt": "2023-11-03T17:15:19.610149+00:00",
    "lastModifiedBy": "<user>",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "type": "Microsoft.ContainerService/fleets"
}

メンバー クラスターを参加させる

フリートでは現在、既存の AKS クラスターをメンバー クラスターとして参加させることがサポートされています。

  1. メンバー クラスターに次の環境変数を設定します。

    export MEMBER_NAME_1=aks-member-1
    export MEMBER_CLUSTER_ID_1=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/managedClusters/${MEMBER_NAME_1}
    
  2. az fleet member create コマンドを使用して、既存の AKS クラスターを Fleet リソースに参加させます。

    # Join the first member cluster
    az fleet member create --resource-group ${GROUP} --fleet-name ${FLEET} --name ${MEMBER_NAME_1} --member-cluster-id ${MEMBER_CLUSTER_ID_1}
    

    出力は次の出力例のようになります。

    {
      "clusterResourceId": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-x",
      "etag": "...",
      "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/fleets/<FLEET>/members/aks-member-x",
      "name": "aks-member-1",
      "provisioningState": "Succeeded",
      "resourceGroup": "<GROUP>",
      "systemData": {
        "createdAt": "2022-10-04T19:04:56.455813+00:00",
        "createdBy": "<user>",
        "createdByType": "User",
        "lastModifiedAt": "2022-10-04T19:04:56.455813+00:00",
        "lastModifiedBy": "<user>",
        "lastModifiedByType": "User"
      },
      "type": "Microsoft.ContainerService/fleets/members"
    }
    
  3. az fleet member list コマンドを使用して、メンバー クラスターが Fleet リソースに正常に参加したことを確認します。

    az fleet member list --resource-group ${GROUP} --fleet-name ${FLEET} -o table
    

    成功すると、出力は次の出力例のようになります。

    ClusterResourceId                                                                                                                                Name          ProvisioningState    ResourceGroup
    -----------------------------------------------------------------------------------------------------------------------------------------------  ------------  -------------------  ---------------
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-1  aks-member-1  Succeeded            <GROUP>
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-2  aks-member-2  Succeeded            <GROUP>
    /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<GROUP>/providers/Microsoft.ContainerService/managedClusters/aks-member-3  aks-member-3  Succeeded            <GROUP>
    

次のステップ