K8S Calico网络插件之BGP模式

本文介绍了如何将Calico网络从默认的IPIP模式切换到BGP模式,包括修改IPPool配置和环境变量的方法。BGP模式下,报文直接通过节点接口转发,提高了性能,但限制于同子网通信。同时,文章讨论了混合模式,即CrossSubnet模式,允许在同一集群中结合IPIP和BGP的优势。
摘要由CSDN通过智能技术生成

注:本文基于Calico v3.20.1版本编写

1 切换到BGP模式

因为按照官网的配置文件部署calico时,默认使用的是IPIP模式,如果需要使用BGP模式,就要做一些修改。

主要有两种方式,

  1. 修改IPPool中的ipipMode为Never,也就是禁用IPIP模式
[root@master home]# kubectl edit ippool

  ipipMode: Never

也可以使用calicoctl或者kubectl命令修改,

[root@master home]# kubectl get ippool
NAME                  AGE
default-ipv4-ippool   14d
[root@master home]# calicoctl patch ippool default-ipv4-ippool -p '{"spec":{"ipipMode": "Never"}}'

[root@master home]# kubectl patch ippool default-ipv4-ippool -p '{"spec":{"ipipMode": "Never"}}' --type=merge
  1. 修改CALICO_IPV4POOL_IPIP为Never,不过这种方式只适用于第一次部署,也就是如果已经部署了IPIP模式,这种方式就不奏效了,除非把calico删除,修改配置后重新部署
- name: CALICO_IPV4POOL_IPIP
  value: "Never"

2 BGP模式下calico的工作原理

相比IPIP模式,BGP模式下不需要tunl0设备参与报文传输,我们从路由表信息就能看出差别,

[root@master ~]# route -n #BGP模式
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 ens33
10.244.104.0    192.168.0.112   255.255.255.192 UG    0      0        0 ens33
10.244.166.128  192.168.0.111   255.255.255.192 UG    0      0        0 ens33
...
[root@master home]# route -n #IPIP模式
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 ens33
10.244.104.0    192.168.0.112   255.255.255.192 UG    0      0        0 tunl0
10.244.166.128  192.168.0.111   255.255.255.192 UG    0      0        0 tunl0
...

可见,在BGP模式下,报文直接通过ens33转发到目标机器上,不会进行二次ip报文的封装,因此从性能上来看,BGP肯定是占优的。但是,也正是没有二次封包,BGP模式只能在同个子网内使用,无法跨网段。

3 混合模式

那是否可以结合IPIP模式和BGP模式,使得同个子网内的通信使用BGP模式,跨网段时使用IPIP模式呢,当然是可以的。我们只需要把IPPool中的ipipMode为CrossSubnet即可,

[root@master home]# kubectl patch ippool default-ipv4-ippool -p '{"spec":{"ipipMode": "CrossSubnet"}}' --type=merge

参考文档:

  1. https://docs.projectcalico.org/reference/node/configuration
  2. https://docs.projectcalico.org/networking/vxlan-ipip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值