Kubernetes ServiceとIngress
自分なりの理解を整理
参考文献: Kuubernetes完全ガイド
Serviceの役割
- 固定エンドポイントの提供
- KubernetesのPodは生まれては消える、名前もIPアドレスもコロコロ変わる。
- そのため、サービスのエンドポイントにPodのIPアドレス指定すると現実的に運用できない。
- Serviceを使えば、固定エンドポイントが作成される。
- 紐づくPod(等)のIPアドレスはKubernetesクラスタ内のDNSに自動登録される
- ロードバランス
- 固定エンドポイントに紐づく複数のPod間でロードバランシングが行われる。
- ServiceのロードバランスはL4レイヤ
- L7でロードバランスしたいときは後述のIngressを使う
kind: Service の種類
KubernetesのPodへのアクセスのため使うもの
- type: Cluster IP
- type: NodePort
- クラスタ外のホストからアクセス可能
- 全ノードに対するExternalIPのようなもの
- type: LoadBalancer
Kubernetesリソース以外へのアクセスのために使うもの
- type: ExternalName
- type: Cluster IP(None Selector)
- 何のPodにも紐付かない空のClusterIPを作成
- 別途Endpointとして任意のIPを指定することでできる
- PodのIPでもいいし、外部のサービスでもいい
kind: Ingress の種類
クラスタ外のロードバランサを利用するもの
クラスタ内にIngress用のPodをデプロイするもの
うーんむずかしい