クイック スタート:Azure CLI を使用して Azure Kubernetes Service (AKS) クラスターをデプロイするQuickstart: Deploy an Azure Kubernetes Service (AKS) cluster using the Azure CLI

Azure Kubernetes Service (AKS) は、クラスターをすばやくデプロイおよび管理することができる、マネージド Kubernetes サービスです。Azure Kubernetes Service (AKS) is a managed Kubernetes service that lets you quickly deploy and manage clusters. このクイック スタートでは、Azure CLI を使用して AKS クラスターをデプロイします。In this quickstart, you deploy an AKS cluster using the Azure CLI. このクラスターで、Web フロント エンドと Redis インスタンスが含まれている複数コンテナー アプリケーションが実行されます。A multi-container application that includes a web front end and a Redis instance is run in the cluster. その後、アプリケーションを実行するクラスターとポッドの正常性を監視する方法を示します。You then see how to monitor the health of the cluster and pods that run your application.

Azure Vote にブラウザーでアクセスしたところ

このクイックスタートは、Kubernetes の基本的な概念を理解していることを前提としています。This quickstart assumes a basic understanding of Kubernetes concepts. 詳細については、「Azure Kubernetes Services (AKS) における Kubernetes の中心概念」を参照してください。For more information, see Kubernetes core concepts for Azure Kubernetes Service (AKS).

Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。If you don't have an Azure subscription, create a free account before you begin.

Azure Cloud Shell を開くOpen Azure Cloud Shell

Azure Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。Azure Cloud Shell is a free, interactive shell that you can use to run the steps in this article. Cloud Shell には一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。Common Azure tools are preinstalled and configured in Cloud Shell for you to use with your account. [コピー] ボタンを選択してコードをコピーし、Cloud Shell に貼り付けて Enter キーを押すだけで、コードを実行することができます。Just select the Copy button to copy the code, paste it in Cloud Shell, and then press Enter to run it. Cloud Shell は、次のようにいくつかの方法で開くことができます。There are a few ways to open Cloud Shell:

コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. この記事の Cloud Shell
ブラウザーで Cloud Shell を開きます。Open Cloud Shell in your browser. https://shell.azure.com/bash
Azure Portal の右上隅にあるメニューの [Cloud Shell] ボタンを選択します。Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. ポータルの Cloud Shell

CLI をローカルにインストールして使用する場合、このクイック スタートを実施するには、Azure CLI バージョン 2.0.52 以降を実行している必要があります。If you choose to install and use the CLI locally, this quickstart requires that you are running the Azure CLI version 2.0.52 or later. バージョンを確認するには、az --version を実行します。Run az --version to find the version. インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。If you need to install or upgrade, see Install Azure CLI.

リソース グループの作成Create a resource group

Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理グループです。An Azure resource group is a logical group in which Azure resources are deployed and managed. リソース グループを作成する際は、場所を指定するよう求められます。When you create a resource group, you are asked to specify a location. この場所は、リソース グループのメタデータが格納される場所です。リソースの作成時に別のリージョンを指定しない場合は、Azure でリソースが実行される場所でもあります。This location is where resource group metadata is stored, it is also where your resources run in Azure if you don't specify another region during resouce creation. az group create コマンドを使用して、リソース グループを作成します。Create a resource group using the az group create command.

次の例では、myResourceGroup という名前のリソース グループを eastus に作成します。The following example creates a resource group named myResourceGroup in the eastus location.

az group create --name myResourceGroup --location eastus

次の出力例では、正常に作成されたリソース グループが示されています。The following example output shows the resource group created successfully:

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

AKS クラスターの作成Create AKS cluster

AKS クラスターを作成するには、az aks create コマンドを使用します。Use the az aks create command to create an AKS cluster. 次の例では、myAKSCluster という名前のクラスターを 1 つのノードで作成します。The following example creates a cluster named myAKSCluster with one node. コンテナーの Azure Monitor は、--enable-addons monitoring パラメーターを使用して有効にすることもできます。Azure Monitor for containers is also enabled using the --enable-addons monitoring parameter.

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-count 1 \
    --enable-addons monitoring \
    --generate-ssh-keys

数分後、コマンドが完了し、クラスターに関する情報が JSON 形式で返されます。After a few minutes, the command completes and returns JSON-formatted information about the cluster.

クラスターへの接続Connect to the cluster

Kubernetes クラスターを管理するには、Kubernetes のコマンドライン クライアントである kubectl を使用します。To manage a Kubernetes cluster, you use kubectl, the Kubernetes command-line client. Azure Cloud Shell を使用している場合、kubectl は既にインストールされています。If you use Azure Cloud Shell, kubectl is already installed. kubectl をローカルにインストールするには、az aks install-cli コマンドを使用します。To install kubectl locally, use the az aks install-cli command:

az aks install-cli

Kubernetes クラスターに接続するように kubectl を構成するには、az aks get-credentials コマンドを使用します。To configure kubectl to connect to your Kubernetes cluster, use the az aks get-credentials command. このコマンドは、資格情報をダウンロードし、それを使用するように Kubernetes CLI を構成します。This command downloads credentials and configures the Kubernetes CLI to use them.

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

クラスターへの接続を確認するには、kubectl get コマンドを使って、クラスター ノードの一覧を取得します。To verify the connection to your cluster, use the kubectl get command to return a list of the cluster nodes.

kubectl get nodes

次の出力例は、前の手順で作成した単一ノードを示しています。The following example output shows the single node created in the previous steps. ノードの状態が "準備完了" であることを確認します。Make sure that the status of the node is Ready:

NAME                       STATUS   ROLES   AGE     VERSION
aks-nodepool1-31718369-0   Ready    agent   6m44s   v1.9.11

アプリケーションの実行Run the application

Kubernetes のマニフェスト ファイルでは、どのコンテナー イメージを実行するかなど、クラスターの望ましい状態を定義します。A Kubernetes manifest file defines a desired state for the cluster, such as what container images to run. このクイック スタートでは、マニフェストを使用して、Azure Vote アプリケーションを実行するために必要なすべてのオブジェクトを作成します。In this quickstart, a manifest is used to create all objects needed to run the Azure Vote application. このマニフェストには、Kubernetes デプロイが 2 つ含まれます。サンプル Azure Vote Python アプリケーション用と Redis インスタンス用です。This manifest includes two Kubernetes deployments - one for the sample Azure Vote Python applications, and the other for a Redis instance. さらに、Kubernetes サービスが 2 つ作成されます。Redis インスタンスに使用される内部サービスと、Azure Vote アプリケーションにインターネットからアクセスするための外部サービスです。Two Kubernetes Services are also created - an internal service for the Redis instance, and an external service to access the Azure Vote application from the internet.

ヒント

このクイック スタートでは、アプリケーション マニフェストの作成と AKS クラスターへのデプロイを手動で行います。In this quickstart, you manually create and deploy your application manifests to the AKS cluster. より現実に即したシナリオでは、Azure Dev Spaces を使用することで、反復作業を迅速化し、AKS クラスター内で直接、コードをデバッグすることができます。In more real-world scenarios, you can use Azure Dev Spaces to rapidly iterate and debug your code directly in the AKS cluster. Dev Spaces は、OS プラットフォームと開発環境の垣根を越えて使用でき、チーム内の他のメンバーと連携することができます。You can use Dev Spaces across OS platforms and development environments, and work together with others on your team.

azure-vote.yaml という名前のファイルを作成し、以下の YAML 定義をコピーします。Create a file named azure-vote.yaml and copy in the following YAML definition. Azure Cloud Shell を使用する場合は、仮想システムまたは物理システムで作業するときと同じように、vi または nano を使用してこのファイルを作成できます。If you use the Azure Cloud Shell, this file can be created using vi or nano as if working on a virtual or physical system:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: azure-vote-back
spec:
  replicas: 1
  selector:
    matchLabels:
      app: azure-vote-back
  template:
    metadata:
      labels:
        app: azure-vote-back
    spec:
      containers:
      - name: azure-vote-back
        image: redis
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 250m
            memory: 256Mi
        ports:
        - containerPort: 6379
          name: redis
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-back
spec:
  ports:
  - port: 6379
  selector:
    app: azure-vote-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: azure-vote-front
spec:
  replicas: 1
  selector:
    matchLabels:
      app: azure-vote-front
  template:
    metadata:
      labels:
        app: azure-vote-front
    spec:
      containers:
      - name: azure-vote-front
        image: microsoft/azure-vote-front:v1
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 250m
            memory: 256Mi
        ports:
        - containerPort: 80
        env:
        - name: REDIS
          value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
  name: azure-vote-front
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: azure-vote-front

kubectl apply コマンドを使用してアプリケーションをデプロイし、YAML マニフェストの名前を指定します。Deploy the application using the kubectl apply command and specify the name of your YAML manifest:

kubectl apply -f azure-vote.yaml

次の出力例は、正常に作成されたデプロイおよびサービスを示しています。The following example output shows the Deployments and Services created successfully:

deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created

アプリケーションをテストするTest the application

アプリケーションが実行されると、Kubernetes サービスによってアプリケーション フロント エンドがインターネットに公開されます。When the application runs, a Kubernetes service exposes the application front end to the internet. このプロセスが完了するまでに数分かかることがあります。This process can take a few minutes to complete.

進行状況を監視するには、kubectl get service コマンドと --watch 引数を使います。To monitor progress, use the kubectl get service command with the --watch argument.

kubectl get service azure-vote-front --watch

最初に、azure-vote-front サービスの EXTERNAL-IP が "保留中" として表示されます。Initially the EXTERNAL-IP for the azure-vote-front service is shown as pending.

NAME               TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
azure-vote-front   LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s

EXTERNAL-IP アドレスが "保留中" から実際のパブリック IP アドレスに変わったら、CTRL-C を使用して kubectl ウォッチ プロセスを停止します。When the EXTERNAL-IP address changes from pending to an actual public IP address, use CTRL-C to stop the kubectl watch process. 次の出力例は、サービスに割り当てられている有効なパブリック IP アドレスを示しています。The following example output shows a valid public IP address assigned to the service:

azure-vote-front   LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m

Azure Vote アプリが動作していることを確認するには、Web ブラウザーを開いてサービスの外部 IP アドレスにアクセスします。To see the Azure Vote app in action, open a web browser to the external IP address of your service.

Azure Vote にブラウザーでアクセスしたところ

正常性の監視とログMonitor health and logs

AKS クラスターが作成されたとき、クラスター ノードとポッドの両方の正常性メトリックを取得するために、コンテナーに対する Azure Monitor が有効になりました。When the AKS cluster was created, Azure Monitor for containers was enabled to capture health metrics for both the cluster nodes and pods. これらの正常性メトリックは、Azure portal で利用できます。These health metrics are available in the Azure portal.

Azure Vote ポッドの現在の状態、アップタイム、およびリソース使用率を確認するには、次の手順を実行します。To see current status, uptime, and resource usage for the Azure Vote pods, complete the following steps:

  1. Web ブラウザーで、Azure portalhttps://portal.azure.com を開きます。Open a web browser to the Azure portal https://portal.azure.com.
  2. リソース グループ (たとえば、myResourceGroup) を選択し、次に AKS クラスター (たとえば、myAKSCluster) を選択します。Select your resource group, such as myResourceGroup, then select your AKS cluster, such as myAKSCluster.
  3. 左側の [監視] の下で、[Insights] を選択しますUnder Monitoring on the left-hand side, choose Insights
  4. 上部の [+ フィルターの追加] を選択しますAcross the top, choose to + Add Filter
  5. プロパティとして "名前空間" を選択し、<All but kube-system (kube-system 以外のすべて)> を選択しますSelect Namespace as the property, then choose <All but kube-system>
  6. コンテナーの表示を選択します。Choose to view the Containers.

次の例に示されているように、azure-vote-back コンテナーと azure-vote-front コンテナーが表示されます。The azure-vote-back and azure-vote-front containers are displayed, as shown in the following example:

AKS で実行中のコンテナーの正常性を表示する

azure-vote-front ポッドのログを表示するには、コンテナーの一覧の右側にある [コンテナー ログの表示] リンクを選択します。To see logs for the azure-vote-front pod, select the View container logs link on the right-hand side of the containers list. これらのログには、コンテナーからの stdout ストリームと stderr ストリームが含まれます。These logs include the stdout and stderr streams from the container.

AKS のコンテナー ログを表示する

クラスターを削除するDelete cluster

クラスターが必要なくなったら、az group delete コマンドを使って、リソース グループ、コンテナー サービス、およびすべての関連リソースを削除してください。When the cluster is no longer needed, use the az group delete command to remove the resource group, container service, and all related resources.

az group delete --name myResourceGroup --yes --no-wait

注意

クラスターを削除したとき、AKS クラスターで使用される Azure Active Directory サービス プリンシパルは削除されません。When you delete the cluster, the Azure Active Directory service principal used by the AKS cluster is not removed. サービス プリンシパルを削除する手順については、AKS のサービス プリンシパルに関する考慮事項と削除に関するページを参照してください。For steps on how to remove the service principal, see AKS service principal considerations and deletion.

コードの入手Get the code

このクイック スタートでは、Kubernetes のデプロイを作成するために、事前に作成したコンテナー イメージを使用しました。In this quickstart, pre-created container images were used to create a Kubernetes deployment. 関連するアプリケーション コード、Dockerfile、および Kubernetes マニフェスト ファイルは、GitHub で入手できます。The related application code, Dockerfile, and Kubernetes manifest file are available on GitHub.

https://github.com/Azure-Samples/azure-voting-app-redis

次の手順Next steps

このクイック スタートでは、Kubernetes クラスターをデプロイし、そこに複数コンテナー アプリケーションをデプロイしました。In this quickstart, you deployed a Kubernetes cluster and deployed a multi-container application to it. 先ほど作成したクラスターの Kubernetes Web ダッシュボードにアクセスします。Access the Kubernetes web dashboard for the cluster you just created.

AKS の詳細を参照し、デプロイの例の完全なコードを確認するには、Kubernetes クラスター チュートリアルに進んでください。To learn more about AKS, and walk through a complete code to deployment example, continue to the Kubernetes cluster tutorial.