Docker Compose および Docker Swarm によるデプロイは現在ベータ版です。サポートが必要な場合は Cartesia チームにお問い合わせください。
前提条件
- 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 を指定してください。