KongGateway

Kong Gateway を Kubernetes にデプロイする方法とベストプラクティス

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

前提条件と環境設定

このセクションでは、Kong Gateway(KIC)を Helm 経由でインストールし、GitOps ツールが正しく動作するために最低限必要な環境をまとめます。対象は Kubernetes 1.24 以上 のクラスターで、ローカルに kubectlhelm v3 がインストールされていることが前提です。

  • kubectl
    bash
    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
    sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
  • helm
    bash
    curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
  • Kubernetes バージョン確認
    bash
    kubectl version --short # Client & Server が 1.24 以上かチェック
  • Git リポジトリの用意
    GitHub(例: github.com/your-org/kong-gateway-demo)に charts/manifests/ ディレクトリを作成し、Argo CD または Flux が参照できるようにしておきます。

参考:Qiita の「OSS版Kong Gatewayをk8sで動かしてみる」でも同様の前提条件が示されています【[Qiita]】(https://qiita.com/tmatsu200/items/4c1b5be984ec8db7ee51)。


Kong Ingress Controller と Operator の選択ガイド

Kong を Kubernetes 上で運用する際は、主に Kong Ingress Controller (KIC)Kong Gateway Operator のどちらかを選びます。ここでは機能比較とユースケース別の推奨を示し、導入判断の材料を提供します。

機能比較表

以下は公式ドキュメントに基づく主要項目の比較です。Gateway Discovery に関しては、Operator では 現在未実装(2024 年時点)であることが公式リファレンスで確認されています【[Kong Operator Docs]】(https://docs.konghq.com/operator/latest/reference/gateway-discovery/)。

項目 Kong Ingress Controller (KIC) Kong Gateway Operator
管理単位 IngressService を中心に宣言的管理 KongGateway, KongPlugin など CRD で CP/DP を直接制御
デプロイ方法 Helm Chart の一括インストールが主流 Operator が CRD を監視し Pod/Service を自動生成
カスタマイズ性 values.yamlKongPlugin による細粒度設定 CRD フィールドで DP スケーリングや CP ログレベルなどを直接指定
運用負荷 Helm だけで完結し GitOps と相性が良好 Operator 常駐に伴うバージョンアップ時のマイグレーションが必要
Gateway Discovery 対応 ✅ 標準対応 (gatewayDiscovery.enabled: true) ❌ 未実装。手動で Service ↔︎ DP の紐付けが必須

推奨シナリオ

  • 迅速な API プロキシ構築
    KIC + Helm を選択し、Gateway Discovery による自動エンドポイント登録を活用します。
  • Control/Data Plane を明示的に分離したハイブリッド構成
    Operator が提供する CP/DP 分離機能が有利ですが、Gateway Discovery が使えない点は留意してください。

結論:自動化とシンプルさを重視するなら KIC、マルチクラスタやハイブリッド構成で CP/DP の分離が必要な場合は Operator を検討します。


Helm Chart で KIC をインストールし Gateway Discovery を有効化

このセクションでは、KIC 用の values.yaml の重要ポイントと実際のインストール手順を示します。Helm によるデプロイは GitOps パイプラインでもそのまま利用できます。

values.yaml のポイント

以下は最小構成で Gateway Discovery と DB-less モードを有効にした例です。

  • gatewayDiscovery.enabled: true が唯一の設定で、Service の作成だけで Kong にルートが自動反映されます。
  • mode: dns は内部 DNS を利用するため、マルチクラスタ環境でも名前解決が安定します。

インストール手順

ベストプラクティス:公式リポジトリは常に最新 CRD と互換性が保たれるため、helm repo update を定期的に実行し、再デプロイ時に最新版を取得してください【[Kong Helm Chart]】(https://github.com/kong/charts) 。


Service・Ingress・KongPlugin のマニフェスト例

この章では、Git リポジトリで管理する典型的な Kubernetes マニフェストを示します。Gateway Discovery が有効になっているため、Service を作成すれば自動的に Kong にエンドポイントが登録されます。

Service と Ingress の基本形

  • Service が作成されると、Gateway Discovery により自動的に Kong のルーティングテーブルへ反映されます。
  • konghq.com/strip-path 等のアノテーションでリクエストパスの調整が可能です。

プラグイン適用例

  • KongPlugin は名前空間単位で宣言し、対象 Ingress の annotations.konghq.com/plugins に列記するだけで適用できます。
  • 認証・OAuth2・OIDC 等も同様に CRD として管理でき、GitOps の差分検知がそのままプラグイン設定の変更につながります。

GitOps による自動デプロイ

ここでは代表的な GitOps ツール Argo CDFlux v2 を用いたデプロイフローを紹介します。どちらも KIC の Helm Chart と上記マニフェストをリポジトリから同期可能です。

Argo CD での Application 定義

  • 自動同期:Git にプッシュされるたびに Argo CD が差分を検出し、helm upgrade --install と同等の操作でクラスターを更新します。
  • selfHeal:手動で削除されたリソースは自動的に復元されます。

Argo CD と Flux の比較

項目 Argo CD Flux v2
UI/ダッシュボード Web コンソールが充実し、リアルタイムで状態可視化可能 主に CLI と GitHub Checks が中心
同期方式 Pull & Push(プラグインで拡張) Pull‑only がデフォルト
カスタマイズ性 resourceHooks で柔軟なフック実装が容易 kustomize-controller の拡張が必要

Argo CD は運用者向けの可視化が優れており、Flux は CI/CD パイプラインとの統合がシンプルです。どちらも KIC + Gateway Discovery の Manifest を Git で一元管理できる点は共通しています【[Argo CD Docs]】(https://argo-cd.readthedocs.io) / 【[Flux Docs]】(https://fluxcd.io/docs/)。


本番環境ベストプラクティス(Hybrid・マルチクラスタ構成)

本章では、可用性とスケーラビリティを高めるためのハイブリッドモードや TLS/ RBAC の設定例を示します。実装例は公式ガイドに準拠しています【[Kong Hybrid Guide]】(https://docs.konghq.com/gateway/latest/hybrid-mode/)。

Hybrid モード構成例

  1. Control Plane (CP)
  2. Namespace kong-cp に Operator または KIC をデプロイし、Admin API は外部から遮断。
  3. Data Plane (DP)
  4. 別クラスターまたは同一クラスターの kong-dp に DP 用 Deployment を配置し、gatewayDiscovery.enabled: true のみ有効化。
  5. 名前解決
  6. CP の Service 名 cp.kong.svc.cluster.local を DNS で公開し、DP が直接参照できるようにします。

この構成では CP の障害時に DP が継続稼働するため、サービス停止時間を最小化できます。

TLS と cert-manager の連携

  • 上記 ClusterIssuer を作成後、Ingress の tls: セクションに secretName を指定すれば自動的に証明書が発行・更新されます。

RBAC とログ・ヘルスチェック

  • Admin API へのアクセスは kong-admin ロールに限定し、最小権限の ServiceAccount にだけ付与します。
  • ポッドの稼働状態は次のコマンドで確認できます。
    bash
    kubectl -n kong get pod -l app=kong -o jsonpath="{.items[*].status.containerStatuses[0].ready}"
  • Prometheus の kong_proxy_upstream_latency_ms 等をダッシュボードに組み込むと、トラフィックの遅延やエラー率も可視化できます。

デプロイ後の検証手順

本節では、Kong が正しく Service を認識し、Ingress ルーティングが機能しているかを確認する具体的なコマンド例を示します。すべてのチェックが成功したら GitOps リポジトリへマージし、Argo CD / Flux が継続的に状態を保守できることを最終確認してください。

  1. Admin API で Service 一覧取得
    bash
    curl -s http://<proxy-service-ip>:8001/services | jq .
  2. ヘルスチェックエンドポイント
    bash
    curl -s http://<proxy-service-ip>:8001/status | jq .
  3. ログにエラーが無いか確認
    bash
    kubectl logs -n kong -l app=kong --tail=100 | grep -i error
  4. 実際のリクエストテスト(Bookinfo アプリ)
    bash
    curl -i http://bookinfo.example.com/

    期待したステータスコードとレスポンスが返れば、Gateway Discovery と Ingress 設定は正常に機能しています。

まとめ

  • KIC + Helm が最もシンプルで自動化しやすく、Gateway Discovery による Service の即時登録が可能です。
  • Operator は CP/DP 分離や高度なカスタマイズが必要なハイブリッド構成に適していますが、Gateway Discovery は未実装です(公式ドキュメント参照)。
  • GitOps ツールは Argo CDFlux v2 のどちらでも対応でき、Manifest を一元管理することで変更履歴と可視性を確保できます。
  • 本番環境では Hybrid モード+ cert-manager + RBAC を組み合わせ、Prometheus でメトリクス監視を行うことが推奨されます。

以上の手順とベストプラクティスに沿って構築すれば、Kong Gateway の導入から運用までを安全かつ効率的に実現できます。

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-KongGateway