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

プラットフォームのインストール

このページでは、OpenLM Platform の Helm チャート設定とデプロイ手順を説明します。ここで扱う手順は、手動で Kubernetes にデプロイする 3 つのパス(オンプレミスマシン、AWS、Azure)で共通です。

Platform as VM には適用されません

Platform as VM でデプロイする場合、このページは読み飛ばしてください。このパスでは同梱のインストーラーがゲートウェイとプラットフォームのチャートを自動でインストールするため、以下の Helm コマンドを重ねて実行すると、競合するサービスが二重に作成されます。代わりに 設定リファレンスデプロイ を参照してください。

開始前に、選択したデプロイパスの前提条件チェックリストを完了していることを確認してください。

API ゲートウェイのインストール

API ゲートウェイは、すべての外部トラフィックの単一入口です。

設定

ゲートウェイの values.yaml を編集します。

  • tyk-oss.tyk-gateway.gateway.hostName にドメイン名を設定します。例: openlm.yourcompany.com
  • ingress.hoststls.hosts にも同じドメインを設定します
  • global.redis.addrs に Redis のアドレスを設定します
注意

lbfqdnプラットフォーム の umbrella チャートのキーであり、ゲートウェイチャートには存在しません。ここで設定しても効果はありません。

インストール

helm install openlm-gateway openlm-gateway-<version>.tgz \
-f values.yaml \
-n openlm

確認

kubectl exec -it <any-pod> -n openlm -- /bin/sh
curl https://<your-domain>/api/homepage/.security

この段階で host not reachable が返るのは想定どおりです。これはゲートウェイのルーティング設定が有効であることを示します。別のエラーが出る場合は、ゲートウェイのログと Redis アドレスを確認してください。

プラットフォーム Helm チャートの設定

プラットフォームは、単一の umbrella Helm チャートでデプロイされます。デプロイパッケージに含まれる mono-values-placeholders.yaml を起点にしてください。

デプロイパッケージには、Helm チャート、values テンプレート、レポートスキーマの SQL スクリプト、Kafka トピック作成スクリプトが含まれます。対象バージョンのパッケージは OpenLM にお問い合わせのうえ入手してください。一般公開はされていません。

設定手順

1. データベースタイプ

db_type_placeholder を、運用データベースと identity データベースのタイプに置き換えます。

  • MariaDB
  • MySQL
  • SqlServer_SQLServerAuth
PostgreSQL はレポート専用です

PostgreSQL は運用データベースおよび identity データベースのタイプとしては使用できません。チャートにはこれらの接続用の PostgreSQL 分岐が存在しないため、ここに指定すると運用・identity の接続文字列が空のままレンダリングされ、プラットフォームは起動しません。PostgreSQL はレポート用データベースでのみサポートされます(レポート を参照)。

Base64 エンコードが必要なパスワード

エンコードの要否はフィールドごとに異なり、一律ではありません。次の値ではパスワードを Base64 エンコードします。

  • INFRASTRUCTURE__ServerConnectionStringTemplate
  • IDENTITY_DATABASE_CONNECTIONSTRING
  • dss: セクションの DbPassword
  • REPORTING_DATABASE_CONNECTIONSTRING

次の値では 平文 のパスワードを使用します。

  • SERVER_DATABASE_CONNECTIONSTRING
  • レポート系サービス個別のパスワード環境変数(Spark およびレポート用の環境変数)

2. ドメイン

lbfqdn-placeholder を完全修飾ドメイン名に置き換えます。

3. Kafka 接続

kafka-connection-placeholder を Kafka の bootstrap servers アドレスに置き換えます。

4. MongoDB 接続

mongo-connection-placeholder-no-end-slash を、末尾スラッシュなしの MongoDB 接続文字列に置き換えます。

5. Redis 接続

redis-connection-placeholder を Redis 接続文字列に置き換えます。

6. 運用データベース

運用データベース接続を設定します。

  • INFRASTRUCTURE__ServerConnectionStringTemplate を探し、接続文字列テンプレートを設定します。{0} は各サービスがデータベース名を差し込むプレースホルダーです。そのまま残してください
  • INFRASTRUCTURE__ServerDbPrefix を探し、データベース名プレフィックスを設定します(_none なし)
  • SERVER_DATABASE_CONNECTIONSTRING を探し、接続文字列を設定します

ServerConnectionStringTemplate – MariaDB / MySQL の例(パスワードは Base64):

Server=mariadb.openlm-infrastructure.svc.cluster.local;Port=3306;User ID=root;Password=<base64-password>;Database={0};Connection Lifetime=0;Minimum Pool Size=0;Maximum Pool Size=100;Default Command Timeout=30

ServerConnectionStringTemplate – SQL Server の例(パスワードは Base64):

Data Source=<host>;Initial Catalog={0};User ID=<user>;Password=<base64-password>;Min Pool Size=0;Max Pool Size=100;Encrypt=False;TrustServerCertificate=False
SERVER_DATABASE_CONNECTIONSTRING は 2 点が異なります

上記のテンプレートとは異なり、この値は具体的なデータベースを 1 つ指定し、パスワードは平文で記述します。指定すべきデータベース名は、運用データベース名に _none が付いたものです。INFRASTRUCTURE__ServerDbPrefixopenlm_operational_db であれば、この接続文字列には openlm_operational_db_none が必要です。

MariaDB / MySQL:

Server=<host>;Database=openlm_operational_db_none;Port=3306; User ID=<user>;Password=<plain-text-password>; default command timeout=480;Pipelining=false; SSL Mode=None

SQL Server:

Data Source=<host>,1433;Initial Catalog=openlm_operational_db_none;User ID=<user>;Password=<plain-text-password>; Min Pool Size=0; Max Pool Size=100;Encrypt=False;TrustServerCertificate=False

外部 SQL Server では、DBA がこのサフィックス付きの名前でデータベースを事前作成する必要があります。

7. Identity データベース

  • identity-db-connection-placeholder を identity データベースの接続文字列に置き換えます
  • identity: セクション内 vars_listDbType が使用するデータベースエンジンと一致していることを確認します

8. DSS データベース

dss: セクションの vars_list を見つけて接続を設定します。db_type の値は次のとおりです。

エンジン
2SQL Server
3MySQL
4MariaDB

9. レポート

Helm values ファイルには、2 種類のレポート用データベース向けのセクションが事前設定されています。利用するエンジンに対応するセクションをコメント解除してください。

  • MSSQL REPORTING: SQL Server 用
  • POSTGRESQL REPORTING: PostgreSQL 用

その後、次のレポート用プレースホルダーを置き換えます。

  • reporting-sql-db-host-placeholder
  • reporting-sql-db-port-placeholder
  • reporting-sql-db-name-placeholder
  • reporting-sql-db-username-placeholder
  • reporting-sql-db-password-placeholder

Spark の永続ボリューム向け storageClassName を設定し、REPORTING_DATABASE_CONNECTIONSTRING を構成します。

プラットフォームのインストール

helm upgrade --install monohelm openlm_mono-<version>.tgz \
-f mono-values.yaml \
-n openlm

デプロイパッケージ内のチャートアーカイブは openlm_mono-<version>.tgz という名前です。サービス数が 100 を超えるため、インストールには Helm の既定タイムアウト(5 分)では不足する場合があります。タイムアウトする場合は --timeout 20m を追加してください。

ノードアフィニティ

ノードアフィニティのルールは、環境セットアップ時に適用したノードラベルと一致するよう Helm values 内で設定する必要があります。これにより、各ワークロードタイプ(main、reporting、infrastructure)が設計どおりのノードグループにスケジュールされます。

デプロイの確認

すべての Pod が起動するまで監視します。

kubectl get pods -n openlm -w

Pod がクラッシュしている場合は、次を確認します。

# Check pod logs
kubectl logs <pod-name> -n openlm

# Check pod events (image pull failures, resource limits, scheduling issues)
kubectl describe pod <pod-name> -n openlm

設定したドメインで OpenLM のホームページが表示されるはずです。

インストール後

Apache Superset(任意)

レポート用ダッシュボードとして Apache Superset をデプロイする場合は、次の手順を実行します。

  1. 専用 namespace と TLS secret を作成します。

    kubectl create namespace apache-superset
    kubectl create secret tls openlm-lb-cert \
    --key your-domain.key \
    --cert your-domain.crt \
    -n apache-superset
  2. values.yaml を設定します。

    • lbfqdn に別サブドメインを設定します。例: superset-openlm.yourcompany.com
    • Redis と PostgreSQL の接続を supersetNode > connections に設定します。PostgreSQL を外部公開していない場合は、postgresql.enabled: true で同梱インスタンスを有効化します
  3. インストールします。

    helm install superset superset.tgz \
    -f values.yaml \
    -n apache-superset

SMTP 設定

メールアラートと通知を有効にするため、notification service で SMTP サーバーを設定します。

継続的な監視

定期的にすべての Pod が正常かを確認します。

kubectl get pods -n openlm

再起動ループに入っている Pod があれば、ログとイベントを確認して調査してください。