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

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

Azure Portal ( https://portal.azure.com ) にサインインします。Sign in to the Azure portal at https://portal.azure.com.

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

Azure portal の左上隅で、 + [リソースの作成] > [コンテナー] > [Kubernetes サービス] の順に選択します。In the top left-hand corner of the Azure portal, select + Create a resource > Containers > Kubernetes Service.

AKS クラスターを作成するには、次の手順を実行します。To create an AKS cluster, complete the following steps:

  1. [基本] ページで、次のオプションを構成します。On the Basics page, configure the following options:

    • プロジェクトの詳細:サブスクリプションを選択し、Azure リソース グループ (たとえば、myResourceGroup) を選択または作成します。PROJECT DETAILS: Select an Azure subscription, then select or create an Azure resource group, such as myResourceGroup. Kubernetes クラスター名 (たとえば、myAKSCluster) を入力します。Enter a Kubernetes cluster name, such as myAKSCluster.

    • クラスターの詳細:AKS クラスターのリージョン、Kubernetes バージョン、および DNS 名プレフィックスを選択します。CLUSTER DETAILS: Select a region, Kubernetes version, and DNS name prefix for the AKS cluster.

    • プライマリ ノード プール: AKS ノードの VM サイズを選択します。PRIMARY NODE POOL: select a VM size for the AKS nodes. AKS クラスターがデプロイされた後に、VM サイズを変更することはできませんThe VM size cannot be changed once an AKS cluster has been deployed.

      • クラスターにデプロイするノードの数を選択します。Select the number of nodes to deploy into the cluster. このクイック スタートでは、 [ノード数]1 に設定します。For this quickstart, set Node count to 1. ノード数は、クラスターをデプロイした後に調整できますNode count can be adjusted after the cluster has been deployed.

      AKS クラスターの作成 - 基本情報を入力する

      [次へ:スケール] を完了後に選択します。Select Next: Scale when complete.

  2. [スケール] ページで、既定のオプションを維持します。On the Scale page, keep the default options. 画面の下部にある [次へ: 認証] をクリックします。At the bottom of the screen, click Next:Authentication.

注意事項

新しい AAD サービス プリンシパルの作成は、伝達されて使用可能になるまでに数分かかる場合があり、それが原因でサービス プリンシパルが見つからないエラーや検証エラーが Azure portal で生じることがあります。Creating new AAD Service Principals may take multiple minutes to propagate and become available causing Service Principal not found errors and validation failures in Azure portal. そのような場合の軽減策については、こちらをご覧ください。If you hit this please visit here for mitigations.

  1. [認証] ページで、次のオプションを構成します。On the Authentication page, configure the following options:
    • [サービス プリンシパル] フィールドを [(新規) 既定のサービス プリンシパル] のままにして、新しいサービス プリンシパルを作成します。Create a new service principal by leaving the Service Principal field with (new) default service principal. または、 [サービス プリンシパルを構成します] を選択して、既存のものを使用することもできます。Or you can choose Configure service principal to use an existing one. 既存のものを使用する場合、SPN クライアント ID とシークレットを指定する必要があります。If you use an existing one, you will need to provide the SPN client ID and secret.
    • Kubernetes のロールベースのアクセス制御 (RBAC) のオプションを有効にします。Enable the option for Kubernetes role-based access controls (RBAC). これを使用すると、自分の AKS クラスターにデプロイされた Kubernetes リソースへのアクセスをより詳細に制御できます。This will provide more fine-grained control over access to the Kubernetes resources deployed in your AKS cluster.

既定では、"基本" ネットワークが使用され、コンテナーに対する Azure Monitor が有効になります。By default, Basic networking is used, and Azure Monitor for containers is enabled. 検証が完了したら、 [確認および作成][作成] の順にクリックします。Click Review + create and then Create when validation completes.

AKS クラスターの作成には数分かかります。It takes a few minutes to create the AKS cluster. デプロイが完了したら、 [リソースに移動] をクリックするか、AKS クラスター リソース グループ (myResourceGroup など) を参照して、AKS リソース (myAKSCluster など) を選択します。When your deployment is complete, click Go to resource, or browse to the AKS cluster resource group, such as myResourceGroup, and select the AKS resource, such as myAKSCluster. この例のように、AKS クラスターのダッシュボードが表示されます。The AKS cluster dashboard is shown, as in this example:

Azure portal の AKS ダッシュボードの例

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

Kubernetes クラスターを管理するには、Kubernetes のコマンドライン クライアントである kubectl を使用します。To manage a Kubernetes cluster, you use kubectl, the Kubernetes command-line client. kubectl クライアントは Azure Cloud Shell に事前にインストールされています。The kubectl client is pre-installed in the Azure Cloud Shell.

Azure portal の上部にある >_ ボタンを使用して Cloud Shell を開きます。Open Cloud Shell using the >_ button on the top of the Azure portal.

ポータルで Azure Cloud Shell を開く

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. 次の例では、myResourceGroup という名前のリソース グループの myAKSCluster という名前のクラスターの資格情報を取得します。The following example gets credentials for the cluster name myAKSCluster in the resource group named myResourceGroup:

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-agentpool-14693408-0   Ready     agent     15m       v1.11.5

アプリケーションの実行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.

Cloud Shell で、nano または vi を使用して azure-vote.yaml という名前のファイルを作成し、次の YAML 定義にコピーします。In the cloud shell, use nano or vi to create a file named azure-vote.yaml and copy in the following YAML definition:

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 Vote サンプル アプリケーションにブラウザーでアクセスしたところ

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

クラスターを作成したときに、コンテナーに対する Azure Monitor が有効になりました。When you created the cluster, Azure Monitor for containers was enabled. この監視機能は、AKS クラスターとクラスター上で動作するポッドの両方の正常性メトリックを提供します。This monitoring feature provides health metrics for both the AKS cluster and pods running on the cluster.

Azure Portal にこのデータが入力されるまで、数分かかる場合があります。It may take a few minutes for this data to populate in the Azure portal. Azure Vote ポッドの現在の状態、稼働時間、およびリソース使用率を確認するには、Azure portal の AKS リソース (たとえば、myAKSCluster) に戻ります。To see current status, uptime, and resource usage for the Azure Vote pods, browse back to the AKS resource in the Azure portal, such as myAKSCluster. その後、次のようにして、正常性状態にアクセスすることができます。You can then access the health status as follows:

  1. 左側の [監視] の下で、 [Insights] を選択しますUnder Monitoring on the left-hand side, choose Insights
  2. 上部の [+ フィルターの追加] を選択しますAcross the top, choose to + Add Filter
  3. プロパティとして "名前空間" を選択し、 <All but kube-system (kube-system 以外のすべて)> を選択しますSelect Namespace as the property, then choose <All but kube-system>
  4. コンテナーの表示を選択します。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 from the drop down of the containers list. これらのログには、コンテナーからの stdout ストリームと stderr ストリームが含まれます。These logs include the stdout and stderr streams from the container.

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

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

クラスターが不要になったら、クラスターのリソース を削除します。削除すると、関連するすべてのリソースも削除されます。When the cluster is no longer needed, delete the cluster resource, which deletes all associated resources. この操作を行うには、Azure portal で、AKS クラスター ダッシュボードの [削除] ボタンを選択します。This operation can be completed in the Azure portal by selecting the Delete button on the AKS cluster dashboard. または、Cloud Shell で az aks delete コマンドを使用することもできます。Alternatively, the az aks delete command can be used in the Cloud Shell:

az aks delete --resource-group myResourceGroup --name myAKSCluster --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 クラスター チュートリアルに進んでください。To learn more about AKS, and walk through a complete code to deployment example, continue to the Kubernetes cluster tutorial.