すべてのプロダクト
Search
ドキュメントセンター

Container Compute Service:kubectl を使用した ACS の概要

最終更新日:Dec 27, 2024

Alibaba Cloud Container Compute Service (ACS) は、高性能なコンテナ化コンピューティングサービスを提供します。ACS を使用すると、クラウド内のコンテナ化アプリケーションを便利かつ効率的に実行できます。このトピックでは、kubectl を使用して ACS クラスタにコンテナ化アプリケーションをデプロイ、公開、および監視する方法について説明します。

背景情報

  • このトピックでは、イメージを使用して acs-kube という名前のアプリケーションを ACS クラスタにデプロイする方法を示します。このアプリケーションは、オンラインのマジックキューブゲームを提供します。このトピックの手順を実行すると、ACS クラスタが作成され、マジックキューブゲームを提供するアプリケーションがデプロイされます。

  • アプリケーションのデプロイに使用されるコンテナイメージは、オープンソースプロジェクトに基づいて構築されています。イメージアドレスは registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube です。

  • kubectl は、Kubernetes クラスタに接続して管理するために Kubernetes が提供するコマンドラインツールです。kubectl の詳細については、kubectl を参照してください。

  • Cloud Shell は、Alibaba Cloud が提供する Web ベースのコマンドラインツールです。ACS コンソールの Cloud Shell で kubectl を使用して、ACS クラスタを管理できます。インストールと構成は不要です。

手順

ACS の有効化と権限の付与

ACS を初めて使用する場合は、ACS を有効化し、クラウド リソースにアクセスするための権限を ACS に付与する必要があります。

  1. ACS コンソール にログインし、有効化 をクリックします。

  2. ACS の有効化 ページに移動し、画面の指示に従って ACS を有効化します。

  3. ACS コンソールに戻り、ページを更新します。今すぐ承認 をクリックします。

  4. ACS 承認ページに移動し、画面の指示に従って ACS に権限を付与します。

    上記の手順が完了したら、ACS コンソールを更新します。その後、ACS を使い始めることができます。

ステップ 2: ACS クラスタを作成する

このステップでは、ACS クラスタを作成するときにクラスタパラメータを構成する方法を示します。

  1. クラスタ ページの左上隅にある クラスタの作成 をクリックします。

  2. ACS コンソール にログインします。左側のナビゲーションペインで、クラスタ をクリックします。

  3. クラスタの作成 ページで、次の表に示すパラメータを設定します。

    表に記載されていないパラメータには、デフォルト設定を使用します。

    パラメータ

    説明

    クラスタ名

    クラスタの名前を入力します。

    ACS-Demo

    リージョン

    クラスタをデプロイするリージョンを選択します。

    中国 (北京)

    VPC

    ACS クラスタは、仮想プライベートクラウド (VPC) にのみデプロイできます。クラスタと同じリージョンにある VPC を指定する必要があります。

    VPC の作成 をクリックして、中国 (北京) リージョンに vpc-acs-demo という名前の VPC を作成します。詳細については、VPC の作成と管理 を参照してください。

    vpc-acs-demo

    vSwitch

    クラスタ内のノードが相互に通信するための vSwitch を選択します。

    Vswitch の作成 をクリックし、vpc-ack-demo VPC に vswitch-ack-demo という名前の vSwitch を作成します。次に、vSwitch リストで vswitch-ack-demo を選択します。詳細については、vSwitch の作成と管理 を参照してください。

    vswitch-acs-demo

    API サーバーアクセス設定

    クラスタの Kubernetes API サーバーをインターネットに公開するかどうかを指定します。インターネット経由でクラスタを管理する場合は、エラスティック IP アドレス (EIP) を使用して Kubernetes API サーバーを公開する必要があります。

    EIP で API サーバーを公開 を選択します。

    サービスディスカバリ

    クラスタのサービスディスカバリを有効にするかどうかを指定します。サービスディスカバリを有効にするには、CoreDNS を選択します。

    CoreDNS を選択します。

  4. 注文の確認 をクリックし、利用規約を読んで選択してから、クラスタの作成 をクリックします。

    説明

    クラスタの作成には約 10 分かかります。クラスタが作成されると、クラスタ ページでクラスタを表示できます。

ステップ 3: クラスタに接続する

このステップでは、kubectl クライアントまたは Cloud Shell を使用して ACS クラスタに接続する方法を示します。詳細については、クラスタの kubeconfig ファイルの取得と kubectl を使用してクラスタに接続する方法 および Cloud Shell で kubectl を使用して ACS クラスタを管理する を参照してください。

kubectl クライアントを使用してクラスタに接続する

  1. ACS コンソール にログインします。左側のナビゲーションペインで、クラスタ をクリックします。

  2. クラスタ ページで、作成したクラスタの名前 (この例では ACS-Demo) をクリックします。

  3. クラスタ情報 ページで、接続情報 タブをクリックします。パブリックアクセス タブの [コピー] をクリックして、インターネット経由でクラスタにアクセスするために使用されるクレデンシャルをコピーします。

  4. クレデンシャルを $HOME/.kube ディレクトリの config ファイルに貼り付けて、ファイルを保存してから終了します。

    説明

    $HOME/ ディレクトリに .kube フォルダと config ファイルが存在しない場合は、フォルダとファイルを手動で作成する必要があります。

  5. 次の kubectl コマンドを実行して、クラスタの接続性を確認します。

    次のコマンドを実行して、クラスタの名前空間をクエリします。

    kubectl get namespace

    予期される出力:

    NAME              STATUS   AGE
    arms-prom         Active   4h39m
    default           Active   4h39m
    kube-node-lease   Active   4h39m
    kube-public       Active   4h39m
    kube-system       Active   4h39m

Cloud Shell を使用してクラスタに接続する

  1. ACS コンソール にログインします。左側のナビゲーションペインで、クラスタ をクリックします。

  2. クラスタ ページで、作成したクラスタを見つけて、詳細 > Cloud Shell を開くアクション 列で を選択します。

    Cloud Shell の起動には数秒かかります。Cloud Shell が起動すると、Cloud Shell インターフェースで kubectl コマンドを実行して、クラスタとクラスタにデプロイされたアプリケーションを管理できます。

ステップ 4: アプリケーションをデプロイして公開する

このステップでは、kubectl を使用して Deployment を作成することによりステートレスアプリケーションをデプロイし、LoadBalancer Service を使用してアプリケーションを公開する方法を示します。アプリケーションを公開する方法の詳細については、自動的に作成された SLB インスタンスを使用してアプリケーションを公開する を参照してください。

  1. acs-cube.yaml という名前のファイルを作成し、次の内容をファイルにコピーします。

    acs-cube.yaml の内容を表示

    apiVersion: apps/v1 # 1.8.0 より前のバージョンでは apps/v1beta1 を使用します
    kind: Deployment
    metadata:
      name: acs-cube # アプリケーション名
      labels:
        app: acs-cube
    spec:
      replicas: 2 # レプリケートされた Pod の数
      selector:
        matchLabels:
          app: acs-cube # アプリケーションを公開するために使用される Service のセレクタと同じ値にする必要があります
      template:
        metadata:
          labels:
            app: acs-cube
        spec:
          containers:
          - name: acs-cube
            image: registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube:1.0 # 使用するイメージのアドレスを <image_name:tags> 形式で置き換えます
            ports:
            - containerPort: 80 # 公開するコンテナポート
            resources:
              limits: # リソース制限を設定します
                cpu: '1'
                memory: 1Gi
              requests: # リソースリクエストを設定します
                cpu: 500m
                memory: 512Mi        
  2. 次のコマンドを実行して、acs-cube アプリケーションをデプロイします:

    kubectl apply -f acs-cube.yaml
  3. 次のコマンドを実行して、アプリケーションのステータスをクエリします:

    kubectl get deployment acs-cube

    予期される出力:

    NAME       READY   UP-TO-DATE   AVAILABLE   AGE
    acs-cube   2/2     2            2           96s
  4. acs-cube-svc.yaml という名前のファイルを作成し、次の内容をファイルにコピーします。

    selector を ack-cube.yaml ファイルの matchLabels の値に設定します。この例では、値は app: ack-cube に設定されています。これにより、アプリケーションが Service のバックエンドに追加されます。

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: acs-cube
      name: acs-cube-svc
      namespace: default
    spec:
      ports:
      - port: 80
        protocol: TCP
        targetPort: 80
      selector:
        app: acs-cube # Deployment の作成に使用された YAML ファイルの matchLabels パラメータの値を指定する必要があります
      type: LoadBalancer
  5. 次のコマンドを実行して、ack-cube-svc という名前の Service を作成し、Service を使用してアプリケーションを公開します。

    ACS は、インターネットに接続する Server Load Balancer (SLB) インスタンスを自動的に作成し、SLB インスタンスを Service に関連付けます。

    kubectl apply -f acs-cube-svc.yaml
  6. 次のコマンドを実行して、LoadBalancer Service が作成されているかどうかを確認します。

    作成したアプリケーションは、出力の EXTERNAL-IP 列の IP アドレスを使用して公開されます。

    kubectl get svc acs-cube-svc

    予期される出力:

    NAME           TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)        AGE
    acs-cube-svc   LoadBalancer   172.16.72.161   47.94.xx.xx   80:31547/TCP   32s

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

ブラウザのアドレスバーに IP アドレス (EXTERNAL-IP) を入力し、Enter キーを押してマジックキューブゲームを開始します。

関連情報

  • アプリケーション Pod の自動スケーリングを有効にするには、Horizontal Pod Autoscaler (HPA)、Cron Horizontal Pod Autoscaler (CronHPA)、および Vertical Pod Autoscaler (VPA) を構成できます。詳細については、自動スケーリングの概要 を参照してください。

  • Service を介したアプリケーションの公開に加えて、Ingress を使用してレイヤー 7 でアプリケーショントラフィックルーティングを有効にすることができます。詳細については、ALB Ingress の概要 を参照してください。

  • アプリケーションの監視情報を表示するには、クラスタの詳細ページに移動し、左側のナビゲーションペインで [操作] > [Prometheus 監視] を選択します。Prometheus 監視ページでは、CPU 使用率、メモリ使用率、ネットワーク I/O などの監視情報を表示できます。詳細については、Managed Service for Prometheus を使用して ACS クラスタを監視する を参照してください。