クイック スタート: Azure CLI を使用して AKS クラスター用の Azure Linux コンテナー ホストをデプロイする

Azure CLI を使用して AKS クラスター用の Azure Linux コンテナー ホストをデプロイすることで、Azure Linux コンテナー ホストの使用を開始します。 前提条件をインストールしたら、リソース グループを作成し、AKS クラスターを作成し、クラスターに接続して、クラスターでサンプルのマルチコンテナー アプリケーションを実行します。

前提条件

  • Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、Azure Cloud Shell の Bash のクイックスタートに関するページを参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

リソース グループを作成する

Azure リソース グループは、Azure リソースが展開され管理される論理グループです。 リソース グループを作成するときは、場所を指定する必要があります。 この場所は次のとおりです。

  • リソース グループ メタデータのストレージの場所。
  • リソースの作成時に別のリージョンを指定しない場合に、Azure でリソースが実行される場所です。

eastus リージョンに testAzureLinuxResourceGroup という名前のリソース グループを作成するには、次の手順に従います。

az group create コマンドを使用して、リソース グループを作成します。

az group create --name testAzureLinuxReourceGroup --location eastus

次の出力は、リソース グループが正常に作成されたときと似ています。

{
  "id": "/subscriptions/<guid>/resourceGroups/testAzureLinuxResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "testAzureLinuxResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Note

上の例では eastus を使用していますが、Azure Linux コンテナー ホスト クラスターはすべてのリージョンで使用できます。

Azure Linux コンテナー ホスト クラスターを作成する。

--os-sku パラメーターを指定した az aks create コマンドを使用して AKS クラスターを作成し、Azure Linux イメージを使用して AKS クラスターをプロビジョニングします。 次の例では、1 つのノードを持つ testAzureLinuxCluster という名前の Azure Linux クラスターを作成します。

az aks create --name testAzureLinuxCluster --resource-group testAzureLinuxResourceGroup --os-sku AzureLinux

数分後、コマンドが完了し、クラスターに関する情報が JSON 形式で返されます。

クラスターに接続する

Kubernetes クラスターを管理するには、Kubernetes のコマンドライン クライアントである kubectl を使います。

  1. az aks get-credentials コマンドを使用して、Kubernetes クラスターに接続するように kubectl を構成します。
az aks get-credentials --resource-group testAzureLinuxResourceGroup --name testAzureLinuxCluster
  1. kubectl get コマンドを使用して、ご利用のクラスターへの接続を確認します。 コマンドによって、ポッドの一覧が返されます。
  kubectl get pods --all-namespaces

アプリケーションの配置

Kubernetes のマニフェスト ファイルでは、どのコンテナー イメージを実行するかなど、クラスターの望ましい状態を定義します。

このクイックスタートでは、マニフェストを使用して、Azure Vote アプリケーションを実行するために必要なすべてのオブジェクトを作成します。 このマニフェストには、次の 2 つの Kubernetes デプロイが含まれています。

  • サンプルの Azure Vote Python アプリケーション。
  • Redis インスタンス。

次の 2 つの Kubernetes サービスも作成されます。

  • Redis インスタンス用の内部サービス。
  • インターネットから Azure Vote アプリケーションにアクセスするための外部サービス。
  1. azure-vote.yaml という名前のファイルを作成し、そこに次のマニフェストをコピーします。

    • Azure Cloud Shell を使用する場合は、仮想または物理システムで作業するときと同じように、codevi、または nano を使用してこのファイルを作成できます。
    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:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-back
            image: mcr.microsoft.com/oss/bitnami/redis:6.0.8
            env:
            - name: ALLOW_EMPTY_PASSWORD
              value: "yes"
            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:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-front
            image: mcr.microsoft.com/azuredocs/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
    

    YAML マニフェスト ファイルの内訳については、「デプロイと YAML マニフェスト」を参照してください。

  2. kubectl apply コマンドを使用してアプリケーションをデプロイし、ご利用の YAML マニフェストの名前を指定します。

    kubectl apply -f azure-vote.yaml
    

    デプロイとサービスが正常に作成されたことを示す出力の例は、次のようになります。

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

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

アプリケーションが実行されると、Kubernetes サービスによってアプリケーション フロントエンドがインターネットに公開されます。 このプロセスが完了するまでに数分かかることがあります。

kubectl get service コマンドと --watch 引数を使用して、進行状況を監視します。

kubectl get service azure-vote-front --watch

azure-vote-front サービスの [EXTERNAL-IP] の出力は、最初は 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 ウォッチ プロセスを停止します。 次の出力例は、サービスに割り当てられている有効なパブリック IP アドレスを示しています。

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

Azure Vote アプリが動作していることを確認するには、Web ブラウザーを開いてサービスの外部 IP アドレスにアクセスします。

Azure Vote サンプル アプリケーションにブラウザーでアクセスしたスクリーンショット。

クラスターを削除する

以降のチュートリアルを続行しない場合は、Azure の料金が発生しないように、不要なリソースをクリーンアップしてください。 az group delete コマンドを使用して、リソース グループと関連するリソースをすべて削除します。

az group delete --name testAzureLinuxCluster --yes --no-wait

次のステップ

このクイックスタートでは、Azure Linux コンテナー ホスト クラスターをデプロイしました。 Azure Linux コンテナー ホストの詳細を確認し、クラスターのデプロイと管理の詳細な例を確認するには、Azure Linux コンテナー ホストのチュートリアルに進んでください。