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

Container Service for Kubernetes:ACK を使用したルービックキューブゲームアプリケーションの迅速なデプロイ

最終更新日:Sep 16, 2026

Alibaba Cloud Container Service for Kubernetes (ACK) は、クラウド上でコンテナ化されたアプリケーションを管理・実行するための高性能サービスです。このチュートリアルでは、オンラインのルービックキューブゲームである ACK-Cube をマネージド ACK Pro クラスターにデプロイし、インターネットに公開する方法について説明します。

このチュートリアルを完了すると、次のことが達成できます。

  • マネージド ACK Pro クラスターの作成

  • ACK-Cube アプリケーションのクラスターへのデプロイ

  • パブリック URL から実行中のゲームへのアクセス

2024-12-12_16-00-46 (1)

前提条件

開始する前に、以下を確認してください。

  • ACK をアクティブ化し、クラスターを作成するために必要な権限を持つ Alibaba Cloud アカウント

  • ACK のサービスアクティベーションと認可が完了していること。詳細については、「ACK マネージドクラスターを迅速に作成」をご参照ください。

  • ACK クラスターおよび関連リソースの 課金情報 を確認していること

ステップ 1:クラスターの作成

ACK のインテリジェントマネージドモードでは、クラスター作成が簡素化されます。いくつかの計画パラメーターを設定するだけで、ACK がベストプラクティスに従ったクラスターをワンクリックで作成します。クラスターには、ACK が自動的にライフサイクルを管理するインテリジェントマネージドノードプールが含まれます。詳細については、「ACK マネージドクラスターの作成 (インテリジェントマネージドモード)」をご参照ください。

詳細なクラスター設定をカスタマイズする場合は、「ACK マネージドクラスターの作成」をご参照ください。
  1. ACK コンソールACK コンソールACK コンソールACK コンソールにログインします。[クラスター] ページで、[Kubernetes クラスターの作成] をクリックします。

  2. 表示されたページで、[ACK マネージドクラスター] タブをクリックし、[インテリジェントマネージド] を有効にします。インターネット経由でクラスターにアクセスするには、[EIP を使用して API サーバーを公開] を選択します。[設定の確認] をクリックし、選択内容を確認して、[クラスターの作成] をクリックします。クラスターの作成には数分かかります。クラスターのステータスが 実行中 と表示されるまで待ちます。

    image

ステップ 2:アプリケーションのデプロイ

ACK-Cube アプリケーションはパブリックコンテナイメージを使用します。イメージをプルするには、クラスターがインターネットにアクセスできる必要があります。デプロイする前に、次のいずれかのオプションを選択してください。

次に、デプロイ方法を選択します。

  • コンソールデプロイ:ACK コンソール UI を使用してアプリケーションをデプロイし、公開します。

  • kubectl デプロイ:CloudShell、ワークベンチ、またはローカルの kubectl クライアントを使用してクラスターに接続し、YAML マニフェストを使用してデプロイします。

オプション A:コンソールデプロイ

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

このセクションでは、ACK-Cube ゲームの Deployment を作成し、Service を使用してインターネットに公開する方法を説明します。Deployment パラメーターの完全なリストについては、「Deployment を使用してステートレスアプリケーションを作成」をご参照ください。

  1. [クラスター] ページで、クラスター名 (例: ACK-Demo) をクリックします。

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

  3. 右上隅で、[イメージから作成] をクリックします。

  4. [基本情報] タブで、アプリケーション名を ack-cube に設定します。

  5. [次へ] をクリックし、[コンテナー] タブで次のパラメーターを設定します:

    パラメーター

    説明

    設定例

    [イメージ名]

    デプロイするコンテナイメージ。

    registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube:1.0

    [リソース上限]

    アプリケーションが消費できる CPU とメモリの最大値。

    CPU: 1 コア、メモリ: 1024 MiB。エフェメラルストレージは空白のままにします。

    [リソースリクエスト]

    アプリケーション用に予約される CPU とメモリ。

    CPU: 0.5 コア、メモリ: 512 MiB。エフェメラルストレージは空白のままにします。

    [ポート]

    コンテナポートの設定。

    名前: ack-cube、コンテナーポート: 80、プロトコル: TCP

  6. [次へ] をクリックします。[詳細設定] タブの [サービス] セクションで [作成] をクリックします。[サービスの作成] ダイアログボックスで、次のパラメーターを設定し、[OK] をクリックします。

    パラメーター

    説明

    設定例

    [名前]

    Service の名前。

    ack-cube-svc

    [タイプ]

    Service へのアクセス方法。

    [サーバーロードバランサー] > [クラシックロードバランサー (CLB)] > [リソースの作成] を選択します。このテスト環境では、CLB の設定はデフォルトのままにします。

    [ポート]

    Service ポートとコンテナポート。コンテナポートはバックエンドの Pod と一致する必要があります。

    サービスポート: 80, コンテナポート: 80, プロトコル: TCP

    [外部トラフィックポリシー] に [ローカル] を選択します。

  7. [作成] をクリックします。成功ページにアプリケーションのオブジェクトが一覧表示されます。[詳細を表示] をクリックして確認します。

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

ACK コンソールACK コンソールACK コンソールACK コンソールにログインします。[クラスター] ページで、クラスター名をクリックします。左側のナビゲーションペインで、[ワークロード] > [デプロイメント] を選択します。default 名前空間で ack-cube アプリケーションを見つけます。[アクセス方法] タブをクリックし、ack-cube-svc サービスを見つけ、[外部エンドポイント] 列のリンクをクリックしてルービックキューブゲームを開きます。

オプション B:kubectl デプロイ

クラスターへの接続

次のいずれかの方法を使用して、ACK クラスターに接続します。

[CloudShell]

CloudShell は、ブラウザベースの Linux 環境を提供し、事前にインストールされたツールを無料で利用できます。CloudShell が起動すると、Linux 仮想マシンがプロビジョニングされます。CloudShell Web IDE と合わせて使用して、クラウドリソースを管理できます。

ACK コンソールACK コンソールACK コンソールACK コンソールにログインします。 左側のナビゲーションペインで、対象のクラスターをクリックします。 [クラスター情報] ページで、[基本情報] > [Cloud Shell を開く] を選択します。 数秒後、CloudShell インターフェースが起動し、kubectl が使用できるようになります。 詳細については、「Workbench または Cloud Shell 上の kubectl を使用して ACK クラスターに接続する」をご参照ください。

ワークベンチ

ワークベンチは、ブラウザベースのリモート接続ツールで、追加のソフトウェアインストールは不要です。

ACK コンソールACK コンソールACK コンソールACK コンソールにログインします。 左側のナビゲーションペインで、対象のクラスターをクリックします。 [クラスター情報] ページで、[基本情報] > [Workbench を使用したクラスターの管理] を選択します。 数秒後、Workbench インターフェイスが起動します。 詳細については、「Workbench を使用してインスタンスに接続する」をご参照ください。

[kubectl クライアント]

ローカルの kubectl クライアントを使用して、インターネット経由で接続します。

  1. kubectl をインストールして設定 します。

  2. ACK コンソールACK コンソールACK コンソールACK コンソールにログインします。 クラスター名 (たとえば、ACK-Demo) をクリックします。 [クラスター情報] ページで、[接続情報] タブをクリックします。 [パブリックアクセス] タブから認証情報をコピーし、$HOME/.kube/config に貼り付けます。 .kube ディレクトリと config ファイルが存在しない場合は作成します。 詳細については、「クラスターの kubeconfig ファイルを取得し、kubectl を使用してクラスターに接続する」をご参照ください。

  3. 次のコマンドを実行して、接続を確認します。

    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

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

このセクションでは、kubectl を使用して ACK クラスターにステートレスワークロード (デプロイメント) をデプロイし、LoadBalancer タイプのサービスを使用して公開する方法について説明します。すべての例では、kubectl apply で適用される YAML マニフェストを使用します。デプロイメントは ACK-Cube のレプリカを 2 つ実行し、Server Load Balancer (SLB) インスタンスを自動的にプロビジョニングする LoadBalancer タイプのサービスによって公開されます。アプリケーションの公開に関する詳細については、「自動作成された SLB インスタンスを使用してアプリケーションを公開する」をご参照ください。

  1. 次の内容で 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 #  形式で、使用するイメージのアドレスに置き換えます。
            ports:
            - containerPort: 80 # 公開するコンテナポート
            resources:
              limits: # リソース上限
                cpu: '1'
                memory: 1Gi
              requests: # リソースリクエスト
                cpu: 500m
                memory: 512Mi
  2. アプリケーションをデプロイします。

    kubectl apply -f ack-cube.yaml
  3. Deployment が実行中であることを確認します。

    kubectl get deployment ack-cube

    想定される出力:

    NAME       READY   UP-TO-DATE   AVAILABLE   AGE
    ack-cube   2/2     2            2           96s
  4. 次の内容で ack-cube-svc.yaml という名前のファイルを作成します。selector の値は、Service をバックエンドアプリケーションに関連付けるために、ack-cube.yaml 内の matchLabels の値 (app: ack-cube) と一致させる必要があります。

    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 の matchLabels と一致させる必要があります
      type: LoadBalancer
  5. アプリケーションを公開するサービスを作成します。LoadBalancer サービスを作成すると、パブリック SLB インスタンスが自動的にプロビジョニングされます。

    kubectl apply -f ack-cube-svc.yaml
  6. Service が実行中であることを確認し、パブリック IP アドレスを取得します。SLB インスタンスがプロビジョニングされるまで 1 分ほどかかる場合があります。

    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 クラスターのコストには、ACK によって課金されるクラスター管理料金と、使用される他の Alibaba Cloud リソースの料金が含まれます。

クラスターを削除するには、ACK コンソールACK コンソールACK コンソールACK コンソールにログオンします。[クラスター] ページで、対象のクラスターを見つけ、[操作] 列の [その他] をクリックし、[削除] を選択します。[クラスターと関連リソースの削除] ページで、削除するリソースを選択し、[削除] をクリックします。詳細については、「クラスターの削除」をご参照ください。

重要

インテリジェントマネージドクラスターでは、デフォルトで削除保護が有効になっています。クラスターを削除する前に、この機能を無効にしてください。

次のステップ

  • オートスケーリング:ワークロードのリソース要件が予測不可能または変動する場合 (Web アプリケーション、ゲームサービス、オンライン教育プラットフォームなどで一般的)、ワークロードとクラスターリソースの両方にオートスケーリングを設定します。詳細については、「オートスケーリングの概要」をご参照ください。

  • レイヤー 7 ルーティング:複数の Service 間で HTTP/HTTPS ルーティングルールを管理するには、Service の代わりに Ingress を使用します。詳細については、「Ingress 管理」をご参照ください。

  • オブザーバビリティ:クラスターインフラストラクチャ、アプリケーションパフォーマンス、ビジネスメトリクスを監視して、システムの健全性を追跡し、問題を診断します。詳細については、「オブザーバビリティシステムの概要」をご参照ください。