kubernetes配置網絡插件flannel


kuberbetes網絡通信:

  • 容器間通信: 同一個pod內的多個容器通信 --- lo
  • Pod間通信: Pod IP ---> Pod IP
  • Pod與Service通信: Pod IP ---> ClusterIP
  • Service與集群外部客戶端通信:

常用CNI(container network 插件):

  • flannel   ---不支持網絡策略
  • calico    ---支持地址分配和網絡策略
  • canel     --- flannel+calico
  • kube-router...

解決方案:

  • 虛擬網橋
  • 多路復用: Mac-VLAN
  • 硬件交換:SR-IOV

網絡配置文件: /etc/cni/net.d/

Flannel支持多種后端:

  • VxLAN:    在node上起一個flannel.0或者flannel.1的隧道端口,通過隧道傳輸實現不同node間pod的通信。 會封裝以下守護:  以太網+ip+udp+vxlan,開銷比較大
    • vxlan    疊加網絡或者隧道網絡,通過封裝網絡報文的方式使不同網段的pod之間可以通訊,默認情況下flannel使用VxLAN模式
    • Directrouting    直接使用主機的IP地作為網關,通過主機路由的方式與目標pod進行通訊,當目標pod與當前pod不在同一三層網絡內,會自動降級為VxLAN模式
  • Host-gw:    Host Gateway --- Pod把數據報文發給虛擬網口,查本地路由表,不是本地的ip,則由本機的物理網卡傳給對端的物理網卡,對端再解析到自己的內部網絡。 僅使用本地路由,開銷較小;與VxLAN的Directrouting模式相同,當目標pod與當前pod不在同一三層網絡內時,pod之間無法通訊
  • UDP:    最早期的通信模式,性能非常差

Flannel的配置參數:

  獲取flannel配置信息: kubectl get configmap/kube-flannel-cfg -n kube-system -o yaml

  Network: flannel使用的CIRD格式的網絡地址,用於為pod配置網絡功能:

       10.244.0.0./16  ->

            master:  10.244.0.0/24

         node1: 10.244.1.0/24

         node2: 10.244.2.0/24

         ....

         node255: 10.244.255.0/24 

  SubnetLen: 把Network切分子網供各節點使用時,使用多長的掩碼進行切分,默認為24位

  SubnetMin:地址段中子網起始值

  SubnetMax:地址段中子網結束值

  Backend:vxlan/host gw/udp

♦ brctl show  xxx   可以查看xxx網口綁定情況

♦ tcpdump -i  xxx -nn     對xxx網口抓包

♦ ip route show  可以顯示當前路由信息

♦ kubectl edit configmap/kube-flannel-cfg -n kube-system   直接編輯flanel配置文件來修改網絡模式不會生效, 需要在安裝flanne初始化的時候就編輯好配置文件,修改flannel插件配置文件的“net-conf.json”下backend的網絡模型

 


免責聲明!

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



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