W&B Kubernetes Operator
W&B Kubernetes Operator を使用すると、Kubernetes 上での W&B Server のデプロイ、管理、トラブルシューティング、およびスケーリングを簡素化できます。この Operator は、W&B インスタンスのためのスマートなアシスタントと考えることができます。 W&B Server のアーキテクチャーと設計は、AI 開発者ツールの機能を拡張し、高パフォーマンス、優れたスケーラビリティ、および容易な管理のための適切なプリミティブを提供するために継続的に進化しています。この進化は、コンピューティングサービス、関連するストレージ、およびそれらの間の接続性に適用されます。デプロイメントタイプ全体で継続的なアップデートと改善を促進するために、W&B は Kubernetes Operator を使用しています。W&B は、AWS、Google Cloud、Azure のパブリッククラウド上で Dedicated Cloud インスタンスをデプロイおよび管理するために Operator を使用しています。
アーキテクチャー移行の理由
歴史的に、W&B アプリケーションは、Kubernetes クラスター内の単一のデプロイメントおよび Pod、または単一の Docker コンテナとしてデプロイされてきました。W&B はこれまでも、そしてこれからも、データベースとオブジェクトストアの外出しを推奨しています。データベースとオブジェクトストアを外出しにすることで、アプリケーションの状態を切り離すことができます。 アプリケーションが成長するにつれ、モノリシックなコンテナから分散システム(マイクロサービス)へと進化させる必要性が明らかになりました。この変更により、バックエンドロジックの処理が容易になり、組み込みの Kubernetes インフラストラクチャー機能をシームレスに導入できるようになります。また、分散システムは、W&B が依存する追加機能に不可欠な新しいサービスのデプロイもサポートします。 2024 年以前は、Kubernetes 関連の変更には、terraform-kubernetes-wandb Terraform モジュールを手動で更新する必要がありました。Terraform モジュールを更新することで、クラウドプロバイダー間の互換性を確保し、必要な Terraform 変数を設定し、バックエンドまたは Kubernetes レベルの変更ごとに Terraform apply を実行していました。 このプロセスは、W&B サポートが各顧客の Terraform モジュールのアップグレードを支援する必要があったため、スケーラブルではありませんでした。 その解決策として、中央の deploy.wandb.ai サーバーに接続し、特定のリリースチャンネルに対する最新の仕様変更をリクエストして適用する Operator を実装しました。ライセンスが有効である限り、アップデートを受け取ることができます。デプロイメカニズムと、W&B Kubernetes スタックのすべての設定テンプレートを処理する手段の両方に Helm が使用されています(Helm-ception)。仕組み
Operator は Helm またはソースからインストールできます。詳細な手順については charts/operator を参照してください。 インストールプロセスでは、controller-manager という名前のデプロイメントが作成され、weightsandbiases.apps.wandb.com(shortName: wandb)という名前の カスタムリソース 定義が使用されます。これは単一の spec を受け取り、クラスターに適用します。
controller-manager は、カスタムリソースの spec、リリースチャンネル、およびユーザー定義の設定に基づいて charts/operator-wandb をインストールします。この設定仕様の階層構造により、ユーザー側での最大限の設定柔軟性が得られ、W&B は新しいイメージ、設定、機能、および Helm のアップデートを自動的にリリースできるようになります。
設定オプションについては、設定仕様の階層構造 および W&B Operator の設定リファレンス を参照してください。
デプロイメントは複数の Pod で構成され、サービスごとに 1 つずつ配置されます。各 Pod の名前には wandb- というプレフィックスが付きます。
設定仕様の階層構造
設定仕様は、上位の仕様が下位の仕様を上書きする階層モデルに従います。仕組みは以下の通りです:- Release Channel Values(リリースチャンネル値): この基本レベルの設定は、W&B がデプロイメント用に設定したリリースチャンネルに基づいてデフォルト値と設定を決定します。
- User Input Values(ユーザー入力値): ユーザーはシステムコンソールを通じて、リリースチャンネル仕様によって提供されたデフォルト設定を上書きできます。
- Custom Resource Values(カスタムリソース値): ユーザーから提供される最高レベルの仕様です。ここで指定された値は、ユーザー入力およびリリースチャンネルの両方の仕様を上書きします。設定オプションの詳細は、設定リファレンス を参照してください。
始める前に
- インフラストラクチャーの完全な要件については リファレンスアーキテクチャー を参照してください。これには以下が含まれます:
- ソフトウェアバージョンの要件(Kubernetes, MySQL, Redis, Helm)
- ハードウェアの要件(CPU アーキテクチャー、サイジングの推奨事項)
- ネットワーク、SSL/TLS、および DNS の要件
- 有効な W&B Server ライセンスを取得 してください。
- W&B Self-Managed のセットアップと設定の詳細な手順については、以下のセクションおよび ベアメタルインストールガイド を参照してください。インストール方法によっては、追加のソフトウェアのインストールや要件が必要になる場合があります。
MySQL データベース
W&B requires an external MySQL database. For production, W&B strongly recommends using managed database services: Managed database services provide automated backups, monitoring, high availability, patching, and reduce operational overhead. See the reference architecture for complete MySQL requirements, including sizing recommendations and configuration parameters. For database creation SQL, see the bare-metal guide. For questions about your deployment’s database configuration, contact support or your AISE.Redis
W&B depends on a single-node Redis 7.x deployment used by W&B’s components for job queuing and data caching. For convenience during testing and development of proofs of concept, W&B Self-Managed includes a local Redis deployment that is not appropriate for production deployments. For production deployments, W&B can connect to a Redis instance in the following environments:- AWS Elasticache
- Google Cloud Memory Store
- Azure Cache for Redis
- Redis deployment hosted in your cloud or on-premise infrastructure
オブジェクトストレージ
W&B requires object storage with pre-signed URL and CORS support. For production deployments, W&B recommends using managed object storage services:- Amazon S3: Object storage service offering industry-leading scalability, data availability, security, and performance.
- Google Cloud Storage: Managed service for storing unstructured data at scale.
- Azure Blob Storage: Cloud-based object storage solution for storing massive amounts of unstructured data.
- CoreWeave AI Object Storage: High-performance, S3-compatible object storage service optimized for AI workloads.
MinIO Open Source is in maintenance mode with no active development or pre-compiled binaries. For production deployments, W&B recommends using managed object storage services or enterprise-grade S3-compatible solutions.
ネットワーク要件
For a networked deployment, egress to these endpoints is required during both installation and runtime:- https://deploy.wandb.ai
- https://charts.wandb.ai
- https://quay.io (used for Prometheus images)
Additional container registries may be required depending on your deployment configuration:
https://gcr.iois needed when deploying Bufstream and etcd for Weave online evaluations.
SSL/TLS 要件
W&B requires a valid signed SSL/TLS certificate for secure communication between clients and the server. SSL/TLS termination must occur on the ingress/load balancer. The W&B Server application does not terminate SSL or TLS connections. Important: W&B does not support self-signed certificates and custom CAs. Using self-signed certificates will cause challenges for users and is not supported. If possible, using a service like Let’s Encrypt is a great way to provide trusted certificates to your load balancer. Services like Caddy and Cloudflare manage SSL for you. If your security policies require SSL communication within your trusted networks, consider using a tool like Istio and side car containers.エアギャップ環境でのインストール
エアギャップ環境で W&B Kubernetes Operator をインストールする方法については、Deploy W&B in airgapped environment with Kubernetes チュートリアルを参照してください。OpenShift Kubernetes クラスター
W&B は、クラウド、オンプレミス、およびエアギャップ環境における OpenShift Kubernetes clusters へのデプロイをサポートしています。W&B は公式の W&B Helm チャートを使用したインストールを推奨しています。
非特権ユーザーとしてコンテナを実行する
デフォルトでは、コンテナは 999 の$UID を使用します。オーケストレーターが非 root ユーザーでのコンテナ実行を必要とする場合は、100000 以上の $UID と 0 の $GID を指定してください。
ファイルシステムのパーミッションが正しく機能するために、W&B は root グループ(
$GID=0)として起動する必要があります。app や console などの他のコンポーネントに対してカスタムセキュリティコンテキストを設定してください。詳細については、カスタムセキュリティコンテキスト を参照してください。
W&B Server アプリケーションのデプロイ
クラウド、オンプレミス、エアギャップ環境を含むすべての W&B Self-Managed デプロイメントにおいて、Helm を使用した W&B Kubernetes Operator が推奨されるインストール方法です。
- Helm CLI: Helm コマンドを使用した直接デプロイ
- Helm Terraform Module: Infrastructure-as-code によるデプロイ
- W&B Cloud Terraform Modules: AWS、Google Cloud、Azure 向けの完全なインフラストラクチャー + アプリケーションのデプロイ
- データセンター/ベアメタル環境については Deploy W&B Platform On-premises
- 切断された環境については Kubernetes operator for air-gapped instances
Helm CLI による W&B のデプロイ
W&B は、W&B Kubernetes Operator を Kubernetes クラスターにデプロイするための Helm チャートを提供しています。このアプローチにより、Helm CLI や ArgoCD のような継続的デリバリーツールを使用して W&B Server をデプロイできます。前述の要件が整っていることを確認してください。 Helm CLI で W&B Kubernetes Operator をインストールするには、以下の手順に従います:-
W&B Helm リポジトリを追加します。W&B Helm チャートは W&B Helm リポジトリで利用可能です:
-
Kubernetes クラスターに Operator をインストールします:
-
W&B Server のインストールをトリガーするように W&B Operator カスタムリソースを設定します。W&B デプロイ設定を含む
operator.yamlという名前のファイルを作成します。利用可能なすべてのオプションについては、設定リファレンス を参照してください。 最小限の設定例は以下の通りです: -
W&B Server アプリケーションをインストール、設定、および管理できるように、カスタム設定で Operator を起動します:
デプロイが完了するまで待ちます。これには数分かかります。
- Web UI を使用してインストールを確認するには、最初の管理者ユーザーアカウントを作成し、インストールの確認 に記載されている確認手順に従ってください。
Helm Terraform モジュールによる W&B のデプロイ
この方法では、一貫性と再現性のために Terraform の Infrastructure-as-code アプローチを活用し、特定の要件に合わせてカスタマイズされたデプロイが可能です。公式の W&B Helm ベースの Terraform モジュールは こちら にあります。 以下のコードは出発点として使用でき、プロダクショングレードのデプロイに必要なすべての設定オプションが含まれています。W&B Cloud Terraform モジュールによる W&B のデプロイ
W&B は、AWS、Google Cloud、Azure 向けの Terraform モジュールセットを提供しています。これらのモジュールは、Kubernetes クラスター、ロードバランサー、MySQL データベースなどのインフラ全体と、W&B Server アプリケーションをデプロイします。W&B Kubernetes Operator は、以下のバージョンの公式 W&B クラウド固有 Terraform モジュールにあらかじめ組み込まれています:| Terraform レジストリ | ソースコード | バージョン |
|---|---|---|
| AWS | https://github.com/wandb/terraform-aws-wandb | v4.0.0+ |
| Azure | https://github.com/wandb/terraform-azurerm-wandb | v2.0.0+ |
| Google Cloud | https://github.com/wandb/terraform-google-wandb | v2.0.0+ |
インストールの確認
To verify the installation, W&B recommends using the W&B CLI. The verify command executes several tests that verify all components and configurations.This step assumes that the first admin user account is created with the browser.
- Install the W&B CLI:
- Log in to W&B:
- Verify the installation:
W&B 管理コンソールへのアクセス
W&B Kubernetes Operator には管理コンソールが付属しています。場所は${HOST_URI}/console(例: https://wandb.company-name.com/console)です。
管理コンソールにログインする方法は 2 つあります:
- オプション 1 (推奨)
- オプション 2
-
ブラウザで W&B アプリケーションを開き、ログインします。
${HOST_URI}/(例:https://wandb.company-name.com/)を使用して W&B アプリケーションにログインしてください。 -
コンソールにアクセスします。右上のアイコンをクリックし、System console をクリックします。管理者権限を持つユーザーのみが System console エントリを表示できます。

W&B Kubernetes Operator のアップデート
このセクションでは、W&B Kubernetes Operator をアップデートする方法について説明します。- W&B Kubernetes Operator をアップデートしても、W&B Server アプリケーションはアップデートされません。
- W&B Kubernetes Operator を使用していない Helm チャートを使用している場合は、W&B Operator をアップデートする前に こちら の手順に従って移行してください。
-
まず、
helm repo updateでリポジトリを更新します: -
次に、
helm upgradeで Helm チャートをアップデートします:
W&B Server アプリケーションのアップデート
W&B Kubernetes Operator を使用している場合、W&B Server アプリケーションを手動でアップデートする必要はありません。 Operator は、W&B の新しいソフトウェアバージョンがリリースされると、W&B Server アプリケーションを自動的にアップデートします。Self-Managed インスタンスから W&B Operator への移行
このセクションでは、ご自身で管理している W&B Server のインストールから、W&B Operator を使用した管理への移行方法について説明します。移行プロセスは W&B Server のインストール方法によって異なります:W&B Operator は W&B Server のデフォルトで推奨されるインストール方法です。ご不明な点がございましたら、カスタマーサポート または W&B 担当チームまでお問い合わせください。
- 公式の W&B Cloud Terraform モジュールを使用していた場合は、該当するドキュメントに移動し、そこにある手順に従ってください:
- W&B Non-Operator Helm チャート を使用していた場合は、こちら に進んでください。
- Terraform を使用した W&B Non-Operator Helm チャート を使用していた場合は、こちら に進んでください。
- マニフェストを使用して Kubernetes リソースを作成した場合は、こちら に進んでください。
Operator ベースの AWS Terraform モジュールへの移行
移行プロセスの詳細については、こちら を参照してください。Operator ベースの Google Cloud Terraform モジュールへの移行
ご不明な点やサポートが必要な場合は、カスタマーサポート または W&B 担当チームまでお問い合わせください。Operator ベースの Azure Terraform モジュールへの移行
ご不明な点やサポートが必要な場合は、カスタマーサポート または W&B 担当チームまでお問い合わせください。Operator ベースの Helm チャートへの移行
以下の手順に従って、Operator ベースの Helm チャートに移行します:-
現在の W&B 設定を取得します。Operator ベースではないバージョンの Helm チャートでデプロイされていた場合は、次のように値をエクスポートします:
Kubernetes マニフェストでデプロイされていた場合は、次のようにエクスポートします:これで、次のステップに必要なすべての設定値が揃いました。
-
operator.yamlというファイルを作成します。設定リファレンス に記載されている形式に従い、ステップ 1 の値を使用してください。 -
現在のデプロイメントを 0 Pod にスケールします。このステップで現在のデプロイメントを停止します。
-
Helm チャートリポジトリを更新します:
-
新しい Helm チャートをインストールします:
-
新しい Helm チャートを設定し、W&B アプリケーションのデプロイをトリガーします。新しい設定を適用します。
デプロイが完了するまで数分かかります。
- インストールを確認します。インストールの確認 の手順に従い、すべてが動作していることを確認してください。
- 旧いインストールを削除します。旧い Helm チャートをアンインストールするか、マニフェストで作成されたリソースを削除します。
Operator ベースの Terraform Helm チャートへの移行
以下の手順に従って、Operator ベースの Helm チャートに移行します:- Terraform 設定の準備。Terraform 設定内の旧いデプロイメントの Terraform コードを、こちら で説明されているものに置き換えます。以前と同じ変数を設定してください。.tfvars ファイルがある場合は変更しないでください。
- Terraform 実行。terraform init, plan, apply を実行します。
- インストールを確認します。インストールの確認 の手順に従い、すべてが動作していることを確認してください。
- 旧いインストールを削除します。旧い Helm チャートをアンインストールするか、マニフェストで作成されたリソースを削除します。
W&B Server の設定リファレンス
このセクションでは、W&B Server アプリケーションの設定オプションについて説明します。アプリケーションは、WeightsAndBiases という名前のカスタムリソース定義として設定を受け取ります。一部の設定オプションは以下の設定で公開されており、一部は環境変数として設定する必要があります。 ドキュメントには 基本 と 詳細 の 2 つの環境変数リストがあります。必要な設定オプションが Helm チャートで公開されていない場合にのみ、環境変数を使用してください。基本的な例
この例では、W&B に最低限必要な値のセットを定義します。より現実的なプロダクション環境の例については、完全な例 を参照してください。 この YAML ファイルは、バージョン、環境変数、データベースなどの外部リソース、およびその他の必要な設定を含む、W&B デプロイメントの望ましい状態を定義します。完全な例
この例では、Google Cloud Storage を使用して Google Cloud Anthos に W&B をデプロイする設定を示します:Host
オブジェクトストレージ (bucket)
AWSkmsKey は null にする必要があります。
シークレットから accessKey と secretKey を参照する場合:
MySQL
password を参照する場合:
ライセンス
license を参照する場合:
Ingress
Ingress クラスを特定するには、こちらの FAQ エントリ を参照してください。 TLS なしカスタム Kubernetes ServiceAccounts
W&B Pod を実行するためにカスタム Kubernetes サービスアカウントを指定します。 以下のスニペットは、デプロイの一部として指定された名前でサービスアカウントを作成します:create: false を設定します:
外部 Redis
password を参照する場合:
LDAP
global.extraEnv で環境変数を設定して LDAP を構成します:
OIDC SSO
authMethod はオプションです。
SMTP
環境変数
カスタム認証局 (CA)
customCACerts はリスト形式で、複数の証明書を指定できます。customCACerts で指定された認証局は、W&B Server アプリケーションにのみ適用されます。
ConfigMap を使用する場合、各キーは
.crt で終わる必要があります(例: my-cert.crt や ca-cert1.crt)。この命名規則は、update-ca-certificates が各証明書を解析してシステムの CA ストアに追加するために必要です。カスタムセキュリティコンテキスト
各 W&B コンポーネントは、以下の形式のカスタムセキュリティコンテキスト設定をサポートしています:runAsGroup: に有効な値は 0 のみです。それ以外の値はエラーとなります。app セクションを追加します:
console、weave、weave-trace、および parquet にも適用されます。
W&B Operator の設定リファレンス
このセクションでは、W&B Kubernetes Operator (wandb-controller-manager) の設定オプションについて説明します。Operator は YAML ファイル形式で設定を受け取ります。
デフォルトでは、W&B Kubernetes Operator は設定ファイルを必要としません。必要に応じて設定ファイルを作成してください。例えば、カスタム認証局の指定やエアギャップ環境でのデプロイなどが必要な場合です。
スペックのカスタマイズに関する全リストは Helm リポジトリ で確認できます。
カスタム CA
カスタム認証局 (customCACerts) はリスト形式で、複数の証明書を指定できます。これらが追加された場合、W&B Kubernetes Operator (wandb-controller-manager) にのみ適用されます。
ConfigMap 内の各キーは
.crt で終わる必要があります(例: my-cert.crt や ca-cert1.crt)。この命名規則は、update-ca-certificates が各証明書を解析してシステムの CA ストアに追加するために必要です。FAQ
各 Pod の目的/役割は何ですか?
wandb-app: W&B のコア。GraphQL API とフロントエンドアプリケーションを含みます。プラットフォーム機能の大部分を担います。wandb-console: 管理コンソール。/consoleからアクセスします。wandb-otel: OpenTelemetry エージェント。Kubernetes レイヤーのリソースからメトリクスとログを収集し、管理コンソールに表示します。wandb-prometheus: Prometheus サーバー。さまざまなコンポーネントからメトリクスを取得し、管理コンソールに表示します。wandb-parquet:wandb-appPod とは別のバックエンドマイクロサービス。データベースのデータを Parquet 形式でオブジェクトストレージにエクスポートします。wandb-weave: もう 1 つのバックエンドマイクロサービス。UI でのクエリテーブルの読み込みや、さまざまなコアアプリ機能をサポートします。wandb-weave-trace: LLM ベースのアプリケーションを追跡、実験、評価、デプロイ、および改善するためのフレームワーク。wandb-appPod を通じてアクセスされます。
W&B Operator コンソールのパスワードを取得する方法
W&B Kubernetes Operator 管理コンソールへのアクセス を参照してください。Ingress が機能しない場合に W&B Operator コンソールにアクセスする方法
Kubernetes クラスターに到達可能なホストで以下のコマンドを実行します:https://localhost:8082/console にアクセスします。
パスワードの取得方法については、W&B Kubernetes Operator 管理コンソールへのアクセス(オプション 2)を参照してください。
