聊聊 Calico BGP容器网络实践( 三 )

3) Kubernetes的节点打rr-group=rr1的标签
root@master1:~# kubectl get node --show-labels |grep rr1 |grep worker01worker01Readyworker21dv1.23.15beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=worker01,kubernetes.io/os=linux,node-role.kubernetes.io/worker=,rr-group=rr14) 交换机配置

  • BGP建立邻居
  •  BGP Policy,防止对外发布不可信路由
5) 裸金属Kubernetes节点查看BGP状态,Established意味着BGP邻居已经建立 。
root@worker01:~# calicoctl node statusCalico process is running.IPv4 BGP status+--------------+---------------+-------+------------+-------------+| PEER ADDRESS |PEER TYPE| STATE |SINCE|INFO|+--------------+---------------+-------+------------+-------------+| 192.168.1.1| node specific | up| 2023-08-17 | Established || 192.168.1.2| node specific | up| 2023-08-17 | Established |+--------------+---------------+-------+------------+-------------+IPv6 BGP statusNo IPv6 peers found.2. IPAM配置相关信息G行云平台底座和业务的IP分开管理,业务自行决定POD的亲和或反亲和,业务部署在自己的命名空间,不会出现多种业务在同一个命名空间部署的情况 。
在超过20个节点的容器平台,应用POD会频繁发生IP地址借用情况,block的路由聚合效率大幅度降低 。综合考虑交换机性能和容量,地址池的blockSize设置为32,交换机不开启RR特性 。
为确保IP不会被其他业务使用,设定所有地址池的nodeSelector为!all() 。
root@master1:~# calicoctl get ippoolNAMECIDRSELECTORippool-test-01.1.1.0/24!all()ippool-test-11.1.2.0/24!all()ippool-test-21.1.3.0/24!all()ippool-test-31.1.4.0/24!all()在namespace中设定对应annotation 。
apiVersion: v1kind: Namespacemetadata:annotations:cni.projectcalico.org/ipv4pools: '["ippool-test-0"]'name: test3. Calico相关监控Calico监控体系从三个方面进行覆盖 。
  • Calico组件和功能的监控,包含IPPool监控、Felix、Typha等组件监控 。
  • Calico网络边界的监控,主要是跟交换机的网络边界监控 , 网络流量通过可观测平台监控,网络控制面依赖于BGP报文的监控 。
  • 容器平台网络固有的监控 , 跟采用哪种CNI插件无关 。如Calico相关POD健康与否、业务POD网络状态、容器节点网络信息等 。

聊聊 Calico BGP容器网络实践

文章插图
图三 Calico监控体系
Calico BGP模式相关思考建设方面:Calico BGP建设需要多团队的配合 。管理物理网络设备的团队,需全局规划网络设备的BGP信息、AS号和静态路由等 , 技术上避免单台交换机宕机引起路由的震荡(如一对Leaf交换机拥有不同AS号,会造成路由震荡);管理云平台的团队 , 需要合理配置iBGP和IPPool,避免发布非法路由,影响其他网络设备 。
运维方面:变更管理/故障管理需云和网配合进行,明确双方分工和问题界定,紧密协作 。比如管理云平台的团队配置BGP Filter功能,物理网络设备配置BGP Policy , 防止对外发布非法路由,形成双保险 。在技术探索过程中,引入可观测平台全链路流量和BGP监控等工具 , 最大程度将问题边界描述清晰,并提高运维效率 。
后续细化Calico BGP监控指标 , 探索Calico eBPF数据面的实现,弱化iptables对网络的影响 。




推荐阅读