次の方法で共有


チュートリアル - 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 のインストール」に関するページを参照してください。
  • 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.0.53 以降が必要です。 az --version を使用して、お使いのバージョンを確認します。 インストールまたはアップグレードする必要には、「Azure CLI のインストール」をご覧ください。

Kubernetes CLI のインストール

Kubernetes クラスターに接続するには Kubernetes CLI kubectl を使用します。 Azure Cloud Shell を使用している場合、kubectl は既にインストールされています。 コマンドをローカルで実行している場合は、Azure CLI または Azure PowerShell を使用して kubectl をインストールできます。

  • az aks install-cli コマンドを使用して kubectl をローカルにインストールします。

    az aks install-cli
    

AKS クラスターを作成する

AKS クラスターでは、Kubernetes のロールベースのアクセス制御 (Kubernetes RBAC) を使用できます。これにより、ユーザーに割り当てられたロールに基づいてリソースへのアクセスを定義できます。 ユーザーに複数のロールが割り当てられている場合は、アクセス許可が組み合わされます。 アクセス許可のスコープは、1 つの名前空間またはクラスター全体に設定できます。 詳細については、「Kubernetes RBAC と AKS の Microsoft Entra ID を使用してクラスター リソースへのアクセスを制御する」を参照してください。

AKS のリソース制限と利用可能なリージョンについて詳しくは、AKS でのクォータ、仮想マシンのサイズ制限、利用可能なリージョンに関する記事を参照してください。

Note

クラスターを確実に動作させるために、少なくとも 2 つのノードを実行する必要があります。

AKS クラスターが他の Azure リソースとやりとりできるようにするために、Azure プラットフォームによりクラスター ID が自動的に作成されます。 この例では、クラスター ID に、前のチュートリアルで作成した ACR インスタンスからイメージをプルする権利が付与されます。 コマンドを正常に実行するために、Azure サブスクリプションに所有者または Azure アカウント管理者のロールが必要です。

  • az aks create コマンドを使用して、AKS クラスターを作成します。 次の例では、myResourceGroup という名前のリソース グループに myAKSCluster という名前のクラスターを作成します。 このリソース グループは、前のチュートリアルで作成しました ("米国東部" リージョン)。 前のチュートリアルで設定した環境変数 $ACRNAME を引き続き使います。 この環境変数を設定していない場合は、前に使ったのと同じ値にここで設定してください。

    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 を使用することもできます。

kubectl を使用したクラスターへの接続

  1. az aks get-credentials コマンドを使用して、Kubernetes クラスターに接続するように kubectl を構成します。 次の例では、myResourceGroupmyAKSCluster という名前の AKS クラスターの資格情報を取得します。

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. クラスターへの接続を確認する場合は、クラスター ノードのリストを返す kubectl get nodes コマンドを使用します。

    kubectl get nodes
    

    次の出力例は、クラスター ノードのリストを示しています。

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-nodepool1-19366578-vmss000000   Ready    agent   47h   v1.28.9
    aks-nodepool1-19366578-vmss000001   Ready    agent   47h   v1.28.9
    

次のステップ

このチュートリアルでは、Kubernetes クラスターを AKS にデプロイし、kubectl を構成してクラスターに接続しました。 以下の方法を学習しました。

  • ACR に対して認証できる AKS クラスターをデプロイします。
  • Kubernetes CLI、kubectl をインストールします。
  • kubectl を構成して AKS クラスターに接続します。

次のチュートリアルでは、アプリケーションをクラスターにデプロイする方法について説明します。