Kubernetes 入門コース / Chapter 12

Service種別とクラスタ全体像

Headless・ClusterIP・NodePort・LoadBalancerを到達範囲と名前解決で整理し、Ingressまで含むHTTPの通信経路を説明できるようにします。

この章で学ぶこと
  1. ClusterIPは安定した内部窓口、HeadlessはPod個別の宛先をDNSで返す。
  2. NodePortは検証用の直接入口、LoadBalancerはクラウドのL4入口を作る。
  3. HTTPのTLS・ホスト・パス振り分けはIngress Controllerの責務である。

014種のServiceを到達範囲で選ぶ

内部で1つへ振り分けるか、Podを個別に引くか、外部へ入口を作るかでService typeを選ぶ。

Service typeごとの到達範囲
Service typeはPodの実装ではなく、クライアントがどの入口から到達するかを決める。

ClusterIPは仮想IPでPod群へ振り分け、HeadlessはDNSにPod IP群を返す。NodePortはNodeのポート、LoadBalancerはクラウドのL4入口を使う。

判断できるようになること:4種のServiceを到達範囲で選ぶ。

02IngressはHTTPのルール、Serviceは転送の窓口

外部HTTPからPodまでの責務を、Ingress ControllerとClusterIP Serviceへ分ける。

HTTP公開におけるIngressとServiceの分担
Ingressは宣言だけでは動かず、ルールを実装するIngress Controllerと到達経路が必要である。

Ingressはホスト名・パス・TLSを見て転送先Serviceを選ぶ。ServiceはselectorでReady Pod群へ流す。LoadBalancer typeとIngressは役割が異なり、単純な置換関係ではない。

判断できるようになること:IngressはHTTPのルール、Serviceは転送の窓口。

03矢印を逆に追って通信障害を切り分ける

外側のDNS/入口から内側のPod readinessまで、経路を一段ずつ確認する。

通信経路を逆にたどる調査順
Pod IPを直接探す前に、Service selectorとEndpointsがReady Podを指しているかを確認する。

DNS/入口 → Ingressルール → Serviceのportとselector → Endpoints → Pod readinessの順に確認する。どこで矢印が切れたかを特定してから下流へ進む。

判断できるようになること:矢印を逆に追って通信障害を切り分ける。

章のまとめ

  1. ClusterIPは安定した内部窓口、HeadlessはPod個別の宛先をDNSで返す。
  2. NodePortは検証用の直接入口、LoadBalancerはクラウドのL4入口を作る。
  3. HTTPのTLS・ホスト・パス振り分けはIngress Controllerの責務である。