クイックスタート: 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 拡張機能バージョン 3.0.0b13 以降が必要です。

  • 複数の Azure サブスクリプションをお持ちの場合は、az account set コマンドを使用して、リソースが課金の対象となる適切なサブスクリプション ID を選択してください。

  • Azure サブスクリプションに AutomaticSKUPreview 機能を登録すること。

  • クラスターを作成する ID には、サブスクリプションに対する次のアクセス許可も必要です。

    • Microsoft.Authorization/policyAssignments/write
    • Microsoft.Authorization/policyAssignments/read

重要

サブスクリプションに、クラスターをデプロイするリージョンの Standard_DS4_v2 仮想マシンの 24 vCPU のクォータがあることを確認します。 Azure portal を使って、特定の VM ファミリのクォータを表示し、クォータ増加要求を送信できます。 .png

  • Bicep ファイルをデプロイするには、作成したリソースへの書き込みアクセス権と、リソースの種類 Microsoft.Resources/deployments へのすべての操作に対するアクセス権が必要です。 たとえば、仮想マシンを作成するには、Microsoft.Compute/virtualMachines/write および Microsoft.Resources/deployments/* アクセス許可が必要です。 ロールとアクセス許可の一覧については、Azure の組み込みロールに関するページを参照してください。

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 EnableAPIServerVnetIntegrationPreview
az feature register --namespace Microsoft.ContainerService --name NRGLockdownPreview
az feature register --namespace Microsoft.ContainerService --name SafeguardsPreview
az feature register --namespace Microsoft.ContainerService --name NodeAutoProvisioningPreview
az feature register --namespace Microsoft.ContainerService --name DisableSSHPreview
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 \
    --generate-ssh-keys

数分後、コマンドが完了し、クラスターに関する情報が 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-default-f8vj2                   Ready    agent   2m26s   v1.28.5
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-default-f8vj2                   Ready    agent   2m26s   v1.28.5
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'
  		tier: 'Standard'
  }
  properties: {
    agentPoolProfiles: [
      {
        name: 'systempool'
        count: 3
        vmSize: 'Standard_DS4_v2'
        osType: 'Linux'
        mode: 'System'
      }
    ]
  }
  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-default-f8vj2                   Ready    agent   2m26s   v1.28.5
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 の詳細については、概要に進んでください。