Kubernetes Ingressについて
Ingressとは
クラスター内のServiceに対する外部からのアクセス(主にHTTP)を管理するAPIオブジェクト
https://kubernetes.io/ja/docs/concepts/services-networking/ingress/
- IngressはPod・Serviceへのアクセスするためのルールのコレクションをもつリバースプロキシであると考えて良い
- デフォルト設定では、Kubernetes Cluster内のPod・Serviceに割り振られるIPアドレスは、Cluster外から利用不可能
詳細はこちら:GKE(Google Kubernetes Engine)のServiceについて
- デフォルト設定では、Kubernetes Cluster内のPod・Serviceに割り振られるIPアドレスは、Cluster外から利用不可能
- IngressはServiceに対して下記の機能を提供する
- 外部からアクセスできるURL
- Cluster外のロードバランサ―に依存しない負荷分散
- SSL/TLS終端
- 名前ベースの仮想ホスティング
- Ingressは以下の二つの要素で構成される
- Ingress resource: DNSルーティングのルールやIngressのコンフィギュレーション値を格納する
- Ingress Controller: Ingress resourceのルールに基づいてルーティングするIngress APIオブジェクトのインスタンス
Ingress具体例
- それぞれのIngressで、Ingress resourceの仕様が異なるため注意が必要
- GLBCとingress-nginx以外は、Kuberenetesのデフォルトでのサポートがないため、別途Ingress Controllerのインストール作業が必要になる
- 下記の二種類に大別できる
- In-cluster ingress
- Cluster内のPodが負荷分散を行う
- 利点
- Kubernetes環境でのスケーリングが容易(マルチクラウド環境にも適応可能)
- Cloud Providerに依存しない、サーバー環境の変更に対応しやすい
- (通常、オープンソース)
- Cloud-based ingress
- Cluster外のCloud Provider(AWS、Google Cloud等)のサービスが負荷分散を行う
- 利点
- Cloud Providerの提供するロードバランサ―と連携しやすい
- 負荷分散の機能自体は比較的安定・高速
- In-cluster ingress
In-cluster ingress
- Traefik
- Ingress-nginx
- NGINX & NGINX Plus Ingress Controller
- Kong
- HAProxy
- Voyager
- Istio Ingress
- Ambassador
- Contour
- Gloo
- F5
- Citrix
- Skipper
Cloud-based ingress
- GKE Ingress Controller for GKE
- Azure Application Gateway Ingress Controller
- AWS ALB Ingress Controller Fro AKS
- IBM Ingress Controller
参考
- https://kubernetes.io/ja/docs/concepts/services-networking/ingress/
- https://medium.com/@glen.yu/nginx-ingress-or-gke-ingress-d87dd9db504c
- https://jamesdefabia.github.io/docs/user-guide/ingress/
- https://medium.com/google-cloud/deploying-service-or-ingress-on-gke-59a49b134e3b
- https://kubevious.io/blog/post/comparing-kubernetes-ingress-solutions-which-one-is-right-for-you
ディスカッション
コメント一覧
まだ、コメントがありません