K8S中如何跨namespace 訪問服務?為什麽ping不通ClusterIP?
1、K8S中如何跨namespace 訪問服務?
2、在Pod中為什麽ping不通ClusterIP?
簡述:
??????? Rancher2.0中的一個用戶,在K8S環境中,創建兩個namespace,對應用進行分割管理,在一個namespace的pod中,如何訪問另一個namespace中的服務?--K8S使用kube-DNS實現服務發現功能的,可以通過DNS名稱訪問服務名。
??????? 在K8S中,部署一個帶ClusterIP的服務,供集群內部網絡訪問。為什麽這個ClusterIP無法ping通?--ClusterIP是IPtable規則,不是綁定在網絡接口上的,服務可以訪問,但ping不通ClusterIP。
演示截圖:
圖1-創建一個包含3臺主機、用於演示的集群環境
圖2-在命名空間namespace111中,創建一個nginx工作負載,端口映射的運行模式為集群IP
圖3-再在另一個命名空間namespace222中,創建一個普通的Ubutnu工作負載
圖4-在服務發現頁面中,可以看到,已自動在2個命名空間中創建2條服務記錄
圖5-進入2個Pod中,驗證不同namespace可以互相訪問,集群IP不可以ping,但ClusterIP對應的服務可以訪問。
圖6-網上介紹kubeDNS的文章
圖7-網上關於ClusterIP相關的帖子及文章
參考鏈接:
kube-dns 和服務發現
https://www.cnblogs.com/allcloud/p/7614123.html
kubernetes的service的cluster-ip無法訪問
http://dockone.io/question/1086
談談kubernets的service組件的Virtual IP
https://ieevee.com/tech/2017/01/20/k8s-service.html
K8S中如何跨namespace 訪問服務?為什麽ping不通ClusterIP?