Azure Container Service (AKS) クラスターのデプロイ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 to copy the code, paste it into the Cloud Shell, and then press enter to run it. Cloud Shell は、次の 2 とおりの方法で起動することができます。There are two ways to launch the Cloud Shell:

コード ブロックの右上隅にある [使ってみる] をクリックします。Click Try It in the upper right corner of a code block. この記事の Cloud Shell
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.21 以降を実行している必要があります。If you choose to install and use the CLI locally, this quickstart requires that you are running the Azure CLI version 2.0.21 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 サブスクリプションでの AKS プレビューの有効化Enabling AKS preview for your Azure subscription

AKS がプレビューである間、新しいクラスターを作成するには、サブスクリプションに機能フラグが必要です。While AKS is in preview, creating new clusters requires a feature flag on your subscription. 使用する任意の数のサブスクリプションに対して、この機能を要求することができます。You may request this feature for any number of subscriptions that you would like to use. AKS プロバイダーを登録するには、次のように az provider register コマンドを使用します。Use the az provider register command to register the AKS provider:

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.

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

次の例では、myK8sCluster という名前のクラスターを 1 つのノードで作成します。The following example creates a cluster named myK8sCluster with one node.

az aks create --resource-group myResourceGroup --name myK8sCluster --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. ローカルにインストールする場合は、次のコマンドを実行します。If you want to install it locally, run the following command.

az aks install-cli

Kubernetes クラスターに接続するように kubectl を構成するには、次のコマンドを実行します。To configure kubectl to connect to your Kubernetes cluster, run the following command. この手順では、資格情報をダウンロードし、Kubernetes CLI を構成してそれらの資格情報を使用します。This step downloads credentials and configures the Kubernetes CLI to use them.

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

クラスターへの接続を確認するには、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

出力:Output:

NAME                          STATUS    ROLES     AGE       VERSION
k8s-myk8scluster-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-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:redis-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-redishttps://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.