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

Ingress とルーティング

OpenLM Platform へのトラフィックはすべて 1 つのホスト名 に到着し、パスによって転送先が決まります。このページでは、チャートがこれをどのように設定するかを確認し、クラスターに合ったオプションを選択します。

パス​

各パスの転送先は次の表のとおりです。

パス転送先内容
/ホームページ UIユーザーが開く入口
/identityidentity サービスサインイン、トークン、OpenID Connect ディスカバリー
/api/...API ゲートウェイ → 各サービスUI とエージェントからのすべてのデータ要求
/<page>(例: /licenses、/usage、/alerts)それぞれ 1 つの Web UI約 40 個の画面

チャートがルーティングを作成する 3 つの方法​

チャートは、次の 3 つのいずれかの方法でルーティングを作成します。

オプション設定作成されるもの使用する環境
単一の Ingress(推奨)global.masterIngress.enabled: trueすべてのパスと、ゲートウェイへの /api を含む 1 つ の Ingress オブジェクトEKS、AKS、K3s、Ingress コントローラーのある任意のクラスター
OpenShift のルートglobal.useOpenShift: trueWeb UI ごとに 1 つの Route、エッジ TLS、HTTP から HTTPS へのリダイレクト、セキュリティヘッダーOpenShift
コンポーネントごとの Ingressどちらもオフnginx の書き換えルールを持つ、コンポーネントごとに 1 つの Ingress推奨しません。古いインストールのために残されています。

単一の Ingress​

チャートは、openlm-master-ingress という名前の Ingress を 1 つ作成します。

  • host: は global.masterIngress.hostname、つまり DOMAIN です。
  • ingressClassName: は global.masterIngress.ingressClassName で、この Ingress を処理するコントローラーを選択します。
  • TLS には、シークレット global.masterIngress.secretName(既定値は openlm-lb-cert)を使用します。
  • /api は API ゲートウェイのサービス gateway-svc-openlm-gateway-tyk-gateway に送られます。この名前はゲートウェイのリリース名 openlm-gateway から決まるため、ステップ 5 ではこの名前が必須です。

各 Web UI には、それぞれのパスプレフィックス(/licenses/、/usage/、...)でアクセスします。このモードでは、チャートは各 UI に、そのプレフィックスの下で正しく提供するための小さな Web サーバー構成も付与します。コントローラーに書き換えルールは不要で、values ファイルは古い書き換えルール(global.ingressAnnotations)を削除します。

OpenShift のルート​

global.useOpenShift: true を設定すると、チャートは Ingress の代わりにルートを作成します。

  • TLS は OpenShift ルーターで終端されます(エッジ)。プレーン HTTP は HTTPS にリダイレクトされます。
  • ルーターは HSTS とセキュリティヘッダー(X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Content-Security-Policy: frame-ancestors 'self')を追加します。HSTS は global.routeSecurity(hstsMaxAge、hstsIncludeSubDomains)で調整でき、global.routeSecurity.enabled: false で無効にできます。
  • 要求が UI に届く前に、パスプレフィックスが削除されます(rewrite-target: /)。

このリリースでは、いくつかのルートを手動で作成します。コマンドについては、Red Hat OpenShift を参照してください。

Ingress コントローラーを選択する​

次の表で、使用するIngress コントローラーを確認します。

コントローラー動作注記
Traefik(K3s の既定)はいINGRESS_CLASS=traefik を設定します。
ingress-nginxはいINGRESS_CLASS=nginx を設定します。
AWS Load Balancer Controller (ALB)OpenLM Platform のIngress としては不可ALB はクラスター内の TLS シークレットを提供しません。AWS Certificate Manager の証明書と独自のアノテーションが必要です。代わりに、Network Load Balancer の背後に Traefik または ingress-nginx を配置します。EKS を参照してください。
Azure Application Gateway (AGIC)OpenLM Platform のIngress としては不可理由は ALB と同じです。Azure ロードバランサーの背後で ingress-nginx または Traefik を使用します。AKS を参照してください。
OpenShift ルーターはい(ルートを使用)global.useOpenShift: true を使用します。

どのコントローラーでも、次の要件を満たす必要があります。

  • Kubernetes シークレット openlm-lb-cert の TLS 証明書を提供し、ユーザーに表示される証明書が自分で管理する証明書になるようにします。
  • Host ヘッダーを変更せずに転送します。
  • ライセンスファイルやログなど、ユーザーがアップロードするサイズの要求本文を受け付けます。ingress-nginx の既定の上限は 1 MB なので、コントローラーで proxy-body-size を引き上げます。

HTTP を HTTPS にリダイレクトする​

ユーザーは常に https:// のみを使用する必要があります。プレーン HTTP はコントローラーでリダイレクトします。

  • Traefik: web エントリポイントを websecure にリダイレクトします。K3s では、HelmChartConfig で設定します。K3s を参照してください。
  • ingress-nginx: Ingress に TLS がある場合は自動的にリダイレクトします。
  • OpenShift のルート: チャートが insecureEdgeTerminationPolicy: Redirect を設定します。

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