Docker Compose および Docker Swarm によるデプロイは現在ベータ版です。サポートが必要な場合は Cartesia チームにお問い合わせください。
| Docker Compose | Docker Swarm | |
|---|---|---|
| ノード | シングルホスト | 複数ホスト(マネージャー + ワーカー) |
| GPU スケーリング | WORKER_REPLICAS 経由で複数ワーカー(GPU 1 つにつき 1 つ) | ラベル付き GPU ノード上にスケジュールされるワーカー |
| MIG サポート | --mig フラグによる自動検出 | ノードラベルと --mig フラグによりノードごとに設定 |
| ネットワーキング | Bridge(デフォルト) | Overlay(Swarm 管理) |
前提条件
- Docker がインストールされた 1 台以上のマシン(ユーザーが
dockerグループに所属している必要があります) - Compose のみ: Docker Compose V2(
docker compose) - Swarm のみ: ノードが Docker の Swarm ネットワーキング要件を満たすこと
- ドライバーがインストールされた NVIDIA GPU を 1 つ以上。対応する NVIDIA GPU 上では MIG(Multi-Instance GPU)パーティショニングがサポートされます
- GPU ノードで NVIDIA Docker ランタイムがデフォルトに設定されていること(下記参照)
- cartesia-kube のダウンロードで説明されている
cartesia-kubeリポジトリをダウンロード済みであること - オンボーディング時に提供される Cartesia API キーファイル(
container_key)と GCS サービスアカウント JSON ファイル
GPU ランタイムの確認
各 GPU ノードで NVIDIA ランタイムを確認します:nvidia がデフォルトランタイムでない場合は、NVIDIA Container Toolkit をインストールして次を実行します:
デプロイ前に、ホスト側で MIG を有効化してインスタンスを作成する必要があります。MIG インスタンスを再作成すると新しい UUID が生成されるため、その場合はスタックを再デプロイしてください。
ステップ 1 — シークレットの準備
以下のファイルを、ホスト(Compose)またはマネージャーノード(Swarm)に配置します:container_key— Cartesia API キーを含むファイルservice-account.json—roles/artifactregistry.reader(イメージ取得)およびroles/storage.objectViewer(GCS 同期)を持つ GCS サービスアカウント JSON
- Compose
- Swarm
ステップ 2 — クラスタの初期化(Swarm のみ)
Docker Compose を使用する場合はこのステップをスキップしてください。 マネージャーノードで:docker swarm join コマンドをコピーします。各追加ノードで次を実行します:
docker node ls でノード ID を一覧表示できます:
mig=true ラベルと、MIG インスタンスの UUID(そのノード上の nvidia-smi -L から取得)をカンマ区切りで指定したリストを付与します。MIG ノードには gpu=true を付けないでください。
ステップ 3 — 環境の設定
デプロイ前に 環境変数 を設定します。local/ 配下の .env ファイル(local/.env.example 参照)を使用するか、シェルでエクスポートします。
ステップ 4 — デプロイ
- Compose
- Swarm
リポジトリのルートから:
--mig を使用すると、スクリプトは nvidia-smi から MIG インスタンスの UUID を自動検出し、スライスごとのワーカー設定を生成し、標準ワーカーをゼロにスケールします。ステップ 5 — 検証
サービスが稼働しているか確認します:- Compose
- Swarm
トラブルシューティング
- Compose
- Swarm
no servers available for connection(NATS が未準備)で終了した場合は、スタック起動後に API を再起動します:設定
デプロイスクリプト実行前に以下の環境変数を設定します。IMAGE_REGISTRY、RELEASE_TAG、MODEL_NAME はオンボーディング時に Cartesia から提供されます。イメージを自身のレジストリにミラーリングしている場合は、IMAGE_REGISTRY にミラーの URL を指定してください。
必須
| 変数 | 説明 |
|---|---|
IMAGE_REGISTRY | コンテナイメージレジストリの URL(Cartesia レジストリまたはミラー)。 |
RELEASE_TAG | デプロイ対象リリースのイメージタグ(リリースごとに更新)。 |
MODEL_NAME | ワーカーイメージ用の TTS モデル識別子。 |
CONTAINER_KEY_FILE | Cartesia API キーを含むファイルへのパス。 |
GCS_SA_FILE | GCS サービスアカウント JSON ファイルへのパス。 |
オプション
| 変数 | デフォルト | 説明 |
|---|---|---|
WORKER_REPLICAS | 1 | TTS ワーカーコンテナの数。Compose では、ホスト上の GPU 数に設定します。Swarm では、GPU ノード数に合わせてスケールします。 |
WORKER_CAPACITY | 4 | ワーカーあたりの最大同時 TTS リクエスト数。GPU メモリ不足の場合は下げてください。 |
BUCKET_NAME | (空) | マイグレーション/LoRA 用の GCS バケット。空のままにすると同期が無効になります。 |
CLUSTER_NAME | cartesia-compose / cartesia-swarm | ログとメトリクス用の識別子。 |
GCS_SYNC_INTERVAL | 300 | GCS 同期間隔(秒)。 |
USE_MIG | 0 | 1 に設定すると MIG モードを有効化します。 |