3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GCP(Google Cloud Platform)Advent Calendar 2022

Day 7

Google Cloud GKEでのingress-gceとingress-nginxの違い

Last updated at Posted at 2023-01-16

経緯

  • Google CloudのGKEでIngressを利用する場合、まずingress-gceとingress-nginxが候補に挙がる(参考:K8s Ingressについて
  • それらをデプロイした場合に、Google Cloudのロードバランサ―等が自動生成されてクラスターと連携する
  • それぞれ何ができるのか実際にデプロイしてみてサービス構成を確認後、機能を比較をした

まとめ

サービス構成

  • デプロイ後の構成イメージは下図(左:ingress-nginx、右:ingress-gce)の通り
    ingress-gcp.png

  • 上図で省略しているロードバランサ―からPodへのアクセスは下図(左:ingress-nginx、右:ingress-gce)の通り


引用:https://cloud.google.com/kubernetes-engine/docs/concepts/container-native-load-balancing

機能比較

  • ingress-gce(詳細
    • 外部HTTP(S)ロードバランサ(従来)が生成され、そのバックエンドサービスのバックエンドとして効果薄るPodのエンドポイントを含むゾーンNEGが設定されるという状況
    • 主な利点
  • ingress-nginx(詳細
    • 外部TCP/UDP ネットワークロードバランサが生成され、そのバックエンドサービスのバックエンドとしてVM instanceが3つを含み、ingress-nginx-controllerの設定と連携した転送ルールをもつターゲットプールが設定されるという状況
    • 主な利点
      • 設定項目が非常に多くより細やかな機能設定が可能(らしい。項目の違いは未確認)
      • Could Providerによらずに同じ設定を使えるためマルチクラウド環境にも対応可能

サービス構成比較詳細

  • 最小限と思われる、1 Ingress + 1 Service + 1 Deployment(1 Pod)の構成でデプロイした(yaml・デプロイ手順の詳細はこちら
  • 以降、ブラウザ上で詳細を確認をした際の記録

ingress-gce

  • より一般的なまとめはこちら
  • 生成されたロードバランサの設定画面
    • HTTP/HTTPS(クラシック)ロードバランサ―が生成され、バックエンドにゾーンネットワークエンドポイントグループ(ゾーンNEG)が設定されている
      LB-default-ingress.png
      LB-detail-default-ingress.png
  • ゾーンNEGの設定画面
    • defaultのVPCネットワーク、defaultのサブネットに属し、ホストVMのエンドポイントが含まれている
      LB-NEG-default-ingress.png
      LB-NEG-details-default-ingress.png

ingress-nginx

  • より一般的なまとめはこちら
  • 生成されたロードバランサの設定画面
    • ネットワーク(ターゲットプール)ロードバランサ―が生成され、3つのVMインスタンスを含むターゲットプールが設定されている
      LB-nginx-ingress.png
      LB-detail-nginx-ingress.png
  • ターゲットプールの設定画面
    - 転送ルールに {"kubernetes.io/service-name":"default/nginx-ingress-ingress-nginx-controller"}が紐づけられている
    `
    TP-nginx-ingress.png
    TP-detail-nginx-ingress.png

所感

  • 機能的な部分だけ考えると、とりあえず始めるならingress-gce、ロードバランサの細かい設定をしたい場合やマルチクラウドをしたい場合はingress-nginxを検討したらいいと思われる
  • 本当はコスト比較もしたかったが、明確にまとめきれなかった
    • GKE以外でコストがかかるサービスは下記の通り(そもそも本当にこれだけなのかも怪しい)
      • Virtual Private Cloud
        • ネットワークの料金
      • Cloud Load Balancing
        • ロードバランサ―の利用料金
      • Compute Engine
        • VMインスタンス、ストレージの料金
    • ロードバランサ―の違い、NEGの有り無しによるネットワーク料金の違いや、nginx-ingress-controllerがPodとして存在することによるVMインスタンスのコストの違いが不明
    • ざっと公式ドキュメント類を見た限りでは、ingressの違いで劇的にコストは変わらないと思われる(料金計算ツールもあるが、抜け漏れがわからない)
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?