適用対象: ✔️ AKS Automatic
Azure Kubernetes Service (AKS) Automatic は、AKS クラスターのセットアップと操作を自動化し、ベスト プラクティス構成を埋め込むマネージド Kubernetes エクスペリエンスです。 AKS Automatic には、[ポッドの準備 SLA][azure-sla] も含まれています。これにより、5 分以内に 99.9% の適格なポッド準備操作が完了し、アプリケーションの信頼性の高い自己復旧インフラストラクチャが保証されます。 このクイックスタートでは、次の方法について説明します。
- AKS 自動クラスターをデプロイします。
- マイクロサービスのグループと、小売シナリオをシミュレートする Web フロントエンドを使用して、サンプルのマルチコンテナー アプリケーションを実行します。
開始する前に
- このクイックスタートは、Kubernetes の基本的な概念を理解していることを前提としています。 詳細については、Azure Kubernetes Service (AKS) の
Kubernetes のコア概念を参照してください。 - AKS の自動
機能で AKS クラスター上の Azure Policy を有効にしますが、事前にサブスクリプションに リソース プロバイダーを登録する必要があります。 詳細については、「Azure リソース プロバイダーと種類を参照してください。
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Get started with Azure Cloud Shell」を参照してください。
CLI 参照コマンドをローカルで実行する場合は、Azure CLIinstallします。 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 以降が必要です。
az --versionコマンドを使用してバージョンを検索します。 インストールまたはアップグレードするには、「Install Azure CLIを参照してください。 Azure Cloud Shellを使用している場合は、最新バージョンが既にインストールされています。 - 複数のAzure サブスクリプションがある場合は、適切なサブスクリプション ID を選択して、
az account setコマンドを使用してリソースに課金します。
- Bicep ファイルをデプロイするには、作成したリソースに対する書き込みアクセス権と、
Microsoft.Resources/deploymentsリソースの種類に対するすべての操作へのアクセス権が必要です。 たとえば、仮想マシン (VM) を作成するには、Microsoft.Compute/virtualMachines/writeとMicrosoft.Resources/deployments/*アクセス許可が必要です。 ロールとアクセス許可の一覧については、「Azure組み込みロールを参照してください。
制限事項
- AKS 自動クラスターのシステム ノードプールは、少なくとも 3 つの可用性ゾーン、エフェメラル OS ディスク、Azure Linux OS をサポートする Azure リージョンにデプロイする必要があります。
- AKS Automatic は、
australiaeast、austriaeast、belgiumcentral、brazilsouth、canadacentral、centralindia、centralus、chilecentral、denmarkeast、eastasia、eastus、eastus2、francecentral、germanywestcentral、indonesiacentral、israelcentral、italynorth、japaneast、japanwest、koreacentral、malaysiawest、mexicocentral、newzealandnorth、northcentralus、northeurope、norwayeast、polandcentral、southafricanorth、southcentralus、southeastasia、spaincentral、swedencentral、switzerlandnorth、uaenorth、uksouth、westeurope、westus、westus2、westus3。 - AKS 自動クラスターには、node リソース グループのロックダウンが事前に構成されています。これにより、MC_ リソース グループへの変更が許可されないため、既定の プライベート DNS ゾーンでの仮想ネットワーク リンクが防止されます。 クロス VNet またはカスタム DNS シナリオの場合は、カスタム仮想ネットワークにプライベート Azure Kubernetes Service (AKS)自動クラスターを作成>
に従って、カスタム ネットワークとプライベート DNS を使用します。
Important
AKS Automatic は、サブスクリプションで使用可能な容量に基づいて、 system ノード プールの仮想マシン サイズを動的に選択しようとします。 サブスクリプションに、クラスターをデプロイするリージョンに 16 vCPU のクォータが、次のいずれかのサイズで確保できることを確認してください: Standard_D4lds_v5 、Standard_D4ads_v5 、Standard_D4ds_v5 、Standard_D4d_v5 、Standard_D4d_v4 、Standard_DS3_v2 、Standard_DS12_v2 、Standard_D4alds_v6 、Standard_D4lds_v6 、または Standard_D4alds_v5 。
特定の VM ファミリのクォータを確認し、Azure ポータルからクォータの引き上げ要求を送信できます。
その他の質問がある場合は、 トラブルシューティング のドキュメントを参照してください。
リソース グループを作成する
Azure リソース グループ は、Azureリソースがデプロイおよび管理される論理グループです。
az group create コマンドを使用してリソース グループを作成します。 次の例では、myResourceGroup という名前のリソース グループを eastus に作成します。
az group create --name myResourceGroup --location eastus
次の出力例は、リソース グループの正常な作成に似ています。
{
"id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
"location": "eastus",
"managedBy": null,
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
AKS 自動クラスターを作成する
az aks create パラメーターを --sku に設定して、automatic コマンドを使用して AKS 自動クラスターを作成します。 次の例では、Managed Prometheus と Container Insights 統合が有効になっている myAKSAutomaticCluster という名前のクラスターを作成します。
az aks create \
--resource-group myResourceGroup \
--name myAKSAutomaticCluster \
--sku automatic
数分後、コマンドが完了し、クラスターに関する JSON 形式の情報が返されます。
自動 Kubernetes クラスターを作成する
AKS 自動クラスターを作成するには、 Kubernetes サービスを検索して選択します。 これにより、 Kubernetes センター (プレビュー) ページに移動します。
Kubernetes センター (プレビュー) ページで、作成>自動 Kubernetes クラスターを選択します。
[ 基本 ] タブで、すべての必須フィールド (サブスクリプション、リソース グループ、Kubernetes クラスター名、リージョン) を入力し、[ 次へ] を選択します。
Monitoring タブで、Azure Monitor (Container Insights)、Managed Prometheus、Grafana Dashboards、Container Network Observability (ACNS)、Alerts から目的の監視構成を選択し、Next を選択します。
Advanced タブで、必要な高度な構成の [プライベート アクセス]、[仮想ネットワーク]、[マネージド ID]、[コンテナー ネットワーク セキュリティ (ACNS)]、[マネージド Kubernetes 名前空間] のAzureを選択し、[Review + create を選択します。
[ 確認と作成 ] タブで構成を確認し、[ 作成 ] を選択して AKS 自動クラスターをデプロイします。
GitHubから最初のアプリケーションの構成を開始し、自動化されたデプロイ パイプラインを設定します。
Azure ポータルで AKS クラスターを作成した後の [概要] ブレードの [Get Started] タブのスクリーンショット
Bicep ファイルを確認する
次のBicep ファイルは、AKS 自動クラスターを定義します。
@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 ファイルをデプロイする
Bicep ファイルをローカル コンピューターに main.bicep として保存します。
Important
Bicep ファイルは、
clusterNameパラメーターを文字列 myAKSAutomaticCluster に設定します。 別のクラスター名を使用する場合は、ファイルをコンピューターに保存する前に、文字列を任意のクラスター名に更新してください。[
az deployment group create][az-deployment-group-create] コマンドを使用して、Bicep ファイルをデプロイします。az deployment group create --resource-group myResourceGroup --template-file main.bicepAKS クラスターの作成には数分かかります。 次の手順に進む前に、クラスターが正常にデプロイされるまで待ちます。
クラスターに接続する
Kubernetes クラスターを管理するには、Kubernetes のコマンドライン クライアントである kubectl を使います。 Azure Cloud Shellを使用する場合、kubectl は既にインストールされています。
kubectl コマンドを使用して、az aks install-cliをローカルにインストールできます。 AKS 自動クラスターは、Kubernetes ロールベースのアクセス制御 (RBAC) 用に
注
Azure CLIを使用してクラスターを作成すると、ユーザーには組み込みロールが割り当てられますAzure Kubernetes Service RBAC Cluster Admin。
kubectlコマンドを使用して、Kubernetes クラスターに接続するようにaz aks get-credentialsを構成します。 このコマンドは、資格情報をダウンロードし、それを使用するように Kubernetes CLI を構成します。az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticClusterkubectl 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-12345678-vmss000000 Ready agent 2m26s v1.28.5 aks-nodepool1-12345678-vmss000001 Ready agent 2m26s v1.28.5 aks-nodepool1-12345678-vmss000002 Ready agent 2m26s v1.28.5
アプリケーションをデプロイする
アプリケーションをデプロイするには、マニフェスト ファイルを使用して、AKS ストア アプリケーションの実行に必要なすべてのオブジェクトを作成します。 Kubernetes マニフェスト ファイルは、実行するコンテナー イメージなど、クラスターの望ましい状態を定義します。 マニフェストには、次の Kubernetes のデプロイとサービスが含まれています。
- ストア フロント: 顧客が製品を表示して注文するための Web アプリケーション。
- 製品サービス: 製品情報を表示します。
- 注文サービス: 注文を行います。
- Rabbit MQ: 注文キュー用のメッセージキュー。
注
運用用の永続的なストレージを使用せずに、Rabbit MQ などのステートフル コンテナーを実行することはお勧めしません。 ここではわかりやすくするために使用しますが、Azure Cosmos DBやAzure Service Busなどのマネージド サービスを使用することをお勧めします。
Kubernetes リソースをデプロイするための名前空間
aks-store-demoを作成します。kubectl create ns aks-store-demokubectl 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 サービスによってアプリケーション フロントエンドがインターネットに公開されます。 このプロセスの完了には数分かかる場合があります。
kubectl get pods コマンドを使用して、デプロイされたポッドの状態を確認します。 続行する前に、すべてのポッドが
Runningされていることを確認します。 これがデプロイする最初のワークロードである場合、 ノードの自動プロビジョニング によってポッドを実行するノード プールが作成されるまでに数分かかる場合があります。kubectl get pods -n aks-store-demoストア フロント アプリケーションのパブリック IP アドレスを確認します。 kubectl get service コマンドと
--watch引数を使用して進行状況を監視します。kubectl get ingress store-front -n aks-store-demo --watchADDRESS 出力は、最初は空として表示されます。
NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 80 12mADDRESS が空白から実際のパブリック IP アドレスに変わったら、
CTRL-Cを使用してkubectl監視プロセスを停止します。次の出力例は、サービスに割り当てられている有効なパブリック IP アドレスを示しています。
NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 4.255.22.196 80 12mイングレスの外部 IP アドレスに対して Web ブラウザーを開き、Azure ストア アプリの動作を確認します。
クラスターを削除する
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 の詳細については、Azure Kubernetes Service (AKS) Automatic の紹介をご覧ください。