1. 程式人生 > >『中級篇』k8s基礎網絡Cluster Network(66)

『中級篇』k8s基礎網絡Cluster Network(66)

網絡相關 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主要提供了跨主機間的容器通信;

  1. 在kubernetes的Pod、Service模型裏,kube-proxy又借助iptables實現了Pod和Service間通信。
  2. 基於這種網絡訪問功能,我們平臺提供了以下功能:
  3. 基於gorouter提供的平臺域名的訪問 – watch k8s endpoints event管理router信息;
    4 .基於skydns並定制化kube2sky組件和kubelet,提供同一命名空間下應用(Pod)之間基於業務域名的訪問 – kube2sky基於k8s Service annotation解析並註冊域名信息、kubelet設置容器啟動時的domain search及外部dns;
  4. 實現容器tty訪問控制臺 – 每臺k8s node部署平臺組件 tty agent(根據Pod所屬node信息, 建立對應k8s結點的tty連接);

PS:基礎網絡方便的通信使用k8s提供的滿足它要求的插件。下節我們一起坐下如何讓pod可以外部來訪問。

技術分享圖片

『中級篇』k8s基礎網絡Cluster Network(66)