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

Using Static PV When Deploying Kong API Gateway

概要

デフォルトでは、APIM UIを使用してKong Gatewayを作成する際、Persistent Volume Claim (PVC)とPersistent Volume (PV)はStorageClassを介して動的にプロビジョニングされます。しかし、特定の環境では、事前にプロビジョニングされた静的PVを使用したい場合があります。このガイドでは、静的PVを使用してKong Gatewayを構成およびデプロイする方法を説明します。

デプロイ前のセットアップ

事前にゲートウェイ名を定義する

デプロイする予定のゲートウェイ名を決定し、リストにします。

例:

  • test-gw
  • dev-gw

静的PVにバウンドしたPVCを手動で作成する

PVCの命名規則:

data-<GATEWAY_NAME>-postgresql-0

例:

data-test-gw-postgresql-0

PVCが適切な静的PVに事前にバウンドされていることを確認してください。

ゲートウェイをデプロイし、初期マイグレーションを処理する

APIM UIを介してゲートウェイを作成する

APIM UIでゲートウェイを作成する際に、以前に定義した名前(例: test-gw)を使用します。

マイグレーションポッドの起動失敗を処理する

  • init-migrationsステップで、DBがまだ準備できていない場合、ポッドが失敗する可能性があります。
  • これは通常、KongがDBが完全に初期化される前に起動するというタイミングの問題によるものです。

手動マイグレーションの実行

Kongポッドのログを確認する

ポッドがマイグレーションを待機していることを以下のログのいずれかで確認します:

kong migrations bootstrap

または

kong migrations up

Kongコンテナにスリープコマンドを追加する

Kongコンテナを実行し続けるために、カスタムコマンドでDeployment specを修正します:

command: ["/bin/bash", "-c", "sleep 300000"]

これにより、init-containerが終了した後、Kongコンテナがスリープ状態に入ることが保証されます。

手動マイグレーションを実行する(ポッド内)

以下のコマンドを実行して手動でマイグレーションを行います:

k exec -it -n <namespace> <kong-pod-name> -- kong migrations bootstrap
k exec -it -n <namespace> <kong-pod-name> -- kong migrations up

通常運用のための最終調整

スリープを解除し、Kongを再起動します:

  • Deployment specからカスタムコマンドを元に戻すか削除します。
  • Kongポッドを再起動して、通常通りに起動できるようにします。

追加の注意事項

  • この手順は、初期ゲートウェイセットアップ中に静的PVを使用する場合にのみ必要です。
  • 本番環境では、Kongが起動する前にDBが完全に準備できていることを確認してください。以下のような適切な設定を使用します:
    • initContainer
    • readinessProbe