Contents
Helmリポジトリの追加手順
Kong GatewayのHelmチャートを使用するには、公式リポジトリをクラスターに登録する必要があります。以下のステップで操作できます。
公式リポジトリのアドオン
Kong Gateway用のHelm Chartリポジトリを追加します。
|
1 2 |
helm repo add kong https://charts.konghq.com |
このとき、ネットワーク制限によりリポジトリに接続できない場合があります。その場合は、helm repo listで既存のリポジトリ一覧を確認し、必要に応じてプロキシ設定やDNS設定を調整してください。
リポジトリ一覧の確認方法
追加したリポジトリの一覧は以下のように確認できます。
|
1 2 |
helm repo list |
出力結果でkongリポジトリが表示されれば、正しく登録されています。
カスタム値ファイル(yaml)の作成方法
Kong Gatewayのデプロイでは、カスタム値ファイル(values.yaml)を作成してパラメータを設定します。このファイルにより、セキュリティや性能に関わる重要設定を柔軟に調整できます。
デフォルト値の参照手順
初期設定はhelm show values kong/kong-gatewayで確認できます。
|
1 2 |
helm show values kong/kong-gateway > values.yaml |
このファイルを編集して、以下のような主要なパラメータをカスタマイズします。
主な設定項目の解説
| 設定項目 | デフォルト値 | 補足 |
|---|---|---|
replicaCount |
1 | クラスター環境では2推奨 |
service.type |
ClusterIP | LoadBalancerを有効化する場合に変更 |
proxy.databaseType |
postgresql | 業務用途ではRedisも選択可能 |
プロダクション環境向けのカスタム設定例として、レプリケーション数やセキュリティ設定を明確に記述することが重要です。
ノーディープロビジョニング設定
Kubernetesクラスター管理ツールとKong Gatewayを統合する場合、最小限のプロビジョニング設定で効率的な運用が可能です。
機能概要
ノーディープロビジョニングは、既存リソースを自動で検出・登録する機能です。これにより、手動での設定ミスを防止できます。
Kong Gatewayとの連携手順
以下の手順でKubernetesのリソースをKong Gatewayに同期させます。
kong-gatewayサービスのmetadata.annotationsにkonghq.com/ingress-class: kongを追加- リソースの変更後、
kubectl apply -f <リソース定義ファイル>で再登録
Ingress Controllerとの連携手順
Kubernetes Ingress ControllerとKong Gatewayを組み合わせることで、柔軟なルーティングが可能になります。
Kubernetes Ingressリソースの定義
以下のようにIngressリソースを作成します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-ingress annotations: konghq.com/strip-path: "true" spec: rules: - http: paths: - path: /api pathType: Prefix backend: service: name: my-service port: number: 80 |
ルーティング設定の検証
デプロイ後、kubectl get ingressでIngressリソースが正しく反映されているか確認します。ルーティングエラー時のデバッグには、Kong Gatewayのログ(kubectl logs <pod名>)を参照してください。
セキュリティ設定(TLS証明書・OAuth2)
セキュリティ面でのベストプラクティスとして、HTTPS強制と認証プロトコル導入が必須です。
証明書の自動発行設定
Let's Encryptとの連携を以下のように構成できます。
|
1 2 3 4 5 6 7 8 |
proxy: tls: enabled: true acme: email: [メールアドレス削除] domains: - example.com |
証明書エラーが発生する場合は、kubectl describe certificate <name>で詳細情報を確認してください。
OAuth2認証フローの構成
OAuth2を導入するには、以下のように設定ファイルに記述します。
|
1 2 3 4 5 |
admin: auth: enabled: true provider: google |
プロバイダーごとに必要なクライアントIDやシークレットを設定し、認証フローを構成してください。
デプロイ後のベストプラクティスと注意点
Kong Gatewayのデプロイ後は、継続的な監視と最適化が重要です。以下に重要なポイントを整理します。
クラスターリソースの可視化
- Kubernetes DashboardやPrometheus + Grafanaでリソース使用率を監視
- Kong GatewayメトリクスをGrafanaに統合し、リアルタイム監視体制を構築
セキュリティ強化のポイント
- CSIStrageClassの選択: ストレージクラスは
standardで十分ですが、高可用性が必要な場合はssdやnvmeを選択(詳細はこちら) - ネットワークポリシーの導入:
NetworkPolicyで不要なトラフィックをブロック - ロギングとアラート設定: Fluentd + Elasticsearch + Kibanaでログ管理システム構築
パフォーマンス最適化のステップ
- コンフィグレーションの最小化: 不要なプロキシルールやセキュリティポリシーを削除
- キャッシュ戦略の見直し: キャッシュタイムアウト値を業務シーンに合わせて調整
- レプリカ数の最適化: 負荷テストに基づき
replicaCountを調整
まとめ:Kong Gatewayデプロイの全体像
本記事で解説した手順を基に、自社環境でのKong Gatewayデプロイを試してみてください。以下に重要なキーポイントを再整理します。
デプロイフローの主要ステップ
- Helmリポジトリの登録 → 2. カスタム値ファイルの作成と設定 → 3. ノーディープロビジョニング設定 → 4. Ingress Controllerとの連携 → 5. セキュリティ設定の適用
Kong Gateway公式ドキュメント(https://docs.konghq.com/gateway/)に記載されている情報と完全に一致していることを確認してください。特にv8系Helm Chartに関する最新情報については、公式リポジトリで最新版を必ずチェックしてください。
疑問点はコメント欄で気軽にご質問ください。