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

このクイックスタートでは、Azure CLI を使用して Azure Kubernetes Service (AKS) クラスターをデプロイします。In this quickstart, you deploy an Azure Kubernetes Service (AKS) cluster using the Azure CLI. AKS は、クラスターをすばやくデプロイおよび管理することができる、マネージド Kubernetes サービスです。AKS is a managed Kubernetes service that lets you quickly deploy and manage clusters. このクラスターで、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.

Windows Server コンテナー (現在 AKS でプレビュー段階にあります) を使用する場合は、Windows Server コンテナーをサポートする AKS クラスターの作成に関するページを参照してください。If you want to use Windows Server containers (currently in preview in AKS), see Create an AKS cluster that supports Windows Server containers.

Azure Kubernetes Service にデプロイされた投票アプリ

このクイックスタートは、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 を使用するUse Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell では、bashPowerShell のいずれかを使用して Azure サービスを操作できます。Cloud Shell lets you use either bash or PowerShell to work with Azure services. ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell を起動するには:To launch Azure Cloud Shell:

オプションOption 例とリンクExample/Link
コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. [使ってみる] を選択しても、コードは Cloud Shell に自動的にコピーされません。Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell の [使ってみる] の例
https://shell.azure.com に移動するか、 [Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. 新しいウィンドウで Cloud Shell を起動するLaunch Cloud Shell in a new window
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。Select the Cloud Shell button on the top-right menu bar in the Azure portal. Azure Portal の [Cloud Shell] ボタン

Azure Cloud Shell でこの記事のコードを実行するには:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell を起動します。Launch Cloud Shell.

  2. [コピー] ボタンを選択して、コード ブロックをコードにコピーします。Select the Copy button on a code block to copy the code.

  3. Windows と Linux では Ctrl + Shift + V キー、macOS では Cmd + Shift + V キーを使用して、コードを Cloud Shell セッションに貼り付けます。Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.

  4. Enter キーを押して、コードを実行します。Press Enter to run the code.

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

注意

このクイックスタートのコマンドを (Azure Cloud Shell ではなく) ローカルで実行する場合は、必ず管理者としてコマンドを実行してください。If running the commands in this quickstart locally (instead of Azure Cloud Shell), ensure you run the commands as administrator.

リソース グループの作成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 resource 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. これは完了までに数分かかる場合があります。This will take several minutes to complete.

[注] AKS クラスターを作成すると、AKS リソースを保存するための 2 つ目のリソース グループが自動的に作成されます。[NOTE] When creating an AKS cluster a second resouce group is automatically created to store the AKS resources. 詳細については、「AKS と一緒にリソース グループが 2 つ作成されるのはなぜでしょうか?」を参照してください。For more information see Why are two resource groups created with AKS?

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.12.8

アプリケーションの実行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:
      nodeSelector:
        "beta.kubernetes.io/os": linux
      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:
      nodeSelector:
        "beta.kubernetes.io/os": linux
      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 Kubernetes Service にデプロイされた投票アプリ

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.

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

Azure の課金を回避するには、不要なリソースをクリーンアップする必要があります。To avoid Azure charges, you should clean up unneeded resources. クラスターが必要なくなったら、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. また、AKS クラスターの Kubernetes Web ダッシュボードにアクセスすることもできます。You can also access the Kubernetes web dashboard for your AKS cluster.

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