本トピックでは、ACK マネージドクラスターで RDS Custom コンテナシリーズのデータベースインスタンス用の Pod を作成および管理する方法について説明します。これにより、クラウドネイティブな Pod のスケジューリングとコンテナ化されたアプリケーションのデプロイが可能になります。
基本概念
仮想マシンシリーズ
仮想マシンシリーズは、仮想化されたデータベースコンピューティングインスタンスを提供します。各インスタンスは、データベースエンジン、オペレーティングシステム、および必要なランタイム環境を含む仮想マシンです。このシリーズは、標準の ECS O&M プラクティスに従っており、データベースの設定、モニタリング、およびトラブルシューティングのためにホストへの SSH アクセスをサポートしています。
仮想マシンシリーズは、Standard Edition、Yitian Edition、および AI ノードとして利用できます。
コンテナシリーズ
RDS Custom コンテナシリーズは、仮想ノード (vnode) アーキテクチャを使用して、ACK マネージドクラスターまたはセルフマネージド Kubernetes クラスターで AliSQL カーネルを持つデータベース Pod を実行します。これにより、Kubernetes エコシステム内で MySQL、PostgreSQL、および SQL Server データベースのコンテナ化されたデプロイが可能になります。
コンテナシリーズは、AI ノードおよび Lingjun ノードとして利用できます。
AI ノード
AI ノードは、RDS データと AI モデルを統合するデータベースプラットフォームです。データを処理してモデルの精度と推論効率を向上させ、推論コストを削減します。ベクトルデータベースを使用する組み込みの検索拡張生成 (RAG) サービスや、インテリジェントな O&M アシスタントである RDS Copilot を備えており、AI イノベーションを加速させます。
手順1:ACK Pro クラスターの作成
ACK マネージドクラスター Pro 版を作成します。 次に、コンソールのクラスターの [基本情報] ページで、クラスター ID、VPC 情報、および vSwitch 情報を取得します。 詳細については、「ACK マネージドクラスターの作成」をご参照ください。
ACK マネージドクラスターが既にある場合は、この手順をスキップしてください。
RDS Custom コンテナシリーズノードは、ネットワークプラグインとして Terway を使用する ACK マネージドクラスターのみをサポートします。 ACK マネージドクラスター Pro 版を作成する場合、[ネットワークプラグイン] を [Terway] に設定する必要があります。
手順2:RDS Custom コンテナノードの作成
ApsaraDB RDS コンソールにログインします。左側のナビゲーションペインで、[RDS Custom] > [カスタムインスタンスリスト] をクリックします。
[インスタンスの作成] をクリックし、購入ページでパラメーターを設定します。その他のパラメーターの説明については、「RDS Custom インスタンスを作成する」をご参照ください。
パラメーター
説明
[データベースタイプ]
[RDS Custom] を選択します。
[リージョン]
ACK マネージドクラスターがデプロイされているリージョンを選択します。
[製品シリーズ]
[コンテナシリーズ] を選択します。
[ACK クラスター]
手順1で作成した ACK マネージドクラスターを選択します。
[接続]
RDS Custom コンテナシリーズノードを初めて作成する際には、KubeConfig を提供する必要があります。
[接続情報を取得] をクリックすると、ACK の [クラスター情報] ページが開きます。
[接続] タブを選択し、[永続 KubeConfig の取得] をクリックします。
「イントラネットアクセス」セクションから、
client-certificate-data全体をコピーします。RDS Custom 購入ページの [接続] セクションの最初の入力ボックスに、
client-certificate-dataの情報を貼り付けます。「イントラネットアクセス」セクションから、
client-key-data全体をコピーします。RDS Custom 購入ページの [接続] セクションにある 2 番目の入力ボックスに、
client-key-data情報を貼り付けます。
[VPC]
ACK マネージドクラスターの VPC を選択します。
[vSwitch]
コンテナシリーズノードと同じアベイラビリティーゾーンにある vSwitch を選択します。
[インスタンスタイプ]
[AI ノード] か [Lingjun ノード] のいずれかを選択します。
[注文を確定] をクリックし、支払いを完了します。
コンソールに戻ります。左側のナビゲーションペインで、[RDS Custom] > [カスタムインスタンスリスト] をクリックします。上部のナビゲーションバーで、インスタンスを作成したリージョンを選択します。作成時間に基づいて、新しく作成したインスタンスを見つけます。
説明インスタンスの作成には 1~10 分かかります。ページを更新してステータスを確認してください。
RDS Custom コンテナシリーズインスタンスは、課金方法の変更、更新、および解約をサポートしています。ただし、インスタンスタイプのスケーリングやストレージのスケーリングはサポートしていません。
手順3:ACK クラスターでのコンテナノードの使用
Container Service for Kubernetes (ACK) コンソールにログインします。左側のナビゲーションペインで、[クラスター]を選択します。
[クラスター] ページで、目的のクラスターの名前をクリックします。 左側のナビゲーションペインで、 を選択してノード情報を表示します。
左側のナビゲーションペインで、[基本情報] を選択します。
[基本情報] ページで、右上隅の [Workbench でクラスターを管理] をクリックします。
ターミナルで kubectl コマンドを実行し、クラスターの接続を確認します。
たとえば、次のコマンドはノード情報を照会します。
kubectl get node vn-frzqv6g28****実行結果:
NAME STATUS ROLES AGE VERSION vn-frzqv6g28**** Active <none> 25m V1.24.2-sharer.1.1-082dafbcabcd88
手順4:コンテナノードへの Pod のスケジューリング
Container Service for Kubernetes (ACK) コンソールにログインします。左側のナビゲーションペインで、[クラスター] を選択します。
[クラスター] ページで、目的のクラスターの名前をクリックします。 左側のナビゲーションペインで、 を選択します。
[ポッド] ページで、[YAML から作成] をクリックします。テンプレートを設定し、[作成] をクリックします。
spec.containers.imageパラメーターにイメージアドレスを設定します。各リージョンにおける RDS Custom コンテナシリーズのイメージアドレスのリストです。説明大規模言語モデルを扱うユーザー向けに、RDS Custom は SgLang と vLLM の両方の環境に対応したコンテナイメージを提供しています。
Pod を RDS Custom コンテナノードにスケジュールするには、特定の
nodeSelectorとtolerationsを設定する必要があります。詳細については、「nodeSelector と tolerations を設定する」をご参照ください。説明システムコンポーネントの Pod が RDS Custom コンテナノードのリソースを消費するのを防ぐため、各ノードには以下のデフォルトの Taint とラベルが設定されています。
ラベル:
alibabacloud.com/virtual-node: trueテイント:
effect: NoSchedule key: virtual-kubelet.io/provider value: aliclouddb
nodeSelectorをalibabacloud.com/virtual-node: "true"に設定します。または、対象のノードの vnodeId を見つけ、rm.alibaba-inc.com/vnodeId: "vn-e45b77245bb09b5e"を設定します。tolerationsを次のように設定します:tolerations: - effect: NoSchedule key: virtual-kubelet.io/provider value: aliclouddb
以下は、AI ノード用の Pod 設定の YAML 例です。
説明この例では、リソース制限とノードアフィニティを使用してコンテナ化されたサービスをデプロイするために、
test-podという名前の Pod を設定します。# Pod 設定 apiVersion: v1 kind: Pod metadata: name: test-pod # 競合を避けるために一意の名前を使用します。 spec: containers: - command: - sh - -c - echo hello world; sleep infinity; image: aliclouddb-pub-registry-vpc.cn-beijing.cr.aliyuncs.com/aliclouddb-public/des-ai-nv:25.05-sglang0.4.6.post4-pytorch2.6-cu124-20250513-serverless imagePullPolicy: IfNotPresent name: sglang ports: - containerPort: 8000 # コンテナがリッスンするポート。 name: restful protocol: TCP resources: requests: cpu: "20" memory: "100Gi" limits: cpu: "20" memory: "100Gi" restartPolicy: Always nodeSelector: alibabacloud.com/virtual-node: "true" # このラベルを持つ仮想ノードにのみ Pod をスケジュールします。 tolerations: - effect: NoSchedule key: virtual-kubelet.io/provider value: aliclouddb