k8s-集群里的三種IP(NodeIP、PodIP、ClusterIP)


Kubernetes集群里有三種IP地址,分別如下:
Node IP:Node節點的IP地址,即物理網卡的IP地址。
Pod IP:Pod的IP地址,即docker容器的IP地址,此為虛擬IP地址。
Cluster IP:Service的IP地址,此為虛擬IP地址。
在不同Service下的pod節點在集群間相互訪問可以通過Cluster IP
 
一、Node IP
可以是物理機的IP(也可能是虛擬機IP)。
每個Service都會在Node節點上開通一個端口,外部可以通過NodeIP:NodePort即可訪問Service里的Pod,和我們訪問服務器部署的項目一樣,IP:端口/項目名
在kubernetes查詢Node IP
1.kubectl get nodes
2.kubectl describe node nodeName
3.顯示出來的InternalIP就是NodeIP
    
    
 
 
二、Pod IP
Pod IP是每個Pod的IP地址,他是Docker Engine根據docker網橋的IP地址段進行分配的,通常是一個虛擬的二層網絡
同Service下的pod可以直接根據PodIP相互通信
不同Service下的pod在集群間pod通信要借助於 cluster ip
pod和集群外通信,要借助於node ip
在kubernetes查詢Pod IP
1.kubectl get pods
2.kubectl describe pod podName
        
 
 
三、 Cluster IP
Service的IP地址,此為虛擬IP地址。外部網絡無法ping通,只有kubernetes集群內部訪問使用。
在kubernetes查詢Cluster IP
        kubectl  get Service -n 命名空間    # 即可看到ClusterIP
Cluster IP是一個虛擬的IP,但更像是一個偽造的IP網絡,原因有以下幾點
Cluster IP僅僅作用於Kubernetes Service這個對象,並由Kubernetes管理和分配P地址
Cluster IP無法被ping,他沒有一個“實體網絡對象”來響應
Cluster IP只能結合Service Port組成一個具體的通信端口,單獨的Cluster IP不具備通信的基礎,並且他們屬於Kubernetes集群這樣一個封閉的空間。
在不同Service下的pod節點在集群間相互訪問可以通過Cluster IP
 
四、三種IP網絡間的通信
    service地址和pod地址在不同網段,
    service地址為虛擬地址,不配在pod上或主機上, 外部訪問時,先到Node節點網絡,再轉到service網絡,最后代理給pod網絡。
 
 
Kubernetes在其所有節點上開放一個端口給外部訪問(所有節點上都使用相同的端口號), 並將傳入的連接轉發給作為Service服務對象的pod。這樣我們的pod就可以被外部請求訪問到
 
————————————————
原文鏈接:https://blog.csdn.net/qq_21187515/article/details/101363521


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM