メインコンテンツまでスキップ

環境セットアップ

OpenLM Platform 用にマシンを準備するには、マシンをプロビジョニングし、Kubernetes をインストールし、ノードにラベルを付けて、インフラサービスをデプロイします。

インフラチームがすでに Kubernetes クラスタとインフラサービスを準備済みの場合は、前提条件 に進んで準備完了を確認し、その後 プラットフォームのインストール に進んでください。

マシン準備​

要件 に従ってマシンを用意します。次のノードロールを想定してください。

ロール用途推奨仕様
Master nodeクラスタ control plane と Ingress 入口安定性のため Kubernetes システムワークロードのみを実行
Infrastructure nodeデータベース、Kafka、Redis一部 DB イメージのため x86 アーキテクチャ必須
Main workload nodes (3)OpenLM Platform のマイクロサービスARM または x86
Reporting nodes (3)Spark ワークロードと Apache SupersetARM または x86
注意

同じクラスタ内で ARM と x86 を混在させることは可能です。Infrastructure ノードには x86 を使用し、すべてのデータベースコンテナイメージが動作するようにしてください。

ネットワーク設定​

各マシンには次のものが必要です。

  • クラスタ内通信用のプライベート IP アドレス(プライベートネットワークに制限はありません)
  • 任意で、管理用のパブリック IP アドレス(SSH ポート 22 のみに制限します)
  • Ingress トラフィック用に、Master node で開放する HTTP ポート 80 と 443
  • クラスタ管理のためのネットワーク経由の Kubernetes API アクセス

Kubernetes のインストール​

Cloud Native Computing Foundation (CNCF) 準拠のディストリビューションであれば、いずれも利用できます。以下の例では、このパスが推奨する Red Hat Enterprise Linux (RHEL) 系 OS にネイティブでインストールできる K3s を使用します。他のディストリビューション(kubeadm、RKE2、MicroK8s)でも、control plane をインストールしてから残りのノードを参加させるという全体の流れは同じです。

注意

このセクションのコマンドは、要件 ページで求めている AlmaLinux 9 / RHEL 9 / Rocky Linux 9 に合わせた RHEL 系のツールを使用しています。Debian 系ディストリビューションおよび apt / snap は、このプラットフォームのサポート対象外です。

Control plane をインストールする​

Master node 上で、次のコマンドを実行します。

curl -sfL https://get.k3s.io | sh -s - server \
--node-ip=<private-ip> \
--advertise-address=<private-ip>

<private-ip> を、ノードのプライベート IP アドレスに置き換えます。

参加トークンを取得します。他のすべてのノードで必要になります。

sudo cat /var/lib/rancher/k3s/server/node-token

残りのノードを参加させる​

Infrastructure、main workload、reporting の各ノードで実行します。

curl -sfL https://get.k3s.io | K3S_URL=https://<primary-private-ip>:6443 \
K3S_TOKEN=<token> sh -s - agent --node-ip=<private-ip>

<primary-private-ip> を Master node のプライベート IP アドレスに、<token> を参加トークンに、<private-ip> を参加させるノードのプライベート IP アドレスに置き換えます。

クラスタを確認する​

Master node 上で、次のコマンドを実行します。

sudo k3s kubectl get nodes

すべてのノードが Ready と表示されます。ワークステーションから通常の kubectl を使う場合は、Master node から /etc/rancher/k3s/k3s.yaml をコピーし、ファイル内の 127.0.0.1 を到達可能な IP アドレスに置き換えてください。

ノードにラベルを付ける​

Affinity ルールに基づいてワークロードが正しいマシンへ配置されるよう、ノードへラベルを付与します。OpenLM Platform チャートは、メインワークロードのノードに openlm.com/role=main、レポート用ノードに openlm.com/role=spark を想定しています。インフラストラクチャ用のラベルは、インフラストラクチャチャートの node selector で使用します。

kubectl label node <infra-node> openlm.com/role=infrastructure-workload
kubectl label node <worker-node-1> openlm.com/role=main
kubectl label node <worker-node-2> openlm.com/role=main
kubectl label node <worker-node-3> openlm.com/role=main
kubectl label node <report-node-1> openlm.com/role=spark
kubectl label node <report-node-2> openlm.com/role=spark
kubectl label node <report-node-3> openlm.com/role=spark

ラベルを確認します。

kubectl get nodes --show-labels

インフラサービスのインストール​

すべてのノード接続後、専用 namespace にインフラサービスをデプロイします。

kubectl create namespace openlm-infrastructure

サービスのデプロイ​

インフラサービス(MongoDB、MariaDB/PostgreSQL、Kafka、Redis)は、デプロイパッケージに含まれる Helm チャートでデプロイします。

各サービスについて、次の手順を実行します。

  1. values.yaml に storage class 名とストレージサイズを設定します。

  2. インフラ Pod を Infrastructure ノードに配置する場合は、node selector を追加します。

  3. Helm でサービスをインストールします。

    helm install <release-name> <chart>.tgz -f values.yaml -n openlm-infrastructure

インフラサービスの確認​

すべてのインフラ Pod が起動していることを確認します。

kubectl get pods -n openlm-infrastructure

次へ進む前に、各サービス(MongoDB、SQL database、Kafka、Redis)への接続性を確認してください。

次の手順​

クラスタが稼働し、インフラサービスが正常になったら、次の手順を実行します。

  1. 前提条件 チェックリストを完了します。
  2. プラットフォームのインストール に進みます。

ドキュメントチームは、大規模言語モデルを使ってこのページを下書きすることがあります。公開前に、テクニカルライターがすべてのページをレビューし、製品と照らし合わせて検証します。最終的な判断は人間が行います。