Alibaba Cloud Container Compute Service (ACS) は、Kubernetes ネイティブインターフェイスを通じて、コンテナ化されたアプリケーションを実行するための伸縮自在なサーバーレスコンピューティングリソースを提供します。このチュートリアルでは、ACS コンソールとクラスター証明書を使用して ACS クラスターに生成 AI チャットアプリケーションをデプロイし、そのステータスを監視する手順を説明します。
背景情報
-
このチュートリアルでは、RWKV-Runner (推論用の RESTful API を備えた1億パラメーターモデル) とChatGPT-Next-Web (チャット Web UI) という2つのオープンソースプロジェクトを使用します。これらを組み合わせることで、フロントエンドとバックエンドが分離された AI チャットアプリケーションを構成し、コンテナイメージとして ACS クラスターにデプロイします。
-
CNCF × Alibaba Cloud-Native Technology Open Course で Kubernetes の基礎を学習します。
手順
初めて 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 のデプロイ
ACS クラスター内の汎用インスタンスに RWKV-Runner ステートレスアプリケーション (Deployment) をデプロイし、その RESTful API をクラスター内で公開します。「ステートレスワークロード Deployment の作成」をご参照ください。
-
ACS コンソールにログインします。クラスター ページで、対象のクラスター (ACS-Demo) の名前をクリックします。
-
左側メニューで、 を選択します。
-
デプロイメント ページで、イメージによる作成 をクリックします。
-
基本情報 手順では、名前 を [rwkv-runner]、インスタンスタイプ を 汎用タイプ、QoS タイプ を [default] に設定して、次 をクリックします。
-
コンテナー 手順では、コンテナを設定して 次 をクリックします。
パラメーター
説明
設定例
[イメージ名]
タグを含まないイメージアドレスを入力するか、イメージの選択 をクリックしてイメージを選択します。
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) の名前をクリックします。
-
左側メニューで、Network > Services を選択します。
-
サービス ページで、新しく作成された Service (chat-frontend-svc) を見つけ、[External IP] 列の IP アドレスをクリックして、生成 AI チャットアプリケーションにアクセスします。
リソースのクリーンアップ
ACS クラスターの料金は、2つの要素で構成されます:
-
ワークロードが使用するコンピューティングリソース。ACS によって課金されます。
-
その他の Alibaba Cloud リソース。各サービスによって課金されます。
このチュートリアル完了後:
-
クラスターが不要になった場合は、クラスターと関連リソースを削除してください。「クラスターの削除」をご参照ください。
-
クラスターを引き続き使用する場合は、少なくとも100.00 CNY のアカウント残高を維持してください。「クラウドリソースの課金」をご参照ください。