1. 程式人生 > 實用技巧 >深入理解Service

深入理解Service

8.1 Service存在的意義

  • 防止Pod失聯(服務發現)

  • 定義一組Pod的訪問策略(負載均衡)

8.2 Pod與Service的關係

  • 通過label-selector相關聯

  • 通過Service實現Pod的負載均衡( TCP/UDP 4層)

  • 8.2 Service三種類型

    • ClusterIP:叢集內部使用,預設分配一個穩定的IP地址,即VIP,只能在叢集內部訪問(同Namespace內的Pod)。

    • NodePort:對外暴露應用。在每個節點上啟用一個埠來暴露服務,可以在叢集外部訪問。也會分配一個穩定內部叢集IP地址。訪問地址:<NodeIP>:<NodePort>

    • LoadBalancer:對外暴露應用,適用公有云、與NodePort類似,在每個節點上啟用一個埠來暴露服務。除此之外,Kubernetes會請求底層雲平臺上的負載均衡器,將每個Node([NodeIP]:[NodePort])作為後端新增進去。

    8.3 Service代理模式

Iptables:

  • 靈活,功能強大

  • 規則遍歷匹配和更新,呈線性時延

IPVS:

  • 工作在核心態,有更好的效能

  • 排程演算法豐富:rr,wrr,lc,wlc,ip hash...

啟用ipvs:

lsmod|grep ip_vs
kubectl edit configmap kube-proxy -n kube-system
kubectl delete pod xxx -n kube-system
ipvsadm -ln