,VCFSOFUFT$PSF Kubernetes 本体のソースコード⾃体は基本的には同じ 後で紹介する各コンポーネントによって、コアとプラグインという形が取られているものが多い Cloud Controller Manager CSI Driver A 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
*OHSFTT$POUSPMMFSͷࠩҟ Ingress は L7 レイヤーのエンドポイントを提供する機能 • パスベースルーティング • SSL 終端 実装はいくつか⽤意されており、 複数ある場合は 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
1PEΛར༻ͨ͠ *OHSFTT NIC NIC NIC Pod Network (Internal 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 NodePort Service NodePort Service Ingress Controller Deployment (/path1: Service A, /path2: Service B) Pod LoadBalancer Service
1PEΛར༻ͨ͠ *OHSFTT NIC NIC NIC Pod Network (Internal 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 NodePort Service NodePort Service Ingress Controller Deployment (/path1: Service A, /path2: Service B) Pod LoadBalancer Service メリット︓ ソフトウェア利⽤のため実装が多岐にわたる Annotations や ConfigMap で詳細な設定が⾏える デメリット︓ HPA と組み合わせて負荷対策が必要 LB 相当の Pod の管理はクラスタ管理者が⾏う必要がある
֎෦ͷ -#Λར༻ͨ͠ *OHSFTTʢ7.CBTFEʣ NIC NIC NIC Pod Pod Network (Internal 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
֎෦ͷ -#Λར༻ͨ͠ *OHSFTTʢ7.CBTFEʣ NIC NIC NIC Pod Pod Network (Internal 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 ロードバランシングが⾏われる
֎෦ͷ -#Λར༻ͨ͠ *OHSFTTʢ7.CBTFEʣ NIC NIC NIC Pod Pod Network (Internal 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)
֎෦ͷ -#Λར༻ͨ͠ *OHSFTTʢ7.CBTFEʣ NIC NIC NIC Pod Pod Network (Internal 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) メリット︓ 2-Hop バランシングがないため性能が向上 デメリット︓ 利⽤できる環境が少ない(GCP、AWS、etc) LB メンバー書き換えが遅延しやすいため考慮が必要