クイック スタート: Azure Kubernetes Service (AKS) クラスターのデプロイQuickstart: Deploy an Azure Kubernetes Service (AKS) cluster

このクイック スタートでは、Azure CLI を使用して AKS クラスターをデプロイします。In this quickstart, an AKS cluster is deployed using the Azure CLI. 次に、このクラスターで、Web フロントエンドと Redis インスタンスで構成される複数コンテナー アプリケーションが実行されます。A multi-container application consisting of web front end and a Redis instance is then run on the cluster. 完了すると、このアプリケーションはインターネット経由でアクセス可能になります。Once completed, the application is accessible over the internet.

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

このクイック スタートは、Kubernetes の概念についての基礎知識があることを前提としています。Kubernetes について詳しくは、Kubernetes のドキュメントをご覧ください。This quickstart assumes a basic understanding of Kubernetes concepts, for detailed information on Kubernetes see the Kubernetes documentation.

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.27 以降を実行している必要があります。If you choose to install and use the CLI locally, this quickstart requires that you are running the Azure CLI version 2.0.27 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

az group create コマンドでリソース グループを作成します。Create a resource group with the az group create command. Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理グループです。An Azure resource group is a logical group in which Azure resources are deployed and managed.

リソース グループを作成するときに場所を指定するように求められます。Azure で利用するリソースは、その場所に配置されます。When creating a resource group you are asked to specify a location, this is where your resources will live in Azure.

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

az group create --name myResourceGroup --location eastus

出力:Output:

{
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/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. AKS クラスターをデプロイするときに、コンテナー正常性監視ソリューションも有効にできます。When deploying an AKS cluster, the container health monitoring solution can also be enabled. コンテナー正常性監視ソリューションの有効化について詳しくは、Azure Kubernetes Service の正常性の監視に関するページをご覧ください。For more information on enabling the container health monitoring solution, see Monitor Azure Kubernetes Service health.

az aks create --resource-group myResourceGroup --name myAKSCluster --node-count 1 --generate-ssh-keys

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

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

Kubernetes クラスターを管理するには、Kubernetes のコマンドライン クライアントである kubectl を使います。To manage a Kubernetes cluster, use kubectl, the Kubernetes command-line client.

Azure Cloud Shell を使用している場合、kubectl は既にインストールされています。If you're using Azure Cloud Shell, kubectl is already installed. ローカルにインストールする場合には、az aks install-cli コマンドを使用します。If you want to install it 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 step 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. 表示されるまでに数分かかる場合があります。Note that this can take a few minutes to appear.

kubectl get nodes

出力:Output:

NAME                          STATUS    ROLES     AGE       VERSION
k8s-myAKSCluster-36346190-0   Ready     agent     2m        v1.7.7

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

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

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

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: azure-vote-back
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: azure-vote-back
    spec:
      containers:
      - name: azure-vote-back
        image: redis
        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/v1beta1
kind: Deployment
metadata:
  name: azure-vote-front
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: azure-vote-front
    spec:
      containers:
      - name: azure-vote-front
        image: microsoft/azure-vote-front:v1
        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 コマンドを使ってアプリケーションを実行します。Use the kubectl apply command to run the application.

kubectl apply -f azure-vote.yaml

出力:Output:

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

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

アプリケーションが実行されると、アプリケーション フロントエンドをインターネットに公開する Kubernetes サービスが作成されます。As the application is run, a Kubernetes service is created that 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 appears 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 ウォッチ プロセスを停止します。Once the EXTERNAL-IP address has changed from pending to an IP address, use CTRL-C to stop the kubectl watch process.

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

ここで、外部 IP アドレスにブラウザーでアクセスして Azure Vote App を表示してみましょう。Now browse to the external IP address to see the Azure Vote App.

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

クラスターを削除する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

コードの入手Get the code

このクイック スタートでは、事前に作成したコンテナー イメージを使用して、Kubernetes のデプロイを作成しました。In this quickstart, pre-created container images have been 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 クラスター チュートリアルに進んでください。To learn more about AKS, and walk through a complete code to deployment example, continue to the Kubernetes cluster tutorial.