讀過了幾遍及翻了網路文章,才有這個開門見山的心得:
cluster ip 是在建立 service 物件時由 K8s API 伺服器所分配。
cluster ip 是虛擬靜態IP,當被分配 IP 後就不再異動,除非刪除、重建 service 物件時,
才會有所變動(重新分配)。
service cluster ip 實現了負載平衡功能,賦予流量傳送到 Endpoint 內對象 pod。
如不需要或不需負載平衡,無需此單獨的 Service IP。
可以經由指定 Cluster IP(spec.clusterIP
)的值為 "None
" 來創建 Headless Service。
# Headless Service 範例
apiVersion: v1
kind: Service
apiVersion: v1
metadata:
name: hello-minikube
spec:
clusterIP: None
上述 cluster ip 是 service type 之一,支援的型態如下:
實現 Service 這個抽象層功能(服務探索、負載平衡)的角色是 kube-proxy。
Kube-Proxy iptables 模式解說圖
這一篇的研讀,讓我更加明瞭 Service 是怎麼一回事情,也很感謝下列官方、網友文章的解說,讓我有所學習與突破。
參考書籍\文章出處:
Kubernetes 建置與執行 書中 P.88-89 內容。
https://kubernetes.io/docs/concepts/services-networking/service/ https://feisky.gitbooks.io/kubernetes/concepts/service.html https://feisky.gitbooks.io/kubernetes/components/kube-proxy.html