Headless・ClusterIP・NodePort・LoadBalancerを到達範囲と名前解決で整理し、Ingressまで含むHTTPの通信経路を説明できるようにします。
内部で1つへ振り分けるか、Podを個別に引くか、外部へ入口を作るかでService typeを選ぶ。
ClusterIPは仮想IPでPod群へ振り分け、HeadlessはDNSにPod IP群を返す。NodePortはNodeのポート、LoadBalancerはクラウドのL4入口を使う。
判断できるようになること:4種のServiceを到達範囲で選ぶ。
外部HTTPからPodまでの責務を、Ingress ControllerとClusterIP Serviceへ分ける。
Ingressはホスト名・パス・TLSを見て転送先Serviceを選ぶ。ServiceはselectorでReady Pod群へ流す。LoadBalancer typeとIngressは役割が異なり、単純な置換関係ではない。
判断できるようになること:IngressはHTTPのルール、Serviceは転送の窓口。
外側のDNS/入口から内側のPod readinessまで、経路を一段ずつ確認する。
DNS/入口 → Ingressルール → Serviceのportとselector → Endpoints → Pod readinessの順に確認する。どこで矢印が切れたかを特定してから下流へ進む。
判断できるようになること:矢印を逆に追って通信障害を切り分ける。