はじめに
- セキュアな政府施設
- 厳格なネットワーク分離が求められる金融機関
- コンプライアンス要件のある医療機関
- 産業用制御システム (ICS) 環境
- 機密ネットワークを持つ研究施設
前提条件
バージョン要件
SSL/TLS 要件
ハードウェア要件
MySQL データベース
Redis
- Amazon ElastiCache
- Google Cloud Memorystore
- Azure Cache for Redis
- クラウドまたはオンプレミスのインフラストラクチャーでセルフホストする Redis
オブジェクトストレージ
- Amazon S3: スケーラビリティ、データ可用性、セキュリティ、パフォーマンスを備えたオブジェクトストレージサービスです。
- Google Cloud Storage: 非構造化データを大規模に保存するためのマネージドサービスです。
- Azure Blob Storage: 非構造化データを大規模に保存するためのクラウドベースのオブジェクトストレージです。
- CoreWeave AI Object Storage: AI ワークロード向けに最適化された S3互換オブジェクトストレージです。
- MinIO Enterprise (AIStor)、NetApp StorageGRID、その他のエンタープライズソリューションなどのエンタープライズ S3互換ストレージ。
MinIO Open Source は現在メンテナンスモードであり、アクティブな開発は行われておらず、事前コンパイル済みバイナリも提供されていません。本番環境へのデプロイでは、W&B は、マネージドオブジェクトストレージサービス、または MinIO Enterprise (AIStor) などのエンタープライズ S3互換ソリューションを推奨しています。
エアギャップ環境固有の要件
- 内部コンテナーRegistry: 必要なすべての W&B コンテナーイメージを含むプライベートなコンテナーRegistry (Harbor、JFrog Artifactory、Nexus など) へのアクセス
- 内部 Helm リポジトリ: W&B Helm チャートを含むプライベートな Helm チャートリポジトリへのアクセス
- イメージ転送機能: インターネットに接続されたシステムからエアギャップ環境のRegistryにコンテナーイメージを転送するための手段
- ライセンスファイル: 有効な W&B Enterprise ライセンス。ライセンスを取得するには (たとえば、インターネットに接続されたマシンから取得する場合) 、要件ページの License セクションを参照するか、W&B の担当アカウントチームにお問い合わせください。
エアギャップ 環境を準備する
Step 1: 内部コンテナーRegistryを設定する
W&B Operator の要件を把握し、コンテナーRegistry内のイメージを定期的に更新して維持する責任は、お客様にあります。必要なコンテナーイメージとそのバージョンの最新一覧については、Helm チャートを参照するか、W&B サポート または担当の W&B サポートエンジニアにお問い合わせください。
主要なW&Bコンポーネントのコンテナー
docker.io/wandb/controller: W&B Kubernetes Operator。docker.io/wandb/local: W&Bアプリケーションサーバー。docker.io/wandb/console: W&B管理コンソール。docker.io/wandb/megabinary: W&Bマイクロサービス (API、executor、glue、parquet)。
依存コンテナー
docker.io/bitnamilegacy/redis: テストおよび開発時のローカル Redis デプロイに必要です。本番 Redis の要件については、前提条件の Redis セクション を参照してください。docker.io/otel/opentelemetry-collector-contrib: メトリクスとログを収集するための OpenTelemetry エージェント。quay.io/prometheus/prometheus: メトリクス収集用の Prometheus。quay.io/prometheus-operator/prometheus-config-reloader: Prometheus の依存イメージ。
完全なイメージ一覧を取得する
-
インターネットに接続されたシステムで、W&B Helm charts リポジトリ から W&B Helm チャートをダウンロードします。
-
values.yamlファイルを確認し、すべてのコンテナーイメージとそのバージョンを特定します。または、次のコマンドを使用してリポジトリ名のみを抽出できます (バージョンタグは除く) 。リポジトリの一覧は、次のようになります。各イメージの具体的なバージョンタグを取得するには、上記の最初のコマンド (grep -E "repository:|tag:") を使用します。このコマンドでは、リポジトリ名と対応するバージョンタグの両方が表示されます。
イメージをエアギャップ環境の Registry に転送する
-
インターネットに接続されたシステムで、必要なイメージをすべて pull して保存します。
シェル変数を使用して、バージョンを一貫して管理します。以下の例にあるバージョン番号は、前の手順で Helm チャート を確認して特定した実際のバージョンに置き換えてください。ここに示しているバージョンはあくまで例であり、時間の経過とともに古くなります。
-
.tarファイルを、USB ドライブや安全なファイル転送など、承認済みの方法でエアギャップ環境に転送します。 -
エアギャップ環境で、イメージをロードし、内部 Registry に push します。
Step 2: 内部 Helm チャートリポジトリを設定する
-
インターネットに接続されたシステムで、チャートをダウンロードします。
-
.tgzのチャートファイルを エアギャップ 環境に転送し、リポジトリの手順に従って内部 Helm リポジトリにアップロードします。operatorチャートは W&B Kubernetes Operator (Controller Manager) をデプロイします。operator-wandbチャートは、Custom Resource (CR) で設定した値を使用して W&B Platform をデプロイします。
Step 3: Helm リポジトリへのアクセスを設定する
-
エアギャップ環境で、Helm が内部リポジトリを使用するように設定します。
-
チャートが利用可能であることを確認します。
エアギャップ環境に W&B をデプロイする
Step 4: Kubernetes Operator をインストールする
-
次の内容で
values.yamlファイルを作成します。repository と tag は、Step 1 で内部Registryに転送した実際のバージョンに置き換えてください。ここに示したバージョン (1.13.3) はあくまで例であり、時間の経過とともに古くなります。 -
operator と Custom Resource Definition (CRD) をインストールします。
-
operator が実行中であることを確認します。
Running状態の operator pod が表示されるはずです。
Step 5: MySQL データベースを設定する
[PASSWORD] は、強力なパスワードに置き換えてください。
ステップ 6: W&B Custom Resource を設定する
次の設定例には、時間の経過とともに古くなるイメージのバージョン tags が含まれています。すべての
tag: の値を、ステップ 1 で内部 registry に転送した実際のバージョンに置き換えてください。wandb.yaml という名前の file を作成します。
ホスト名、パスワード、タグなどのプレースホルダー値は、すべて実際の設定値に置き換えてください。前述の例では、最も一般的に使用されるコンポーネントを示しています。
settingsMigrationJobweave-tracefilestreamflat-runs-table
ステップ 7: W&B Platform をデプロイする
wandb.yaml の設定とイメージ参照を使用して、operator-wandb チャートで定義されている W&B Platform のコンポーネントをインストールします。
-
プラットフォームをデプロイするには、W&B Custom Resource を適用します。
-
デプロイの進行状況を監視します。
operator が必要なコンポーネントをすべて作成するため、デプロイの完了までに数分かかる場合があります。
OpenShift の設定
OpenShift のセキュリティコンテキスト制約
restricted SCC が割り当てられ、root としての実行が禁止されるほか、特定のユーザー ID が必要になります。
オプション1: restricted SCCを使用する (推奨)
restricted SCC で実行されるように構成します。
オプション 2: カスタム SCC を作成する (必要な場合)
restricted SCC では利用できないケーパビリティが必要な場合は、カスタム SCC を作成します。
-
SCC を適用します。
-
SCC を W&B のサービスアカウントに関連付けます。
OpenShift Routes
OpenShift のイメージプル設定
-
イメージプルシークレットを作成します。
-
Custom Resource でこのシークレットを参照します。
OpenShift の完全な例
この例内のすべての
tag: の値を、ステップ 1 で内部 Registry に転送した実際のバージョンに置き換えてください。ここに示しているバージョンはあくまで例であり、時間の経過とともに古くなります。セキュリティ要件に応じた包括的な OpenShift 設定例については、W&B Support または担当の W&B サポートエンジニアにお問い合わせください。
インストールを確認する
wandb verify コマンドは、コンポーネントと設定が想定どおりに動作することを確認するテストを実行します。
この手順では、最初の管理者ユーザーアカウントをブラウザで作成することを前提としています。
-
W&B CLI をインストールします:
-
W&B にログインします:
例えば:
-
インストールを確認する:
エアギャップ 環境での追加検証
-
イメージプル: すべての Pod が内部レジストリからイメージを正常にプルできていることを確認します。
すべてのイメージが内部レジストリを参照しており、すべての Pod が
Running状態である必要があります。 -
外部接続: W&B が外部への接続を試みていないことを確認します (エアギャップ モードでは試行しないはずです) 。
- ライセンス検証: W&B コンソールにアクセスし、ライセンスが有効になっていることを確認します。
トラブルシューティング
イメージプルエラー
- イメージが内部Registryに存在することを確認してください。
- イメージプルシークレットが正しく設定されていることを確認してください。
- Kubernetes ノードからRegistryへのネットワーク接続を確認してください。
- Registryの認証情報を確認してください。
OpenShift の SCC エラー
Helm チャートが見つからない
- Custom Resource 内のチャートリポジトリ URL を確認します。
- operator の pod から内部 Helm リポジトリにアクセスできることを確認します。
-
リポジトリ内にチャートが存在することを確認します:
よくある質問
別の ingress class を使用できますか?
複数の証明書を含む証明書バンドルはどうすればよいですか
customCACerts セクションで複数のエントリに分割します。
どうすれば自動更新を防止できますか
- operator のインストール時に
airgapped: trueを設定します (これにより自動更新のチェックが無効になります)。 - Custom Resource の
spec.chart.versionを手動で更新して、version の更新を管理します。 - 必要に応じて、W&B System Console から自動更新を無効にします。
W&B では、セルフマネージド環境のインスタンスをご利用のお客様に対し、サポートを維持し、最新の機能、パフォーマンス改善、修正を利用できるようにするため、少なくとも四半期に 1 回はデプロイを最新 version に更新することを強く推奨しています。W&B は、各メジャーリリースを初回リリース日から 12 か月間サポートします。詳しくは、リリースポリシーとプロセスを参照してください。
このデプロイはパブリックリポジトリに接続しなくても動作しますか?
airgapped: true を指定すると、Kubernetes Operator は内部リソースのみを使用し、パブリックリポジトリへの接続は試みません。
エアギャップ環境で W&B を更新するにはどうすればよいですか?
- インターネットに接続されたシステムで新しいコンテナーイメージを取得します。
- イメージをエアギャップ環境のRegistryに転送します。
- 新しい Helm チャートを内部リポジトリにアップロードします。
-
Custom Resource の
spec.chart.versionとイメージタグを更新します。 - 更新した Custom Resource を適用します。 operator は W&B コンポーネントのローリングアップデートを実行します。
次のステップ
- ユーザー認証を設定する: SSO またはその他の認証方式を設定します
- 監視を設定する: W&B インスタンスとインフラストラクチャーの監視を設定します
- 更新を計画する: Server upgrade process を確認し、更新の実施頻度を定めます
- バックアップを設定する: MySQL データベースのバックアップ手順を確立します
- プロセスを文書化する: ご利用の エアギャップ 環境向けの更新手順の runbook を作成します
サポートを受ける
- インフラストラクチャーに関するガイダンスは、リファレンスアーキテクチャを参照してください。
- 設定の詳細は、Operator ガイドを確認してください。
- W&B サポートまたは担当の W&B サポートエンジニアに連絡してください。
- OpenShift 固有の問題については、Red Hat OpenShift のドキュメントを参照してください。