チュートリル - Azure Kubernetes Service (AKS) クラスターのデプロイ
Kubernetes には、コンテナー化されたアプリケーション用の分散プラットフォームが用意されています。 Azure Kubernetes Service (AKS) を使用すると、運用環境に対応した Kubernetes クラスターを迅速に作成できます。
このチュートリアル (7 部構成の第 3 部) では、Kubernetes クラスターを AKS にデプロイします。 以下の方法について説明します。
- Azure Container Registry (ACR) に対して認証できる AKS クラスターをデプロイします。
- Kubernetes CLI、
kubectl
をインストールします。kubectl
を構成して AKS クラスターに接続します。
開始する前に
前のチュートリアルでは、コンテナー イメージを作成し、それを ACR インスタンスにアップロードしました。 それらの手順を完了しておらず、このチュートリアルを進めたい場合は、「チュートリアル 1: AKS 用にアプリケーションを準備する」から始めてください。
- Azure CLI を使用する場合、このチュートリアルでは、Azure CLI バージョン 2.0.53 以降を実行する必要があります。 バージョンを確認するには、
az --version
を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。 - Azure PowerShell を使用する場合、このチュートリアルでは、Azure PowerShell バージョン 5.9.0 以降を実行する必要があります。 バージョンを確認するには、
Get-InstalledModule -Name Az
を実行します。 インストールまたはアップグレードする必要がある場合は、Azure PowerShell のインストールに関するページをご覧ください。
Kubernetes クラスターを作成する
AKS クラスターでは、Kubernetes のロールベースのアクセス制御 (Kubernetes RBAC) を使用できます。これにより、ユーザーに割り当てられたロールに基づいてリソースへのアクセスを定義できます。 ユーザーに複数のロールが割り当てられている場合、アクセス許可が組み合わされます。 アクセス許可のスコープは、1 つの名前空間またはクラスター全体に設定できます。
AKS と Kubernetes RBAC の詳細については、AKS での Kubernetes RBAC と Microsoft Entra ID を使ったクラスター リソースへのアクセス制御に関する記事を参照してください。
このチュートリアルには、Azure CLI バージョン 2.0.53 以降が必要です。 バージョンを確認するには、az --version
を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
AKS クラスターを作成する
AKS クラスターでは、Kubernetes のロールベースのアクセス制御 (Kubernetes RBAC) を使用できます。これにより、ユーザーに割り当てられたロールに基づいてリソースへのアクセスを定義できます。 ユーザーに複数のロールが割り当てられている場合は、アクセス許可が組み合わされます。 アクセス許可のスコープは、1 つの名前空間またはクラスター全体に設定できます。 詳細については、AKS で Kubernetes RBAC と Azure Active Directory ID を使用してクラスター リソースへのアクセスを制御することに関する記事を参照してください。
AKS のリソース制限と利用可能なリージョンについて詳しくは、AKS でのクォータ、仮想マシンのサイズ制限、利用可能なリージョンに関する記事を参照してください。
Note
クラスターを確実に動作させるために、少なくとも 2 つのノードを実行する必要があります。
AKS クラスターが他の Azure リソースとやりとりできるようにするために、Azure プラットフォームによりクラスター ID が自動的に作成されます。 この例では、クラスター ID に、前のチュートリアルで作成した ACR インスタンスからイメージをプルする権利が付与されます。 コマンドを正常に実行するために、Azure サブスクリプションに所有者または Azure アカウント管理者のロールが必要です。
az aks create
コマンドを使用して、AKS クラスターを作成します。 次の例では、myResourceGroup という名前のリソース グループに myAKSCluster という名前のクラスターを作成します。 このリソース グループは、前のチュートリアルで作成しました ("米国東部" リージョン)。az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 2 \ --generate-ssh-keys \ --attach-acr <acrName>
Note
SSH キーを既に生成している場合は、
linuxProfile.ssh.publicKeys.keyData is invalid
のようなエラーが発生する可能性があります。 続行するには、--generate-ssh-keys
パラメーターを指定せずにコマンドを再試行します。
所有者または Azure アカウント管理者ロールを不要にするために、ACR からイメージをプルするようにサービス プリンシパルを手動で構成することもできます。 詳細については、サービス プリンシパルによる ACR 認証またはプル シークレットを使用した Kubernetes からの認証に関するページを参照してください。 管理しやすくするために、サービス プリンシパルの代わりにマネージド ID を使用することもできます。
数分後、デプロイが完了し、この AKS デプロイに関する JSON 形式の情報が返されます。
Kubernetes CLI のインストール
Kubernetes クラスターに接続するには Kubernetes CLI kubectl
を使用します。 Azure Cloud Shell を使用している場合、kubectl
は既にインストールされています。 コマンドをローカルで実行している場合は、Azure CLI または Azure PowerShell を使用して kubectl
をインストールできます。
az aks install-cli
コマンドを使用してkubectl
をローカルにインストールします。az aks install-cli
kubectl を使用したクラスターへの接続
az aks get-credentials
コマンドを使用して、Kubernetes クラスターに接続するようにkubectl
を構成します。 次の例では、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-vmss000002 Ready agent 47h v1.25.6 aks-nodepool1-19366578-vmss000003 Ready agent 47h v1.25.6
次のステップ
このチュートリアルでは、Kubernetes クラスターを AKS にデプロイし、kubectl
を構成してクラスターに接続しました。 以下の方法を学習しました。
- ACR に対して認証できる AKS クラスターをデプロイします。
- Kubernetes CLI、
kubectl
をインストールします。 kubectl
を構成して AKS クラスターに接続します。
次のチュートリアルでは、アプリケーションをクラスターにデプロイする方法について説明します。