次の方法で共有


クイック スタート: Azure Kubernetes Service (AKS) 自動クラスターを作成する

適用対象: ✔️ AKS 自動

Azure Kubernetes Service (AKS) Automatic は、開発者、DevOps エンジニア、プラットフォーム エンジニアに最も簡単に管理される Kubernetes エクスペリエンスを提供します。 最新の AI アプリケーションに最適な AKS Automatic は、AKS クラスターのセットアップと操作を自動化し、ベスト プラクティス構成を埋め込みます。 任意のスキル レベルのユーザーは、アプリケーションに対する AKS Automatic のセキュリティ、パフォーマンス、信頼性の恩恵を受けることができます。

このクイック スタートでは、次の方法について学習します。

  • AKS 自動クラスターをデプロイします。
  • マイクロサービスのグループと、小売シナリオをシミュレートする Web フロントエンドを使用して、サンプルのマルチコンテナー アプリケーションを実行します。

開始する前に

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の概要」を参照してください。

  • CLI 参照コマンドをローカルで実行する場合は、Azure CLI を インストール します。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、「 Azure CLI を使用した Azure への認証」を参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、「Azure CLI で拡張機能を使用および管理する」を参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

  • この記事では、Azure CLI のバージョン 2.77.0 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。
  • 複数の Azure サブスクリプションがある場合は、 az account set コマンドを使用してリソースを課金する適切なサブスクリプション ID を選択します。
  • Bicep ファイルをデプロイするには、作成したリソースに対するアクセス権を書き込み、 Microsoft.Resources/deployments リソースの種類に対するすべての操作にアクセスする必要があります。 たとえば、仮想マシンを作成するには、 Microsoft.Compute/virtualMachines/writeMicrosoft.Resources/deployments/* アクセス許可が必要です。 ロールとアクセス許可の一覧については、Azure の組み込みロールに関するページを参照してください。

制限事項

  • AKS 自動クラスターのシステム ノードプールでは、少なくとも 3 つの 可用性ゾーン、エフェメラル OS ディスク、および Azure Linux OS をサポートする Azure リージョンへのデプロイが必要です。
  • AKS 自動クラスターは、 API Server VNet 統合 が一般公開 (GA) されているリージョンでのみ作成できます。

Important

AKS Automatic は、サブスクリプションで使用可能な容量に基づいて、 system ノード プールの仮想マシン サイズを動的に選択しようとします。 クラスターをデプロイするリージョンで、Standard_D4lds_v5、Standard_D4ads_v5、Standard_D4ds_v5、Standard_D4d_v5、Standard_D4d_v4、Standard_DS3_v2、Standard_DS12_v2Standard_D4alds_v6Standard_D4lds_v6、またはStandard_D4alds_v5のいずれかのサイズの 16 vCPU のクォータがサブスクリプションにあることを確認します。 特定の VM ファミリのクォータを表示し、Azure portal からクォータの引き上げ要求を送信できます。 その他の質問がある場合は、 トラブルシューティング のドキュメントを参照してください。

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

Azure リソース グループは、Azure リソースが展開され管理される論理グループです。

次の例では、myResourceGroup という名前のリソース グループを eastus に作成します。

az group create コマンドを使用してリソース グループを作成します。

az group create --name myResourceGroup --___location eastus

次の出力例は、リソース グループの正常な作成に似ています。

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "___location": "eastus",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

AKS 自動クラスターを作成する

AKS 自動クラスターを作成するには、 az aks create コマンドを使用します。 次の例では、Managed Prometheus と Container Insights の統合が有効になっている myAKSAutomaticCluster という名前のクラスターを作成します。

az aks create \
    --resource-group myResourceGroup \
    --name myAKSAutomaticCluster \
    --sku automatic

数分後、コマンドが完了し、クラスターに関する JSON 形式の情報が返されます。

クラスターに接続する

Kubernetes クラスターを管理するには、Kubernetes のコマンドライン クライアントである kubectl を使います。 Azure Cloud Shell を使用している場合、kubectl は既にインストールされています。 kubectlをローカルにインストールするには、az aks install-cli コマンドを実行します。 AKS 自動クラスターは、 Kubernetes ロールベースのアクセス制御 (RBAC) 用に Microsoft Entra ID で構成されます。

Azure CLI を使用してクラスターを作成すると、ユーザーにはAzure Kubernetes Service RBAC Cluster Admin

kubectl コマンドを使用して、Kubernetes クラスターに接続するように az aks get-credentials を構成します。 このコマンドは、資格情報をダウンロードし、それを使用するように Kubernetes CLI を構成します。

az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster

kubectl get コマンドを使用して、ご利用のクラスターへの接続を確認します。 このコマンドでは、クラスター ノードの一覧が返されます。

kubectl get nodes

次の出力例は、ログインを求められる方法を示しています。

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.

ログインすると、次のサンプル出力にマネージド システム ノード プールが表示されます。 ノードの状態が [準備完了] になっていることを確認します。

NAME                                STATUS   ROLES   AGE     VERSION
aks-nodepool1-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

自動 Kubernetes クラスターを作成する

  1. AKS 自動クラスターを作成するには、 Kubernetes Services を検索し、ドロップダウン オプションから [自動 Kubernetes クラスター ] を選択します。

    Azure portal で AKS 自動クラスターを作成するためのエントリ ポイントのスクリーンショット。

  2. [ 基本 ] タブで、開始するために必要なすべての必須フィールド (サブスクリプション、リソース グループ、Kubernetes クラスター名、リージョン) を入力します。

    Azure portal の AKS 自動クラスターの [作成 - 基本] タブのスクリーンショット。

  3. [ 監視 ] タブで、Azure Monitor、Managed Prometheus、Grafana Dashboards、Container Network Observability (ACNS) から監視構成を選択するか、アラートを構成します。 Managed Grafana (省略可能) を有効にし、タグを追加して (省略可能)、クラスターの作成に進みます。

    Azure portal で AKS 自動クラスターを作成するときの [監視] タブのスクリーンショット。

  4. [ 詳細設定 ] タブで、ネットワーク (省略可能)、マネージド ID (省略可能)、セキュリティとマネージド名前空間 (省略可能) の設定を更新し、クラスターの作成に進みます。

    Azure portal で AKS 自動クラスターを作成するときの [詳細設定] タブのスクリーンショット。

  5. GitHub から最初のアプリケーションの構成を開始し、自動化されたデプロイ パイプラインを設定します。

    Azure portal で AKS 自動クラスターを作成した後の [概要] ブレードの [作業の開始] タブのスクリーンショット。

クラスターに接続する

Kubernetes クラスターを管理するには、Kubernetes のコマンドライン クライアントである kubectl を使います。 Azure Cloud Shell を使用している場合、kubectl は既にインストールされています。 kubectlをローカルにインストールするには、az aks install-cli コマンドを実行します。 AKS 自動クラスターは、 Kubernetes ロールベースのアクセス制御 (RBAC) 用に Microsoft Entra ID で構成されます。 Azure portal を使用してクラスターを作成すると、ユーザーにはAzure Kubernetes Service RBAC Cluster Admin

kubectl コマンドを使用して、Kubernetes クラスターに接続するように az aks get-credentials を構成します。 このコマンドは、資格情報をダウンロードし、それを使用するように Kubernetes CLI を構成します。

az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster

kubectl get コマンドを使用して、ご利用のクラスターへの接続を確認します。 このコマンドでは、クラスター ノードの一覧が返されます。

kubectl get nodes

次の出力例は、ログインを求められる方法を示しています。

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.

ログインすると、次のサンプル出力にマネージド システム ノード プールが表示されます。 ノードの状態が [準備完了] になっていることを確認します。

NAME                                STATUS   ROLES   AGE     VERSION
aks-nodepool1-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

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

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

次の例では、myResourceGroup という名前のリソース グループを eastus に作成します。

az group create コマンドを使用してリソース グループを作成します。

az group create --name myResourceGroup --___location eastus

次の出力例は、リソース グループの正常な作成に似ています。

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "___location": "eastus",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Bicep ファイルを確認する

この Bicep ファイルは、AKS 自動クラスターを定義します。 プレビュー段階では、 システム nodepool エージェント プール プロファイルを指定する必要があります。

@description('The name of the managed cluster resource.')
param clusterName string = 'myAKSAutomaticCluster'

@description('The ___location of the managed cluster resource.')
param ___location string = resourceGroup().___location

resource aks 'Microsoft.ContainerService/managedClusters@2024-03-02-preview' = {
  name: clusterName
  ___location: ___location  
  sku: {
	name: 'Automatic'
  }
  properties: {
    agentPoolProfiles: [
      {
        name: 'systempool'
        mode: 'System'
	count: 3
      }
    ]
  }
  identity: {
    type: 'SystemAssigned'
  }
}

Bicep ファイルで定義されているリソースの詳細については、 Microsoft.ContainerService/managedClusters リファレンスを 参照してください。

Bicep ファイルをデプロイする

  1. Bicep ファイルを main.bicep としてローカル コンピューターに保存します。

    Important

    Bicep ファイルは、 clusterName パラメーターを 文字列 myAKSAutomaticCluster に設定します。 別のクラスター名を使用する場合は、ファイルをコンピューターに保存する前に、文字列を任意のクラスター名に更新してください。

  2. Azure CLI を使用して Bicep ファイルをデプロイします。

    az deployment group create --resource-group myResourceGroup --template-file main.bicep
    

    AKS クラスターの作成には数分かかります。 次の手順に進む前に、クラスターが正常にデプロイされるまで待ちます。

クラスターに接続する

Kubernetes クラスターを管理するには、Kubernetes のコマンドライン クライアントである kubectl を使います。 Azure Cloud Shell を使用している場合、kubectl は既にインストールされています。 kubectlをローカルにインストールするには、az aks install-cli コマンドを実行します。 AKS 自動クラスターは、 Kubernetes ロールベースのアクセス制御 (RBAC) 用に Microsoft Entra ID で構成されます。

Important

Bicep を使用してクラスターを作成する場合は、Azure Kubernetes Service RBAC ReaderAzure Kubernetes Service RBAC WriterAzure Kubernetes Service RBAC AdminなどのAzure Kubernetes Service RBAC Cluster Admin必要があります。これは、クラスターまたは特定の名前空間 (az role assignment create --role "Azure Kubernetes Service RBAC Cluster Admin" --scope <AKS cluster resource id> --assignee user@contoso.com の使用など) に限定されます。 また、ユーザーがAzure Kubernetes Service Cluster Userを実行できるようにaz aks get-credentials組み込みロールを持っていることを確認し、az aks get-credentials コマンドを使用して AKS クラスターの kubeconfig を取得します。

kubectl コマンドを使用して、Kubernetes クラスターに接続するように az aks get-credentials を構成します。 このコマンドは、資格情報をダウンロードし、それを使用するように Kubernetes CLI を構成します。

az aks get-credentials --resource-group myResourceGroup --name 

kubectl get コマンドを使用して、ご利用のクラスターへの接続を確認します。 このコマンドでは、クラスター ノードの一覧が返されます。

kubectl get nodes

次の出力例は、ログインを求められる方法を示しています。

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.

ログインすると、次のサンプル出力にマネージド システム ノード プールが表示されます。 ノードの状態が [準備完了] になっていることを確認します。

NAME                                STATUS   ROLES   AGE     VERSION
aks-nodepool1-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

アプリケーションをデプロイする

アプリケーションをデプロイするには、マニフェスト ファイルを使用して、 AKS Microsoft Store アプリケーションの実行に必要なすべてのオブジェクトを作成します。 Kubernetes マニフェスト ファイルは、実行するコンテナー イメージなど、クラスターの望ましい状態を定義します。 マニフェストには、次の Kubernetes のデプロイとサービスが含まれています。

Azure Store サンプル アーキテクチャのスクリーンショット。

  • ストア フロント: 顧客が製品を表示して注文するための Web アプリケーション。
  • 製品サービス: 製品情報を表示します。
  • 注文サービス: 注文を行います。
  • Rabbit MQ: 注文キューのメッセージ キュー。

運用用の永続的なストレージを使用せずに、Rabbit MQ などのステートフル コンテナーを実行することはお勧めしません。 ここではわかりやすくするために使用しますが、Azure Cosmos DB や Azure Service Bus などのマネージド サービスを使用することをお勧めします。

  1. Kubernetes リソースをデプロイするための名前空間 aks-store-demo を作成します。

    kubectl create ns aks-store-demo
    
  2. kubectl apply コマンドを使用して、aks-store-demo名前空間にアプリケーションをデプロイします。 デプロイを定義する YAML ファイルは GitHub にあります

    kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yaml
    

    次の出力例は、デプロイとサービスを示しています。

    statefulset.apps/rabbitmq created
    configmap/rabbitmq-enabled-plugins created
    service/rabbitmq created
    deployment.apps/order-service created
    service/order-service created
    deployment.apps/product-service created
    service/product-service created
    deployment.apps/store-front created
    service/store-front created
    ingress/store-front created
    

アプリケーションをテストする

アプリケーションを実行すると、Kubernetes サービスによってアプリケーション フロントエンドがインターネットに公開されます。 このプロセスの完了には数分かかる場合があります。

  1. kubectl get pods コマンドを使用して、デプロイされたポッドの状態を確認します。 続行する前に、すべてのポッドが Running されていることを確認します。 これがデプロイする最初のワークロードである場合、 ノードの自動プロビジョニング によってポッドを実行するノード プールが作成されるまでに数分かかる場合があります。

    kubectl get pods -n aks-store-demo
    
  2. ストア フロント アプリケーションのパブリック IP アドレスを確認します。 kubectl get service コマンドと --watch 引数を使用して進行状況を監視します。

    kubectl get ingress store-front -n aks-store-demo --watch
    

    サービスの store-front 出力には、最初は空が表示されます。

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *                      80      12m
    
  3. ADDRESS が空白から実際のパブリック IP アドレスに変わったら、CTRL-Cを使用してkubectl監視プロセスを停止します。

    次の出力例は、サービスに割り当てられている有効なパブリック IP アドレスを示しています。

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *       4.255.22.196   80      12m
    
  4. イングレスの外部 IP アドレスに対して Web ブラウザーを開き、Azure Store アプリの動作を確認します。

    AKS Store サンプル アプリケーションのスクリーンショット。

クラスターを削除する

AKS チュートリアルを実行する予定がない場合は、Azure の料金を回避するために不要なリソースをクリーンアップします。 az group delete コマンドを実行して、リソース グループ、コンテナー サービス、およびすべての関連リソースを削除します。

az group delete --name myResourceGroup --yes --no-wait

AKS クラスターは、本クイックスタートの既定の ID オプションであるシステム割り当てマネージド ID を使用して作成されています。 この ID はプラットフォームによって管理されるため、手動で削除する必要はありません。

次のステップ

このクイック スタートでは、 AKS Automatic を使用して Kubernetes クラスターをデプロイし、それに単純なマルチコンテナー アプリケーションをデプロイしました。 このサンプル アプリケーションはデモ専用であり、Kubernetes アプリケーションのすべてのベスト プラクティスを表すわけではありません。 運用環境用の AKS を使用して完全なソリューションを作成する方法のガイダンスについては、 AKS ソリューションのガイダンスを参照してください。

AKS Automatic の詳細については、概要に進んでください。