Kubernetes CNI Calico:Route Reflector 模式(RR) calico IPIP切换RR网络模式
1. 概述
Calico 路由反射模式是一种 BGP 互联方案,用于解决大规模网络中路由信息的分发和同步问题。在 Calico 的路由反射模式中,路由反射器(Route Reflectors)被用来集中管理路由信息,以减少网络中的路由信息数量和减小路由信息的分发规模。
在 Calico 的路由反射模式中,路由反射器会收集来自其他节点的路由信息,并将其保存在本地。然后,这些路由信息会被分发给其他节点,以便它们能够学习到所有可达的路由。由于路由反射器集中管理路由信息,因此可以大大减少网络中的路由信息数量和分发规模,从而提高网络的性能和可扩展性。
在 Calico 的路由反射模式中,如果某个节点需要发送数据到一个目标节点,但是它无法直接到达目标节点(例如,目标节点处于不同的机架或不同的网络中),那么它会将数据发送给一个路由反射器。然后,路由反射器会将数据转发给适当的节点,以确保数据能够到达目标节点
1.1 安装 calicoctl工具
Calico RR 所有配置操作都需要通过 calicoctl 工具来完成, calicoctl 允许从命令创建,读取,更新和删除 Calico 对象,所以我们首先需要在 Kubernetes 所有的工作节点上安装 calicoctl 工具。
采用二进制方式安装 calicoctl 工具。
版本号选择自己 calico 的版本。
# https://github.com/projectcalico/calicoctl/releases/
kubectl get deployment -n kube-system calico-kube-controllers -o yaml | grep image #查看calico版本
curl -O -L https://github.com/projectcalico/calicoctl/releases/download/v3.17.2/calicoctl
mv calicoctl-linux-amd64 /usr/local/bin/calicoctl
chmod +x /usr/local/bin/calicoctl
export CALICO_DATASTORE_TYPE=kubernetes
export CALICO_KUBECONFIG=~/.kube/config
如果不希望每次执行 calicoctl 之前都需要设置环境变量,可以将环境变量信息写到永久写入到 /etc/calico/calicoctl.cfg 文件:
mkdir -vp /etc/calico/
apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:
datastoreType: "kubernetes"
kubeconfig: "/root/.kube/config"
1.2 使用 calicoctl 工具
1.1.1 查看所有的BGP节点,若携带右侧参数则能输出AS号,一个编号就是一个自治系统
calicoctl get nodes --output=wide
NAME
name-02
name-03
1.1.2 查看所有的BGP节点状态
[root@calico ~