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

Container Service for Kubernetes:ACK を使用してマジックキューブゲームアプリケーションを迅速にデプロイする

最終更新日:Nov 09, 2025

Container Service for Kubernetes (ACK) クラスターを使用すると、クラウド上で実行されているコンテナ化されたアプリケーションを便利かつ効率的に管理できます。このトピックでは、クラスターコンソールまたは kubectl を使用して、コンテナ化されたデモアプリケーション (マジックキューブゲーム) を ACK クラスターに迅速にデプロイ、公開、および監視する方法について説明します。

概要

2024-12-12_16-00-46 (1)このトピックでは、ack-cube という名前のアプリケーションをデプロイして、オンラインのマジックキューブゲームとして実行します。このアプリケーションは、コンテナイメージを使用して ACK Pro マネージドクラスターにデプロイされます。このトピックの手順を完了すると、ACK Pro マネージドクラスターにデプロイされたマジックキューブゲームアプリケーションが完成します。

  1. ACK をアクティブ化し、ACK に権限を付与し、ACK クラスターを作成します。

  2. コンソールまたは kubectl の 2 つの方法のいずれかを使用して、マジックキューブゲームアプリケーションをデプロイします。

  3. ack-cube サービスの外部 IP アドレスを使用して、インターネット経由でアプリケーションにアクセスします。

1. クラスターを迅速に作成する

重要

ACK を初めて使用する場合は、ACK をアクティブ化し、ACK に権限を付与する必要があります。次に、ACK クラスターを作成し、そのクラスターにマジックキューブゲームアプリケーションをデプロイします。ACK とその機能を正常に使用できるようにするには、まず ACK と必要なクラウドサービスをアクティブ化し、必要なデフォルトロールを ACK に割り当てる必要があります。公式ガイドに従ってクラスター設定を構成し、権限付与を完了することをお勧めします。詳細については、「ACK マネージドクラスターを迅速に作成する」をご参照ください。ACK クラスターおよび ACK クラスターで使用されるクラウドリソースの課金の詳細については、「課金」をご参照ください。

ACK マネージドクラスターを作成する際に、インテリジェントマネージドモードを有効にすることを選択できます。このモードを有効にすると、簡単な計画構成を行うだけで、ベストプラクティスに従った ACK クラスターをワンクリックで作成できます。このクラスターは、デフォルトのインテリジェントマネージドノードプールを作成し、ノードのライフサイクルは ACK によって管理および維持されます。詳細については、「ACK マネージドクラスターの作成 (インテリジェントマネージドモード)」をご参照ください。

説明

クラスターに詳細なカスタム構成を行う必要がある場合は、「ACK マネージドクラスターの作成」で完全なプロセスをご参照ください。

  1. Container Service 管理コンソールにログインします。[クラスター] ページで、[クラスターの作成] をクリックします。image

  2. 上部で [ACK マネージドクラスター] タブを選択し、クリックしてインテリジェントマネージドモードを有効にします。インターネット経由でクラスターにアクセスする必要がある場合は、個人用のテストクラスターで [EIP で API Server を公開] を選択してこの機能を有効にすると、後でクラスターへの接続と管理が容易になります。次に、[設定の確認] をクリックし、選択した構成を確認して、[クラスターの作成] をクリックします。

    image

2. アプリケーションのデプロイ

コンソールまたは kubectl を使用してアプリケーションパラメーターを手動で構成することで、マジックキューブゲームをデプロイできます。

  • コンソールデプロイメント: アプリケーションをデプロイして公開し、コンソール経由でアプリケーションにアクセスします。

  • kubectl デプロイメント: kubectl (CloudShell、kubectl クライアント、または Workbench) を使用してクラスターに接続し、アプリケーションをデプロイして公開し、アプリケーションにアクセスします。

重要

このトピックの例では、パブリックイメージを使用します。パブリックイメージをプルするには、クラスターまたはノードがインターネットにアクセスできる必要があります。

  • クラスターのインターネットアクセスを有効にする (推奨): クラスターが存在する VPC にインターネット NAT ゲートウェイを作成します。これにより、クラスター内のすべてのリソースにインターネットアクセスが提供されます。

  • ノードに固定パブリック IP アドレスを割り当てる: パブリック IP アドレスを持つノードは、パブリックイメージをプルできます。ただし、ワークロードをデプロイするすべてのノードにパブリック IP アドレスを割り当てる必要があります。

コンソールデプロイメント

2.1 アプリケーションのデプロイと公開

このステップでは、Deployment をデプロイし、アプリケーションをインターネットに公開する方法を示します。アプリケーションはマジックキューブゲームです。Deployment の作成に使用されるパラメーターの詳細については、「Deployment を使用してステートレスアプリケーションを作成する」をご参照ください。

  1. [クラスター] ページで、ack-demo クラスターの名前をクリックします。

  2. 詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。

  3. [デプロイメント] ページの右上隅にある [イメージから作成] をクリックします。

  4. [基本情報] ウィザードページで、アプリケーション名を ack-cube に設定します。

  5. [次へ] をクリックします。[コンテナ] ウィザードページで、コンテナパラメーターを設定します。

    image

    パラメーター

    説明

    イメージ名

    イメージ名を入力します。

    registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube:1.0 と入力します。

    リソース制限

    アプリケーションのリソース制限を指定します。これにより、アプリケーションが過剰なリソースを占有するのを防ぎます。

    この例では、1 vCore と 1,024 MiB のメモリが指定されています。エフェメラルストレージは空のままです。

    必須リソース

    アプリケーション用に予約されるリソースの量を指定します。これにより、リソース不足によるアプリケーションの利用不可を防ぎます。

    この例では、0.5 vCore と 512 MiB のメモリが指定されています。エフェメラルストレージは空のままです。

    ポート

    コンテナポートを構成します。

    • 名前: ack-cube。

    • コンテナポート: 80。

    • プロトコル: TCP。

  6. [次へ] をクリックします。[詳細設定] ウィザードページで、Service セクションの [作成] をクリックします。[サービスの作成] ダイアログボックスで、Service パラメーターを設定して ack-cube アプリケーションを公開します。Service の構成が完了したら、[OK] をクリックします。image

    パラメーター

    説明

    名前

    Service の名前を入力します。

    ack-cube-svc

    タイプ

    Service のタイプ。このパラメーターは、Service へのアクセス方法を指定します。[Server Load Balancer] > [Classic Load Balancer (CLB)] > [リソースの作成] を選択します。テスト環境では、CLB リソースにデフォルト設定を使用できます。

    この例では、デフォルト設定が使用されます。

    ポート

    [サービスポート][コンテナポート] を指定します。[コンテナポート] は、バックエンド Pod で公開されているものと同じである必要があります。

    • サービスポート: 80。

    • コンテナポート: 80。

    • プロトコル: TCP。

  7. ワークロードの構成が完了したら、[作成] をクリックします。アプリケーションが作成されると、完了ウィザードページにリダイレクトされます。アプリケーションに含まれるリソースオブジェクトを見つけ、[詳細の表示] をクリックしてアプリケーションの詳細を表示できます。succeed

2.2 アプリケーションへのアクセス

このステップでは、Service を使用してアプリケーションにアクセスする方法を示します。

ACK コンソールにログインします。[クラスター] ページで、クラスターの名前をクリックします。左側のナビゲーションウィンドウで、[ワークロード] > [デプロイメント] を選択します。[default] 名前空間で [ack-cube] という名前のアプリケーションを見つけます。[アクセス方法] タブをクリックし、新しく作成された Service (ack-cube-svc) を見つけて、[外部エンドポイント] 列のリンクをクリックしてマジックキューブゲームにアクセスします。image

Kubectl デプロイメント

2.1 クラスターへの接続

kubectl、Workbench、または Cloud Shell を使用してクラスターに接続できます。

CloudShell

Cloud Shell を起動すると、Cloud Shell は自動的に Linux VM を作成します。Linux VM は無料で利用できます。VM には、クラウド管理ツールとシステムツールがプリインストールされています。これらのツールを Cloud Shell が提供する Web IDE と組み合わせて使用して、クラウドリソースを管理できます。このステップでは、[Cloud Shell] を使用して ACK クラスターに接続する方法を示します。詳細については、「Workbench または Cloud Shell 上の kubectl を使用して ACK クラスターに接続する」をご参照ください。

ACK コンソールにログインします。コンソールの左側のナビゲーションウィンドウで、[クラスター] をクリックします。[クラスター情報] ページで、[基本情報] > [Cloud Shell を開く] を選択します。

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

Workbench

Alibaba Cloud が提供するリモート接続ツールである Workbench を使用すると、追加のソフトウェアをインストールすることなく、ブラウザから ACK クラスターに接続できます。詳細については、「Workbench を使用してインスタンスに接続する」をご参照ください。

ACK コンソールにログインします。コンソールの左側のナビゲーションウィンドウで、[クラスター] をクリックします。[クラスター情報] ページで、[基本情報] > [Workbench を使用してクラスターを管理] を選択します。

Workbench の起動には数秒かかります。Workbench が起動したら、ページの指示に従って [Workbench] インターフェイスで kubectl コマンドを実行して、クラスターとアプリケーションを管理できます。

Kubectl クライアント

インターネット経由でクラスターに接続する場合は、オンプレミスマシンに kubectl クライアントをインストールできます。このステップでは、kubectl クライアントを使用して ACK クラスターに接続する方法を示します。詳細については、「クラスターの kubeconfig ファイルを取得し、kubectl を使用してクラスターに接続する」をご参照ください。

  1. kubectl クライアントをインストールして設定します。詳細については、「kubectl のインストールと設定」をご参照ください。

  2. ACK コンソールにログインします。コンソールの左側のナビゲーションウィンドウで、[クラスター] をクリックします。[クラスター] ページで、ack-demo クラスターを見つけてその名前をクリックします。[クラスター情報] ページで、[接続情報] タブをクリックします。[パブリックアクセス] タブの [コピー] をクリックして、インターネット経由でクラスターにアクセスするために使用する資格情報をコピーします。オンプレミスマシンの $HOME/.kube ディレクトリにある config ファイルに資格情報を貼り付け、ファイルを保存して終了します。

    説明

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

  3. 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

2.2 アプリケーションのデプロイと公開

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

  1. 次の YAML テンプレートを使用して ack-cube.yaml ファイルを作成します。

    apiVersion: apps/v1 # 1.8.0 より前のバージョンの場合は apps/v1beta1 を使用します
    kind: Deployment
    metadata:
      name: ack-cube # アプリケーションの名前。
      labels:
        app: ack-cube
    spec:
      replicas: 2 # レプリカ Pod の数。
      selector:
        matchLabels:
          app: ack-cube  # アプリケーションを公開するために使用される Service のセレクターに同じ値を指定する必要があります。
      template:
        metadata:
          labels:
            app: ack-cube
        spec:
          containers:
          - name: ack-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. 次のコマンドを実行して、ack-cube デモアプリケーションをデプロイします。

    kubectl apply -f ack-cube.yaml
  3. 次のコマンドを実行して、アプリケーションが正常に実行されていることを確認します。

    kubectl get deployment ack-cube

    期待される出力:

    NAME       READY   UP-TO-DATE   AVAILABLE   AGE
    ack-cube   2/2     2            2           96s
  4. 次の YAML テンプレートを使用して ack-cube-svc.yaml ファイルを作成します。selectorack-cube.yaml ファイルの matchLabels の値に設定します。この例では、値は app: ack-cube です。これにより、アプリケーションが Service のバックエンドに追加されます。

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

    ACK は自動的にインターネット向け SLB インスタンスを作成し、そのインスタンスを Service に関連付けます。

    kubectl apply -f ack-cube-svc.yaml
  6. 次のコマンドを実行して、LoadBalancer Service が作成されたことを確認します。

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

    kubectl get svc ack-cube-svc

    期待される出力:

    NAME           TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)        AGE
    ack-cube-svc   LoadBalancer   172.16.72.161   47.94.xx.xx   80:31547/TCP   32s
  7. ブラウザのアドレスバーに EXTERNAL-IP アドレス (47.94.xx.xx) を入力して、マジックキューブゲームアプリケーションにアクセスします。

3. (オプション) リソースの解放

ACK Pro マネージドクラスターの課金項目には、クラスター管理とクラウドリソースが含まれます。ACK はクラスター管理料金を請求します。対応するクラウドサービスはクラウドリソース料金を請求します。

クラスターが不要になった場合は、削除できます。ACK コンソールにログインします。[クラスター] ページで、クラスターの [アクション] 列で [その他] > [削除] を選択します。[クラスターと関連リソースの削除] ページで、[削除したいリソースを選択] し、[削除] をクリックします。ACK クラスターの削除方法の詳細については、「クラスターの削除」をご参照ください。

重要

インテリジェントマネージドクラスターでは、デフォルトで削除保護が有効になっています。クラスターを削除する前に、クラスターの削除保護を無効にする必要があります。

image

リファレンス

  • ビジネスのリソースリクエストが予測不可能であったり、定期的に変更されたりする場合は、ビジネスの自動スケーリングを有効にすることをお勧めします。たとえば、Web アプリケーション、ゲームサービス、またはオンライン教育アプリケーションの自動スケーリングを有効にできます。自動スケーリング機能には、ワークロードのスケーリングとコンピューティングリソースのスケーリングが含まれます。詳細については、「自動スケーリングの概要」をご参照ください。

  • Service を介してアプリケーションを公開するだけでなく、Ingress を使用してレイヤー 7 でのアプリケーショントラフィックのルーティングを有効にすることもできます。詳細については、「Ingress 管理」をご参照ください。

  • コンテナのパフォーマンスを監視するだけでなく、クラスターインフラストラクチャ、アプリケーションのパフォーマンス、およびワークロードに対する操作を監視できます。Kubernetes の可観測性機能には、監視とロギングが含まれます。監視により、開発者はシステム操作を追跡できます。ロギングは、診断とトラブルシューティングを容易にします。詳細については、「可観測性システムの概要」をご参照ください。