Ingress とルーティング
OpenLM Platform へのトラフィックはすべて 1 つのホスト名 に到着し、パスによって転送先が決まります。このページでは、チャートがこれをどのように設定するかを確認し、クラスターに合ったオプションを選択します。
パス
各パスの転送先は次の表のとおりです。
| パス | 転送先 | 内容 |
|---|---|---|
/ | ホームページ UI | ユーザーが開く入口 |
/identity | identity サービス | サインイン、トークン、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: true | Web 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を設定します。
ドキュメントチームは、大規模言語モデルを使ってこのページを下書きすることがあります。公開前に、テクニカルライターがすべてのページをレビューし、製品と照らし合わせて検証します。最終的な判断は人間が行います。