Ingress Controller A Ingress Controller B CSI Driver B Runtime A Runtime B StorageClass A SnapshotClass A IngressClass A IngressClass B StorageClass B SnapshotClass B RuntimeClass A RuntimeClass B … … … Authentication module
実装はいくつか⽤意されており、 複数ある場合は IngressClass によって選択可能 1. Pod を利⽤した Ingress 2. 外部の LB を利⽤した Ingress (VM-based) 3. 外部の LB を利⽤した Ingress (Container-native) Ingress Service Pod Pod Pod Service Pod Pod Pod HTTP Requests
Network (External Network) Kubernetes Node Kubernetes Node Kubernetes Node :80 :80 :80 10.240.0.7 10.240.0.9 10.240.0.8 NodePort Service NodePort Service Ingress Controller Deployment (/path1: Service A, /path2: Service B) Pod LoadBalancer Service
Network (External Network) Kubernetes Node Kubernetes Node Kubernetes Node :80 :80 :80 10.240.0.7 10.240.0.9 10.240.0.8 NodePort Service NodePort Service Ingress Controller Deployment (/path1: Service A, /path2: Service B) Pod LoadBalancer Service メリット︓ ソフトウェア利⽤のため実装が多岐にわたる Annotations や ConfigMap で詳細な設定が⾏える デメリット︓ HPA と組み合わせて負荷対策が必要 LB 相当の Pod の管理はクラスタ管理者が⾏う必要がある
Network) Node Network (External Network) Kubernetes Node Kubernetes Node Kubernetes Node :80 :80 :80 10.240.0.7 10.240.0.9 10.240.0.8 Ingress (/path1: Service A, /path2: Service B) NodePort Service A NodePort Service B
Network) Node Network (External Network) Kubernetes Node Kubernetes Node Kubernetes Node :80 :80 :80 10.240.0.7 10.240.0.9 10.240.0.8 Ingress (/path1: Service A, /path2: Service B) NodePort Service A NodePort Service B メリット︓ 安定したクラウドやHWのロードバランサが利⽤可能 Kubernetesクラスタのリソースを消費しない デメリット︓ 利⽤可能な機能はクラウドのLBに左右される 2 Hop ロードバランシングが⾏われる