---
title: "ステップ 5: API ゲートウェイをインストールする"
description: Web UI からの /api 呼び出しを OpenLM Platform のサービスにルーティングする API ゲートウェイのリリース openlm-gateway をインストールします。
product: OpenLM Platform
---

OpenLM Platform より先に **API ゲートウェイ** をインストールします。Web UI はデータ要求を `https://<your address>/api/...` に送信し、ゲートウェイがそれぞれの要求を受け取って対応するサービスに渡します。ゲートウェイは、独立した小さな Helm リリースです。

[インストールワークシート](https://www.openlm.com/documentation/ja/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/before-you-start/worksheet) から作成したファイル `openlm-install.env` から変数を読み込みます。

```bash
source ./openlm-install.env
```

## 5.1 OpenLM Helm リポジトリを追加する

リポジトリはステップ 4 で追加済みなので、ここでは更新します。OpenLM Platform のリリースごとに、最新の API ゲートウェイリリースをインストールします。チャートがリリース候補の間、Helm は `--devel` を付けた場合にのみ最新リリースを検出します。

```bash
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](#54-ゲートウェイをインストールする) で `openlm/openlm-apigateway` の代わりに使用します。クラスターにはゲートウェイのイメージも必要です。API ゲートウェイのページの [設定リファレンス](https://www.openlm.com/documentation/ja/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/reference/api-gateway#設定リファレンス) にある **Private registry (air-gapped)** を参照してください。

## 5.2 ゲートウェイのシークレットを作成する

ゲートウェイの API シークレットと Redis のパスワードを、2 つの Kubernetes シークレットに保存します。

```bash
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` に書き込みます。

```bash
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 ゲートウェイ](https://www.openlm.com/documentation/ja/cloud/deployment-operations/on-premise/deployment-guide/kubernetes/reference/api-gateway) を参照してください。

リリースをインストールします。

```bash
helm upgrade --install openlm-gateway openlm/openlm-apigateway --devel \
  -n "$NS" -f gateway-values.yaml --wait --timeout 10m
```

:::tip[確認]
ゲートウェイが実行されていることを確認します。

```bash
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` を確認してください。
:::
