Alibaba Cloud Container Compute Service (ACS) は、コンテナ化されたアプリケーションを実行するための、伸縮性のあるサーバーレスなコンピューティングリソースを Kubernetes ネイティブのインターフェイスを介して提供します。このチュートリアルでは、ACS コンソールとクラスター証明書を使用して ACS クラスターに生成AI チャットアプリケーションをデプロイし、そのステータスをモニタリングする手順を説明します。
背景情報
このチュートリアルでは、2 つのオープンソースプロジェクト、RWKV-Runner (推論用の RESTful API を備えた 1 億パラメータのモデル) と ChatGPT-Next-Web (チャット Web UI) を使用します。これらを組み合わせることで、フロントエンドとバックエンドが分離された AI チャットアプリケーションを形成し、コンテナイメージとして ACS クラスターにデプロイします。
Kubernetes の基礎については、Alibaba Cloud と CNCF の Cloud Native オープンクラスをご参照ください。
操作手順
初めて ACS を使用する場合、サービスを有効化し、権限を付与し、クラスターを作成して、アプリケーションをデプロイする必要があります。
ACS の有効化と権限の付与
ACS を初めて使用する場合は、ACS を有効化し、クラウドリソースにアクセスするための権限を ACS に付与する必要があります。
ステップ 2: ACS クラスタを作成する
このステップでは、ACS クラスタを作成するときにクラスタパラメータを構成する方法を示します。
ACS コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページの左上隅にある [クラスタの作成] をクリックします。
[クラスタの作成] ページで、次の表に示すパラメータを設定します。 表に記載されていないパラメータには、デフォルト設定を使用します。
パラメータ
説明
例
クラスタ名
クラスタの名前を入力します。
ACS-Demo
リージョン
クラスタをデプロイするリージョンを選択します。
中国 (北京)
VPC
クラスタのネットワーク。 ACS クラスタは VPC のみをサポートします。 [VPC の作成] または [既存の VPC を選択] を選択できます。
[VPC の作成]: このオプションを選択すると、ACK は VPC と VPC 内の NAT ゲートウェイを自動的に作成します。 また、ACK は NAT ゲートウェイで SNAT ルールを構成します。
[既存の VPC を選択]: このオプションを選択する場合は、VPC ドロップダウンリストから VPC を選択し、vSwitch セクションで vSwitch を選択する必要があります。 インターネット経由でコンテナイメージをダウンロードする場合は、NAT ゲートウェイを構成する必要があります。 コンテナイメージをクラスタがデプロイされているリージョンの Alibaba Cloud Container Registry にアップロードし、VPC エンドポイントを使用してイメージをプルすることをお勧めします。
詳細については、「VPC の作成と管理」をご参照ください。
[VPC の作成] を選択します。
API サーバーアクセス設定
クラスタの Kubernetes API サーバーをインターネットに公開するかどうかを指定します。 インターネット経由でクラスタを管理する場合は、Elastic IP Address (EIP) を使用して Kubernetes API サーバーを公開する必要があります。
[EIP で API サーバーを公開] を選択します。
サービスディスカバリ
[詳細オプションを表示] をクリックし、サービスディスカバリを有効にするかどうかを指定します。 サービスディスカバリを有効にするには、[coredns] を選択します。
[coredns] を選択します。
[注文の確認] をクリックし、利用規約を読んで選択してから、[クラスタの作成] をクリックします。
説明クラスタの作成には約 10 分かかります。 クラスタが作成されると、[クラスタ] ページでクラスタを表示できます。
ステップ3:コンソールを使用した RWKV-Runner のデプロイ
RWKV-Runner ステートレスアプリケーション (Deployment) を ACS クラスター内の汎用インスタンスにデプロイし、その RESTful API をクラスター内で公開します。詳細については、「ステートレスワークロード Deployment の作成」をご参照ください。
ACS コンソールにログインします。クラスター ページで、ターゲットクラスター (ACS-Demo) の名前をクリックします。
左側のナビゲーションペインで、 を選択します。
デプロイメント ページで、イメージによる作成 をクリックします。
基本情報 ステップで、名前 を [rwkv-runner] に設定し、汎用タイプ に インスタンスタイプ、[QoS Type] に QoS タイプ を選択してから、次 をクリックします。
コンテナー ステップで、コンテナを設定し、次 をクリックします。
パラメーター
説明
設定例
[イメージ名]
タグなしのイメージアドレスを入力するか、イメージの選択 をクリックしてイメージを選択します。
registry.cn-beijing.aliyuncs.com/acs-demo-ns/rwkv-runner
[イメージバージョン]
イメージバージョンの選択 をクリックしてイメージバージョンを選択します。
1.0.0
CPU
アプリケーションの CPU コア数。
1 Core
[メモリ]
アプリケーションのメモリ量。
2 GiB
[ポート]
コンテナポート。
[名前]:runner
[コンテナーポート]:8000
[プロトコル]:TCP
上級 ステップで、作成する の右側にある サービス をクリックします。
サービスの作成 ダイアログボックスで、次のパラメーターを設定し、作成する をクリックします。これにより、rwkv-runner の RESTful API がクラスター内で公開されます。
パラメーター
説明
設定例
[名前]
Service の名前。
rwkv-runner-svc
[タイプ]
Service のタイプ。Service へのアクセス方法を決定します。
ClusterIP
[ポートマッピング]
サービスポート と コンテナーポート を設定します。コンテナーポート は、バックエンド Pod によって公開されるポートと一致する必要があります。
[名前]:runner
[サービスポート]:80
[コンテナーポート]:8000
[プロトコル]:TCP
上級 ステップで、右下隅にある 作成する をクリックします。
作成後、完了 ステップにアプリケーションオブジェクトが表示されます。詳細の表示 をクリックしてアプリケーションを確認します。
ステップ4:証明書を使用した ChatGPT-Next-Web のデプロイ
クラスター証明書 (kubeconfig) を使用して、ChatGPT-Next-Web ステートレスアプリケーション (Deployment) をデプロイし、インターネットに公開します。詳細については、「ステートレスワークロード Deployment の作成」をご参照ください。
ACS コンソールにログインします。クラスター ページで、ターゲットクラスター (ACS-Demo) の名前をクリックします。
クラスター情報 ページで、接続情報 タブをクリックします。パブリックアクセス証明書を取得し、画面の指示に従って正しい場所に保存します。
chat-next-web.yaml という名前のファイルを作成し、次の内容を追加します。
次のコマンドを実行して、リソースを ACS クラスターに適用します。
kubectl apply -f chat-next-web.yaml
ステップ5:初期化 Job の作成
クラスター証明書を使用して、RWKV-Runner モデルを初期化する Kubernetes Job を作成します。この Job は、BestEffort QoS クラスのインスタンスで実行されます。詳細については、「Job ワークロードの作成」をご参照ください。
rwkv-init-job.yaml という名前のファイルを作成し、次の内容を追加します。
次のコマンドを実行して、初期化 Job をサブミットします。
kubectl apply -f rwkv-init-job.yaml初期化 Job が完了したことを確認します。
kubectl get podJob Pod の
STATUSにCompletedが表示されます。
ステップ6:アプリケーションのテスト
デプロイされたアプリケーションに Service を介してアクセスします。
ACS コンソールにログインします。クラスター ページで、ターゲットクラスター (ACS-Demo) の名前をクリックします。
左側のナビゲーションペインで、ネットワーク > サービス を選択します。
サービス ページで、新しく作成された Service (chat-frontend-svc) を見つけ、[External IP] 列の IP アドレスをクリックして、生成AI チャットアプリケーションにアクセスします。
リソースのクリーンアップ
ACS クラスターの料金には、次の 2 つの要素があります。
ワークロードが使用するコンピューティング能力で、ACS によって課金されます。
その他の Alibaba Cloud リソースで、それぞれのサービスによって課金されます。
このチュートリアルを完了した後:
クラスターが不要になった場合は、クラスターとそれに関連するリソースを削除してください。詳細については、「クラスターの削除」をご参照ください。
クラスターを引き続き使用するには、アカウントの残高を 100.00 人民元以上に維持してください。詳細については、「クラウドリソースの課金」をご参照ください。