企业运维----Docker-kubernetes-网络通信

本文介绍了Kubernetes中Docker网络的基础,重点对比了flannel和Calico两种网络插件。flannel使用了UDP、VXLAN和host-gw三种模式,其中VXLAN是主流,但性能有限。而Calico则创建一个扁平的三层网络,提供高效路由和强大的网络策略。在小规模部署中,Calico通过BGP client互联,大规模部署时采用Route Reflector。此外,Calico的网络策略可以实现更精细的访问控制。
摘要由CSDN通过智能技术生成


简介

k8s的网络基于第三方插件实现,但是定义了一些插件兼容规范,该规范有CoreOS和Google联合定制,叫做 CNI(Container Network Interface)。

flannel

Flannel 网络模型 (后端),Flannel目前有三种方式实现 UDP/VXLAN/host-gw

  1. UDP:早期版本的Flannel使用UDP封装完成报文的跨越主机转发,其安全性及性能略有不足。
  2. VXLAN:Linux 内核在在2012年底的v3.7.0之后加入了VXLAN协议支持,因此新版本的Flannel也有UDP转换为 VXLAN,VXLAN本质上是一种tunnel(隧道)协议,用来基于3层网络实现虚拟的2层网络,目前flannel 的网络模型已 经是基于VXLAN的叠加(覆盖)网络。
  3. Host-gw:也就是Host GateWay,通过在node节点上创建到达各目标容器地址的路由表而完成报文的转发,因此这种 方式要求各node节点本身必须处于同一个局域网(二层网络)中,因此不适用于网络变动频繁或比较大型的网络环境,但是 其性能较好。

Flannel 组件的解释

  1. Cni0:网桥设备,每创建一个pod都会创建一对 veth pair,其中一端是pod中的eth0,另一端是Cni0网桥中的端口 (网卡),Pod中从网卡eth0发出的流量都会发送到Cni0网桥设备的端口(网卡)上,Cni0 设备获得的ip地址是该节 点分配到的网段的第一个地址。
  2. Flannel.1: overlay网络的设备,用来进行vxlan报文的处理(封包和解包),不同node之间的pod数据流量都从 overlay设备以隧道的形式发送到对端。

Flannel vxlan模式跨主机通信原理
在这里插入图片描述

calico

Calico创建和管理一个扁平的三层网络(不需要overlay),每个容器会分配一个可路由的IP。由于通信时不需要解包和封包,网络性能损耗小,易于排查,且易于水平扩展。

小规模部署时可以通过BGP client直接互联,大规模下可通过指定的BGP Route Reflector来完成,这样保证所有的数据流量都是通过IP路由的方式完成互联的。

Calico基于iptables还提供了丰富而灵活的网络Policy,保证通过各个节点上的ACL来提供Workload的多租户隔离、安全组以及其他可达性限制等功能。

calico替换flannel

上传镜像
请添加图片描述
从网上下载calico.yaml

[root@server2 ~]# mkdir calico
[root@server2 ~]# cd calico/
[root@server2 calico]# vim calico.yaml 


3547           image: calico/cni:v3.19.1
3574           image: calico/cni:v3.19.1
3615           image: calico/po
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值