k8s Calico 网络模式总结

目录

Overlay

calico网络模式:

Pod IP对外暴露

不对外暴露:

实现对外暴露的方法:

overlay模式下的网络MTU 

Iptables & ipvs

overlay的主要缺点:

Full-mesh

Unoverlay 

Reflect route (Full-mesh + RR)

TOR (禁用Full-mesh)

underlay


Overlay


calico网络模式:

  •         Vxlan 
  •         IPIP  
  •         IpCrossubnet

总结:在一些小型网络或简单网络拓扑中,IPIP 可能具有更好的性能和简单性;而在大规模网络或需要多租户支持和网络隔离的环境中,VXLAN 则可能更适合。

Pod IP对外暴露

优点:

  1. 避免出站连接的 SNAT 对于集成现有的更广泛的安全要求可能至关重要。它还可以简化调试和操作日志的理解。
  2.  如果您有专门的工作负载,这意味着需要直接访问某些 pod,而无需通过 Kubernetes 服务或 Kubernetes 入口,那么可路由 pod IP 在操作上可能比使用主机联网 pod 的替代方案更简单。

缺点:

  1. 缺点是 Pod IP 在更广泛的网络中必须是唯一的。例如,如果运行多个集群,您将需要为每个集群中的 Pod 使用不同的 IP 地址范围 (CIDR)。
  2. 当大规模运行时,或者企业对 IP 地址空间存在其他重大需求时,这反过来可能会导致 IP 地址范围耗尽的挑战。

不对外暴露:


优点:

  1. Kubernetes 将使用一种称为 SNAT(源网络地址转换)的技术来更改源 IP地址从 Pod 的 IP 地址到托管 Pod 的节点的 IP 地址。连接上的任何返回数据包都会自动映射回 pod IP 地址。因此,Pod 不知道 SNAT 正在发生,连接的目的地将该节点视为连接的源,而底层更广泛的网络永远不会看到 Pod IP 地址。安全
  2. 只能通过 Kubernetes 服务或 Kubernetes 入口来完成。集群外部的任何内容都无法直接连接到 Pod IP 地址,因为更广泛的网络不知道如何将数据包路由到 Pod IP 地址

实现对外暴露的方法:

  1. 利用BGP网络协议,使用TOR模式(Top-of-Rack)。允许 Calico 与物理网络对等以交换路由。从而形成一个非覆盖网络。 需要进行企业网络配置
  2. CNI插件云服务商提供

overlay模式下的网络MTU 

     IP in IP 使用 20 字节标头,IPv4 VXLAN 使用 50 字节标头,IPv6 VXLAN 使用 70 字节标头,IPv4 WireGuard 使用60 字节标头,IPv6 WireGuard 使用 80 字节标头

Iptables & ipvs

   如果您要扩展超过 1,000 个服务,则值得考虑使用 kube-proxy IPVS 模式潜在的性能改进。Comparing kube-proxy modes: iptables or IPVS?

overlay的主要缺点:

  1. 对性能有轻微影响。封装数据包的过程需要占用少量 CPU,并且数据包中需要额外的字节来对封装进行编码(VXLAN 或 IP-in-IP header),从而减少了可发送的内部数据包的最大大小,从而可以减少内部数据包的大小。意味着需要为相同数量的总数据发送更多数据包。
  2. Pod IP 地址在集群外部不可路由

    flannel:
        Vxlan
        Hostgatway 
        UDP

Full-mesh

    全网格非常适合 100 个或更少节点的中小型部署,但在规模明显更大时,全网格的效率会降低,我们建议使用路由反射器。


 

Unoverlay 


Reflect route (Full-mesh + RR)


备注:需要添加一台新机器,或者是将要设置RR的机器流量摘除,否则会影响之前建立的BGP连接大约2秒的中断时间

TOR (禁用Full-mesh)

 备注: IBGP & EBGP 结合使用,集群大于100个节点以后使用TOR模式可以带来很好的性能


underlay

  1. Macvlan  一块网卡虚拟多个网卡,每个网卡都有独立的mac地址。共享广播域 
  2. macvlan 模式将容器的网络接口直接映射到宿主机上的物理网络接口,容器使用宿主机的 MAC 地址进行通信,可以像物理设备一样在网络中被识别和访问。

相关推荐

  1. k8s Calico 网络模式总结

    2024-04-03 11:02:04       26 阅读
  2. <span style='color:red;'>K</span><span style='color:red;'>8</span>S<span style='color:red;'>网络</span>

    K8S网络

    2024-04-03 11:02:04      32 阅读
  3. k8s实践总结

    2024-04-03 11:02:04       23 阅读
  4. k8s部署模板

    2024-04-03 11:02:04       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-03 11:02:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-03 11:02:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-03 11:02:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-03 11:02:04       20 阅读

热门阅读

  1. k8s 安装

    2024-04-03 11:02:04       15 阅读
  2. 4.2作业

    4.2作业

    2024-04-03 11:02:04      15 阅读
  3. 【蓝桥杯第十一届省赛B】(部分详解)

    2024-04-03 11:02:04       16 阅读
  4. C++经典面试题目(二十)

    2024-04-03 11:02:04       13 阅读
  5. 【BUG】vue中@change时间传值丢失问题

    2024-04-03 11:02:04       16 阅读
  6. 什么是原生IP和广播IP

    2024-04-03 11:02:04       15 阅读
  7. 【python】网络爬虫基础

    2024-04-03 11:02:04       15 阅读
  8. STC8H8K64U 学习笔记 - 与上位机通信

    2024-04-03 11:02:04       12 阅读
  9. 深入了解Flutter中Overlay的介绍以及使用

    2024-04-03 11:02:04       15 阅读
  10. 【linux】常用命令及选项含义+ 英文全称大全

    2024-04-03 11:02:04       17 阅读