K8s IP

notion image
  • External IP: 裸露的網路位址,供外部使用者連線
    • 指定 service 為 type: LoadBalancer 時,Cloud Provider (如 GCP、AWS) 配發的 Public IP
    • 只能透過 kube proxy 來 access
  • Cluster IP: 叢集內部的網路位址,在 Cluster 內的 Pod 可以透過此位址存取該服務,外部無法存取
  • Pod IP: 每個 Pod 獨有的網路位址,只有叢集內可連線,外部無法連線
  • NodePort: 機器上的 port
  • LoadBalancer: 擁有 NodePort 可以讓外部連線的優點,同時也建立了負載平衡的機制來分散流量
💡
Pod 之間是否能夠直接使用彼此 IP 溝通,而無需 Service 存在?
A: 可以,但不建議這種作法。Service 用意在於將背後實際運作的細節隱藏、抽象化,這樣就不用依賴於 ip 而可以透過 DNS 查到該服務 pod 的 ip