次の方法で共有


クイックスタート: Azure Kubernetes Service (AKS) Automatic クラスターをデプロイする (プレビュー)

適用対象: ✔️ AKS Automatic (プレビュー)

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

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

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

開始する前に

このクイックスタートは、Kubernetes の基本的な概念を理解していることを前提としています。 詳細については、「Azure Kubernetes Services (AKS) における Kubernetes の中心概念」を参照してください。

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

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

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

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

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

  • この記事では、Azure CLI のバージョン 2.57.0 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。
  • この記事では、aks-preview Azure CLI 拡張機能バージョン 9.0.0b4 以降が必要です。
  • 複数の Azure サブスクリプションをお持ちの場合は、az account set コマンドを使用して、リソースが課金の対象となる適切なサブスクリプション ID を選択してください。
  • Azure サブスクリプションに AutomaticSKUPreview 機能を登録すること。
  • クラスターを作成する ID には、リソース グループに対する次のアクセス許可も必要です。
    • Microsoft.Authorization/policyAssignments/write
    • Microsoft.Authorization/policyAssignments/read
  • AKS 自動クラスターでは、少なくとも 3 つの可用性ゾーンをサポートする Azure リージョンへのデプロイが必要です。
  • Bicep ファイルをデプロイするには、作成したリソースへの書き込みアクセス権と、リソースの種類 Microsoft.Resources/deployments へのすべての操作に対するアクセス権が必要です。 たとえば、仮想マシンを作成するには、Microsoft.Compute/virtualMachines/write および Microsoft.Resources/deployments/* アクセス許可が必要です。 ロールとアクセス許可の一覧については、Azure の組み込みロールに関するページを参照してください。

重要

AKS Automatic は、サブスクリプションで使用可能な容量に基づいて、system ノード プールの仮想マシン SKU を動的に選択しようとします。 クラスターをデプロイするリージョンにおいて、Standard_D4pds_v5Standard_D4lds_v5Standard_D4ads_v5Standard_D4ds_v5Standard_D4d_v5Standard_D4d_v4Standard_DS3_v2Standard_DS12_v2 のいずれかの SKU のうちの 16 個の vCPU のクォータがサブスクリプションにあることを確認します。 Azure portal を使って、特定の VM ファミリのクォータを表示し、クォータ増加要求を送信できます。

aksプレビューの Azure CLI 拡張機能をインストールする

重要

AKS のプレビュー機能は、セルフサービスのオプトイン単位で利用できます。 プレビューは、"現状有姿" および "利用可能な限度" で提供され、サービス レベル アグリーメントおよび限定保証から除外されるものとします。 AKS プレビューは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。 そのため、これらの機能は、運用環境での使用を意図していません。 詳細については、次のサポート記事を参照してください。

aksプレビュー拡張機能をインストールして、次のコマンドを実行します:

az extension add --name aks-preview

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

az extension update --name aks-preview

機能フラグを登録する

プレビューで AKS Automatic を使用するには、az feature register コマンドを使用して次のフラグを登録します。

az feature register --namespace Microsoft.ContainerService --name AutomaticSKUPreview

登録の状態は、az feature show コマンドを使って確認します。 状態が "登録済み" と表示されるまでに数分かかります。

az feature show --namespace Microsoft.ContainerService --name AutomaticSKUPreview

状態が Registered と表示されたら、az provider register コマンドを使用して Microsoft.ContainerService リソース プロバイダーの登録を最新の情報に更新します。

az provider register --namespace Microsoft.ContainerService

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

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 Automatic クラスターの作成

AKS Automatic クラスターを作成するには、az aks create コマンドを使います。 次の例では、マネージド Prometheus とコンテナーの分析情報の統合を有効にして、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 Automatic クラスターは、Kubernetes ロールベースのアクセス制御 (RBAC) 用に Microsoft Entra ID を使って構成されます。 Azure CLI を使ってクラスターを作成すると、ユーザーには Azure Kubernetes Service RBAC Cluster Admin組み込みロールが割り当てられます

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

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

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

Automatic Kubernetes クラスターを作成する

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

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

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

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

    前提条件が満たされておらず、サブスクリプションでプレビュー フラグの登録が必要な場合は、[サブスクリプション] フィールドにエラーが表示されます。

    Azure portal で AKS Automatic クラスターを作成するときに、サブスクリプションにプレビュー フラグが登録されていない場合に表示されるエラーのスクリーンショット。

  3. [監視] タブで、Azure Monitor、マネージド Prometheus、Managed Grafana から監視構成を選んだり、アラートを構成したりできます。 タグを追加し (省略可能)、クラスターの作成に進みます。

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

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

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

クラスターに接続する

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

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

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

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 Automatic クラスターを定義します。 プレビュー段階では、"システム ノードプール" エージェント プール プロファイルを指定する必要があります。

@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 としてローカル コンピューターに保存します。

    重要

    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 Automatic クラスターは、Kubernetes ロールベースのアクセス制御 (RBAC) 用に Microsoft Entra ID を使って構成されます。 Bicep を使ってクラスターを作成する場合は、組み込みロールの 1 つ (Azure Kubernetes Service RBAC ReaderAzure Kubernetes Service RBAC WriterAzure Kubernetes Service RBAC Admin、または Azure Kubernetes Service RBAC Cluster Admin など) を、クラスターまたは特定の名前空間のスコープでユーザーに割り当てる必要があります。 また、ユーザーが az aks get-credentials を実行できる Azure Kubernetes Service Cluster User 組み込みロールを持っていることを確認してから、az aks get-credentials コマンドを使って AKS クラスターの kubeconfig を取得します。

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

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

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

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

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

Note

運用環境の永続ストレージを使用せずに Rabbit MQ などのステートフル コンテナーを実行することはお勧めしません。 これらはわかりやすくするためにここで使用しますが、Azure CosmosDB や 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 サービスの ADDRESS 出力は、最初は空と表示されます。

    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. Web ブラウザーを開いてイングレスの外部 IP アドレスにアクセスし、Azure Store アプリの動作を確認します。

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

クラスターを削除する

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

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

Note

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

次のステップ

このクイックスタートでは、AKS Automatic を使って Kubernetes クラスターをデプロイし、そこにシンプルな複数コンテナー アプリケーションをデプロイしました。 このサンプル アプリケーションはデモ専用であり、Kubernetes アプリケーションのすべてのベスト プラクティスを表すわけではありません。 実稼動用に AKS を使用した完全なソリューションを作成するうえでのガイダンスについては、AKS ソリューション ガイダンスに関する記事を参照してください。

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