1、calicoctl客户端工具
calicoctl管理工具能够与calico datastore进行交互,用于管理calico系统的各种资源。
获取地址:https://github.com/projectcalico/calicoctl/releases
[root@kube-master01 calico]# mv calicoctl-linux-amd64 /usr/bin
[root@kube-master01 calico]# chmodd +x /usr/bin/calicoctl
也可以应用和编辑calico相关的资源
如查看POD网段使用情况:
2、BGP Reflector
默认设置下,所有节点均为对等节点,相互交换路由信息,在网络规模较小时影响不大,但是当网络规模扩大,一个节点 的路由会广播到其他所有节点,会造成性能瓶颈。
BGP Reflector可以将节点设置为BGP Reflector,各节点只需和这个节点建立BGP对等体,相互通告路由,大量减少通告路由。
2.1、配置反射器
如将kube-node01作为BGP Reflector
配置BGP Reflector: 编辑calico Node资源
apiVersion: projectcalico.org/v3
kind: Node
metadata:
labels:
route-reflector: true #标签,后面的bgppeer根据该标签选择,bgp Reflector
name: kube-node01 #节点名城
spec:
bgp:
ipv4Address: 10.0.2.201/24 #node节点IP
ipv4IPIPTunnelAddr: 10.200.2.0 #tunl0接口ip
routeReflectorClusterID: 1.1.1.1 #反射器标志
View Code
配置BPGPeer,同一BGP路由集群中的各节点,都需要成为Reflector的对等节点。
kind: BGPPeer
apiVersion: projectcalico.org/v3
metadata:
name: bgppeer
spec:
nodeSelector: all() #所有节点
peerSelector: route-reflector=="true"
View Code
[root@kube-master01 calico]# calicoctl apply -f node.yaml
[root@kube-master01 calico]# cat bgppeer.yaml
可以看到,每个节点与kube-node01(10.0.2.201)都建立了对等体关系
2.2、配置了BGP Reflector和BGPPeer,可以将原来的node-to-node的网络对等关系关闭,默认是开启的
apiVersion: projectcalico.org/v3
kind: BGPConfiguration
metadata:
name: default
spec:
logSeverityScreen: Info #日志级别
nodeToNodeMeshEnabled: false #关闭默认的node-to-node网络
asNumber: 64000 #AS ID
View Code
[root@kube-master01 calico]# calicoctl apply -f default-bgpconfiguration.yaml
看到其余节点只与kube-node01建立了对等关系
3、检查路由和访问
路由和访问均正常
由于只配置了一个BGP Reflector,这个节点如果出现异常将导致节点到其他节点POD网络的路由消失,例如关闭kube-node01后,
因此最好根据规模,配置两个以上的BGP Reflector,保证高可用