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

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)を使用してください。

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

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

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

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

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

kong migrations bootstrap

または

kong migrations up

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

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

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

この手順により、Kongコンテナはinit-containerが終了した後にスリープ状態に入ります。

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

マイグレーションを手動で実行するには、以下のコマンドを実行します:

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

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

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

  • デプロイメント仕様からカスタムコマンドを元に戻すか削除します。
  • Kongポッドを再起動して、通常通りに起動できるようにします。

追加の注意事項

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