『中級篇』k8s基礎網絡Cluster Network(66)
阿新 • • 發佈:2018-10-05
網絡相關 9.png event 都是 nod dep router rip reat
>原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
>原文鏈接地址:『中級篇』k8s基礎網絡Cluster Network(66)
通過國人大神的一鍵安裝k8s集群安裝了3個master節點和3個node節點的虛機,現在咱們的演示直接在開發機上運行就可以了dev機器。這次主要說說k8s相關的網絡和網絡相關的概念,service!源碼:https://github.com/limingios/docker/tree/master/No.10
準備工作 創建2個pod
進入dev虛機上
cd ~ cd deployk8s-master/ cd pod-basic/ kubectl create -f pod_nginx.yml kubectl create -f pod_tomcat.yml
進入node節點
- 21,22,23 分別ping下pod的節點看能否ping通
ping nginx 都是可以ping通的
ping tomcat 都是可以ping通的
說明pod節點直接都是互相通信的
進入這3個node節點發現
他們都使用了Flannel的網絡
詳細看看官網怎麽說
https://kubernetes.io/docs/concepts/cluster-administration/networking/
- all containers can communicate with all other containers without NAT
所有的容器和其他所有的容器之間可以直接通信,不需要經過NAT的轉化 - all nodes can communicate with all containers (and vice-versa) without NAT
所有的節點可以直接訪問其他節點的容器。 - the IP that a container sees itself as is the same IP that others see it as
容器自己的ip是什麽別人直接訪問他的時候就可以用這個ip地址。
k8s開源社區的插件太多了,支持插件的的,很早以前docker是不支持網絡插件的,k8s的網絡插件可以更方便的打通容器和節點。
flannel主要提供了跨主機間的容器通信;
- 在kubernetes的Pod、Service模型裏,kube-proxy又借助iptables實現了Pod和Service間通信。
- 基於這種網絡訪問功能,我們平臺提供了以下功能:
- 基於gorouter提供的平臺域名的訪問 – watch k8s endpoints event管理router信息;
4 .基於skydns並定制化kube2sky組件和kubelet,提供同一命名空間下應用(Pod)之間基於業務域名的訪問 – kube2sky基於k8s Service annotation解析並註冊域名信息、kubelet設置容器啟動時的domain search及外部dns; - 實現容器tty訪問控制臺 – 每臺k8s node部署平臺組件 tty agent(根據Pod所屬node信息, 建立對應k8s結點的tty連接);
PS:基礎網絡方便的通信使用k8s提供的滿足它要求的插件。下節我們一起坐下如何讓pod可以外部來訪問。
『中級篇』k8s基礎網絡Cluster Network(66)