ステップ 5: API ゲートウェイをインストールする
OpenLM Platform より先に API ゲートウェイ をインストールします。Web UI はデータ要求を https://<your address>/api/... に送信し、ゲートウェイがそれぞれの要求を受け取って対応するサービスに渡します。ゲートウェイは、独立した小さな Helm リリースです。
インストールワークシート から作成したファイル openlm-install.env から変数を読み込みます。
source ./openlm-install.env
5.1 OpenLM Helm リポジトリを追加する
リポジトリはステップ 4 で追加済みなので、ここでは更新します。OpenLM Platform のリリースごとに、最新の API ゲートウェイリリースをインストールします。チャートがリリース候補の間、Helm は --devel を付けた場合にのみ最新リリースを検出します。
helm repo add openlm https://openlm-helm.github.io/helmcharts && helm repo update openlm
ゲートウェイのチャートは openlm/openlm-apigateway です。Helm を実行するマシンがインターネットに到達できない場合は、到達できるマシンで helm pull openlm/openlm-apigateway --devel を実行してチャートをダウンロードします。このコマンドは unable to find exact version requested; falling back to closest available version と表示することがありますが、問題ありません。.tgz ファイルをコピーし、5.4 で openlm/openlm-apigateway の代わりに使用します。クラスターにはゲートウェイのイメージも必要です。API ゲートウェイのページの 設定リファレンス にある Private registry (air-gapped) を参照してください。
5.2 ゲートウェイのシークレットを作成する
ゲートウェイの API シークレットと Redis のパスワードを、2 つの Kubernetes シークレットに保存します。
kubectl -n "$NS" create secret generic openlm-gateway-secrets \
--from-literal=APISecret="$GATEWAY_SECRET" --dry-run=client -o yaml | kubectl -n "$NS" apply -f -
kubectl -n "$NS" create secret generic openlm-gateway-redis \
--from-literal=password="$REDIS_PASSWORD" --dry-run=client -o yaml | kubectl -n "$NS" apply -f -
5.3 ゲートウェイの values を書き込む
ゲートウェイの設定を gateway-values.yaml に書き込みます。
cat > gateway-values.yaml <<EOF
openShiftRoute: { enabled: $ON_OPENSHIFT, host: "$DOMAIN" } # OpenShift: the gateway creates the /api Route
storageClassName: $STORAGE_CLASS
tyk-oss:
global:
secrets:
useSecretName: openlm-gateway-secrets
redis:
addrs: ["$REDIS_HOST:$REDIS_PORT"]
useSSL: $REDIS_TLS
passSecret: { name: openlm-gateway-redis, keyName: password }
storage: { database: 0 }
tyk-gateway:
gateway:
hostName: $DOMAIN
ingress: { enabled: false } # /api is part of the platform's single Ingress
EOF
5.4 ゲートウェイをインストールする
リリース名は必ず openlm-gateway にしてください。OpenLM Platform は /api を、リリース名から名前が決まるサービスに送信します。ゲートウェイのすべての設定については、API ゲートウェイ を参照してください。
リリースをインストールします。
helm upgrade --install openlm-gateway openlm/openlm-apigateway --devel \
-n "$NS" -f gateway-values.yaml --wait --timeout 10m
ゲートウェイが実行されていることを確認します。
kubectl -n "$NS" get pods | grep gateway
kubectl -n "$NS" get service gateway-svc-openlm-gateway-tyk-gateway
# OpenShift only:
oc -n "$NS" get route openlm-gateway -o custom-columns=HOST:.spec.host,PATH:.spec.path
ゲートウェイの Pod が Running かつ 1/1 で、サービスが存在していれば成功です。OpenShift では、openlm-gateway ルートに DOMAIN とパス /api が表示されます。Pod が再起動を繰り返す場合は、kubectl -n $NS logs <gateway pod name> でログを確認します。エラーに redis が含まれる場合は、REDIS_HOST、REDIS_PASSWORD、REDIS_TLS を確認してください。
ドキュメントチームは、大規模言語モデルを使ってこのページを下書きすることがあります。公開前に、テクニカルライターがすべてのページをレビューし、製品と照らし合わせて検証します。最終的な判断は人間が行います。