Kubernetes には、コンテナー化されたアプリケーション用の分散プラットフォームが用意されています。 Azure Kubernetes Service (AKS)を使用すると、運用対応の Kubernetes クラスターをすばやく作成できます。
このチュートリアルでは、AKS に Kubernetes クラスターをデプロイします。 あなたは次のことを学びます:
- Azure Container Registry (ACR) に対して認証できる AKS クラスターをデプロイします。
- Kubernetes CLI、
kubectlをインストールします。 -
kubectlを構成して AKS クラスターに接続します。
開始する前に
前のチュートリアルでは、コンテナー イメージを作成し、それを ACR インスタンスにアップロードしました。 「チュートリアル 1 - AKS のアプリケーションを準備する」から始めてください。
このチュートリアルでは、課金対象の AKS クラスター リソースを作成し、Azure サブスクリプションの所有者またはAzure アカウント管理者ロールが必要です。
- Azure CLI を使用している場合、このチュートリアルでは、Azure CLI バージョン 2.35.0 以降を実行している必要があります。
az --versionを使用して、お使いのバージョンを確認します。 インストールまたはアップグレードする必要には、「Azure CLI のインストール」をご覧ください。 - Azure PowerShell を使用する場合、このチュートリアルでは、Azure PowerShell バージョン 5.9.0 以降を実行する必要があります。
Get-InstalledModule -Name Azを使用して、お使いのバージョンを確認します。 インストールまたはアップグレードするには、「Azure PowerShell のインストール」に関するページを参照してください。 - Azure Developer CLI を使用している場合、このチュートリアルでは、Azure Developer CLI バージョン 1.5.1 以降を実行している必要があります。
azd versionを使用して、お使いのバージョンを確認します。 インストールまたはアップグレードするには、「Azure Developer CLI のインストール」をご覧ください。
Kubernetes クラスターを作成する
AKS クラスターでは、Kubernetes のロールベースのアクセス制御 (Kubernetes RBAC) を使用できます。これにより、ユーザーに割り当てられたロールに基づいてリソースへのアクセスを定義できます。 ユーザーに複数のロールが割り当てられている場合、アクセス許可が組み合わされます。 アクセス許可のスコープは、1 つの名前空間またはクラスター全体に設定できます。
AKS と Kubernetes RBAC の詳細については、AKS での Kubernetes RBAC と Microsoft Entra ID を使ったクラスター リソースへのアクセス制御に関する記事を参照してください。
このチュートリアルでは、Azure CLI バージョン 2.35.0 以降が必要です。
az --version を使用して、お使いのバージョンを確認します。 インストールまたはアップグレードする必要には、「Azure CLI のインストール」をご覧ください。 Azure Cloud Shell の Bash 環境を使用している場合は、最新バージョンが既にインストールされています。
Kubernetes CLI のインストール
Kubernetes クラスターに接続するには Kubernetes CLI kubectl を使用します。 Azure Cloud Shell を使用している場合、kubectl は既にインストールされています。 コマンドをローカルで実行している場合は、Azure CLI または Azure PowerShell を使用して kubectl をインストールできます。
kubectlコマンドを使用してaz aks install-cliをローカルにインストールします。az aks install-cli
AKS クラスターを作成する
AKS クラスターでは、Kubernetes のロールベースのアクセス制御 (Kubernetes RBAC) を使用できます。これにより、ユーザーに割り当てられたロールに基づいてリソースへのアクセスを定義できます。 ユーザーに複数のロールが割り当てられている場合は、アクセス許可が組み合わされます。 アクセス許可のスコープは、1 つの名前空間またはクラスター全体に設定できます。 詳細については、「Kubernetes RBAC と AKS の Microsoft Entra ID を使用してクラスター リソースへのアクセスを制御する」を参照してください。
AKS クラスターが他の Azure リソースとやりとりできるようにするために、Azure プラットフォームによりクラスター ID が自動的に作成されます。 この例では、クラスター ID に、前のチュートリアルで作成した ACR インスタンスからイメージをプルする権利が付与されます。 コマンドを正常に実行するには、Azure サブスクリプションに 所有者 または Azure アカウント管理者 ロールが必要です。
-
az aks createコマンドを使用して、AKS クラスターを作成します。 次の例では、myResourceGroup という名前のリソース グループに myAKSCluster という名前のクラスターを作成します。 このリソース グループは、westus2 リージョンの前のチュートリアルで作成されました。$ACRNAMEで設定した環境変数 () を引き続き使用します。 この環境変数を設定していない場合は、以前に使用したのと同じ値に設定します。
1 つのクラスター オプションを選択し、一致するコマンド ブロックのみを実行します。 AKS クラスターを作成するには、2 つのオプションがあります。 詳細な比較については、 こちらを 参照してください。
AKS 自動 (推奨) - クラスターのセットアップ、操作、ノード管理を自動化するフル マネージド Kubernetes エクスペリエンス。 このオプションは、操作を簡略化し、推奨される既定値で AKS Desktop アプリケーション UI を使用する場合に選択します。
AKS 自動を選択した場合にのみ、このコマンド ブロックを実行します。
az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --sku automatic \ --attach-acr $ACRNAME AKS_ID=$(az aks show --resource-group myResourceGroup --name myAKSCluster --query id -o tsv) ENTRA_OBJECT_ID=$(az ad signed-in-user show --query id -o tsv) # Grant yourself admin permissions to the cluster using the Azure Kubernetes Service RBAC Cluster Admin role. az role assignment create --role "Azure Kubernetes Service RBAC Cluster Admin" \ --assignee $ENTRA_OBJECT_ID \ --scope $AKS_IDAKS Standard — クラスターの構成とノード管理を完全に制御できます。 クラスター設定をカスタマイズする必要がある場合は、このオプションを選択します。 AKS Desktop と Standard クラスターを使用するには、作成時に追加のクラスター オプションを指定します。
AKS Standard を選択した場合にのみ、このコマンド ブロックを実行します。
Important
このチュートリアルでは、3 ノード クラスターを作成します。 クラスターを作成しようとしたときにエラー メッセージが表示される場合は、Azure サブスクリプションのクォータの引き上げを要求するか、別の Azure リージョンを試す必要があります。 または、使用するノード数を減らしたり、ノード VM サイズパラメーターを省略して既定の VM サイズを使用したりできます。 AKS のリソース制限と利用可能なリージョンについて詳しくは、AKS でのクォータ、仮想マシンのサイズ制限、利用可能なリージョンに関する記事を参照してください。
az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 3 \ --node-vm-size standard_l8s_v3 \ --generate-ssh-keys \ --attach-acr $ACRNAME注意
SSH キーを既に生成している場合は、
linuxProfile.ssh.publicKeys.keyData is invalidのようなエラーが発生する可能性があります。 続行するには、--generate-ssh-keysパラメーターを指定せずにコマンドを再試行します。
所有者または Azure アカウント管理者ロールを不要にするために、ACR からイメージをプルするようにサービス プリンシパルを手動で構成することもできます。 詳細については、サービス プリンシパルによる ACR 認証またはプル シークレットを使用した Kubernetes からの認証に関するページを参照してください。 管理しやすくするために、サービス プリンシパルの代わりにマネージド ID を使用することもできます。
kubectl を使用したクラスターへの接続
kubectlコマンドを使用して、Kubernetes クラスターに接続するようにaz aks get-credentialsを構成します。 次の例では、myResourceGroup の myAKSCluster という名前の AKS クラスターの資格情報を取得します。az aks get-credentials --resource-group myResourceGroup --name myAKSClusterクラスターへの接続を確認する場合は、クラスター ノードのリストを返す
kubectl get nodesコマンドを使用します。kubectl get nodes次の出力例は、クラスター ノードの一覧を示しています。
NAME STATUS ROLES AGE VERSION aks-nodepool1-19366578-vmss000000 Ready agent 47h v1.30.9 aks-nodepool1-19366578-vmss000001 Ready agent 47h v1.30.9 aks-nodepool1-19366578-vmss000002 Ready agent 47h v1.30.9
次のステップ
このチュートリアルでは、Kubernetes クラスターを AKS にデプロイし、kubectl を構成してクラスターに接続しました。 以下の方法を学習しました。
- ACR に対して認証できる AKS クラスターをデプロイします。
- Kubernetes CLI、
kubectlをインストールします。 -
kubectlを構成して AKS クラスターに接続します。
次のチュートリアルでは、クラスターに Azure Container Storage をデプロイし、汎用エフェメラル ボリュームを作成する方法について説明します。 Azure Developer CLI を使用している場合、またはクォータの問題が原因でストレージ最適化 VM の種類を使用できなかった場合は、 コンテナー化されたアプリケーションのデプロイ に関するチュートリアルに直接進んでください。