次の方法で共有


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

Azure CLI を使用して Azure Kubernetes Fleet Manager の使用を開始し、Fleet Manager を作成し、Azure Kubernetes Service (AKS) クラスターをメンバー クラスターとして参加させます。

前提条件

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

  • Fleet Manager の概念の概要を読み、このドキュメントで参照されているフリートとメンバー クラスターに関する説明を確認してください。

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

  • アクティブなサブスクリプションが含まれる 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
  • Azure CLI バージョン 2.70.0 以降をインストールします。 インストールとアップグレードについては、「Azure CLI のインストール」を参照してください。

  • Azure CLI 拡張機能バージョン 1.5.2 以降 fleet も必要です。これは、次のコマンドを実行してインストールできます。

    az extension add --name fleet
    

    次のコマンドを実行して、リリースされた最新バージョンの拡張機能に更新します:

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

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

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

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

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

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

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

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

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

Fleet Manager リソースを作成する

あなたはいつでもフリート マネージャーを作成でき、後で AKS クラスターをメンバー クラスターとして追加することを選択できます。 Azure CLI を使用して作成した場合、Fleet Manager ではメンバー クラスターのグループ化とオーケストレーションの更新が既定で有効になります。 Fleet Manager がハブ クラスターで作成されている場合は、インテリジェントな Kubernetes オブジェクトの配置と、複数のメンバー クラスター間での負荷分散が可能です。 詳細については、さまざまなフリート構成の比較を提供するフリートの種類の概念の概要に関するページを参照してください。

重要

ハブ クラスターのない Fleet Manager から、ハブ クラスターを持つフリート マネージャーに変更できますが、その逆は変更できません。 ハブ クラスターを持つ Fleet Manager の場合、プライベート またはパブリック アクセスが選択されると、変更できません。

Kubernetes またはノード イメージの更新オーケストレーションにのみ Fleet Manager を使用する場合は、 az fleet create コマンドを使用して、ハブ クラスターなしで Fleet リソースを作成できます。

az fleet create \
    --resource-group ${GROUP} \
    --name ${FLEET} \
    --location ${LOCATION} \
    --enable-managed-identity

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

{
  "etag": "...",
  "hubProfile": null,
  "id": "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/fleet-demo/providers/Microsoft.ContainerService/fleets/fleet-demo",
  "identity": {
    "principalId": <system-identity-id>,
    "tenantId": <entra-tenant-id>,
    "type": "SystemAssigned",
    "userAssignedIdentities": null
  },
  "location": "<LOCATION>",
  "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 リソースに参加させます。

    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>
    

次のステップ