kubernetes的service的類型

看圖

圖片描述

四種類型

  • ClusterIPnode

使用集羣內的私有ip —— 這是默認值。git

  • NodePortgithub

除了使用cluster ip外,也將service的port映射到每一個node的一個指定內部port上,映射的每一個node的內部port都同樣。segmentfault

  • LoadBalancer負載均衡

使用一個ClusterIP & NodePort,可是會向cloud provider申請映射到service自己的負載均衡。ide

  • ExternalNameui

經過CNAME將service與externalName的值(好比:foo.bar.example.com)映射起來. 要求kube-dns的版本爲1.7或以上.spa

路由

圖片描述

  • ClusterIP
    clusterIP主要在每一個node節點使用iptables,將發向clusterIP對應端口的數據,轉發到kube-proxy中。而後kube-proxy本身內部實現有負載均衡的方法,並能夠查詢到這個service下對應pod的地址和端口,進而把數據轉發給對應的pod的地址和端口。blog

  • NodePort
    nodePort的原理在於在node上開了一個端口,將向該端口的流量導入到kube-proxy,而後由kube-proxy進一步導給對應的pod。dns

  • LoadBalancer
    LoadBalancer跟nodePort實際上是同一種方式。參見這裏的說明。區別在於LoadBalancer比nodePort多了一步,就是能夠調用cloud provider去建立LB來向節點導流。

doc

相關文章
相關標籤/搜索