クイック スタート: Azure Container Service (AKS) クラスターのデプロイQuickstart: Deploy an Azure Container 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 を起動するLaunch Azure Cloud Shell

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

コード ブロックの右上隅にある [使ってみる] をクリックします。Click 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/bashhttps://shell.azure.com/bash
Azure Portal の右上のメニューの [Cloud Shell] ボタンをクリックします。Click the Cloud Shell button on the menu in the upper right 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.

AKS プレビューの有効化Enabling AKS preview

az provider register コマンドを使用して、必要な Azure サービス プロバイダーが有効になっていることを確認します。Ensure that the needed Azure service providers are enabled with the az provider register command.

az provider register -n Microsoft.Network
az provider register -n Microsoft.Storage
az provider register -n Microsoft.Compute
az provider register -n Microsoft.ContainerService

登録すると、AKS で Kubernetes クラスターを作成できるようになります。After registering, you are now ready to create a Kubernetes cluster with AKS.

リソース グループの作成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. AKS はプレビュー段階ですが、いくつかの場所に限り、選択できるようになっています。While AKS is in preview, only some location options are available. 具体的には、eastus, westeurope, centralus, canadacentral, canadaeast が該当します。These are eastus, westeurope, centralus, canadacentral, canadaeast.

次の例では、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.

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. ここで紹介するイメージはサンプル アプリケーションですが、イメージの作成Azure Container Registry へのデプロイに関するページを読んで独自のアプリケーションを使用してもかまいません。The provided image is a sample application but you can read about creating an image and deploying to the Azure Container Registry to use your own.

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. ローカルで作業する場合は、Visual Studio Code を使用し、code azure-vote.yaml を実行することで、このファイルを作成できます。If you are working locally you can use Visual Studio Code to create this file by running code azure-vote.yaml.

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 create コマンドを使ってアプリケーションを実行します。Use the kubectl create command to run the application.

kubectl create -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 アプリを表示できるようになりました。You can 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, you can 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 quick start, 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.