如何优雅的使用Calico 路由反射模式
589 字
3 分钟
如何优雅的使用Calico 路由反射模式
1 原理
[!info] 同一集群内的客户机只需要与该集群的 RR 直接交换路由信息,因此客户机只需要与 RR 之间建立 IBGP 连接,不需要与其他客户机建立 IBGP 连接,从而减少了 IBGP 连接数量。并采用独有的 Cluster_List 属性和 Originator_ID 属性防止路由环路。RR 向 IBGP 邻居发布路由规则如下:
- 从非客户机学到的路由,发布给所有客户机。
- 从客户机学到的路由,发布给所有非客户机和客户机(发起此路由的客户机除外)。
- 从 EBGP 对等体学到的路由,发布给所有的非客户机和客户机。
2 配置 Calico
2.1 关闭 node-to-node BGP 网络
[!info] 为保证 IBGP 对等体之间的连通性,需要在 IBGP 对等体之间建立全连接关系。假设在一个 AS 内部有 n 台设备,那么建立的 IBGP 连接数就为 n(n-1)/2。当设备数目很多时,设备配置将十分复杂,而且配置后网络资源和 CPU 资源的消耗都很大。Calico 默认是 Full-mesh 全互联模式,需要关闭
cat > gpconfiguration.yaml << EOFapiVersion: projectcalico.org/v3kind: BGPConfigurationmetadata: name: defaultspec: logSeverityScreen: Warning nodeToNodeMeshEnabled: False asNumber: 63456EOFcalicoctl apply -f gpconfiguration.yaml2.1.1 查看
calicoctl get bgpconfigNAME LOGSEVERITY MESHENABLED ASNUMBERdefault Warning false 64512calicoctl node statusCalico process is running.
IPv4 BGP statusNo IPv4 peers found.
IPv6 BGP statusNo IPv6 peers found.2.2 路由反射器配置
# 节点添加标签kubectl label node my-node route-reflector=true
# 搜索带`route-reflector=true`标签的节点为路由反射节点
cat > peer-with-route-reflectors.yaml << EOFkind: BGPPeerapiVersion: projectcalico.org/v3metadata: name: peer-with-route-reflectorsspec: nodeSelector: all() peerSelector: route-reflector == 'true'EOFcalicoctl apply -f peer-with-route-reflectors.yaml2.3 查看 ippool
Tip
CrossSubnet表示跨子网才使用ipip,否则使用 bgp
calicoctl get ippool -o wideNAME CIDR NAT IPIPMODE VXLANMODE DISABLED DISABLEBGPEXPORT SELECTORdefault-ipv4-ippool 192.168.0.0/16 true CrossSubnet Never false false all()3 查看节点状态
calicoctl node statusCalico process is running.
IPv4 BGP status+--------------+---------------+-------+----------+-------------+| PEER ADDRESS | PEER TYPE | STATE | SINCE | INFO |+--------------+---------------+-------+----------+-------------+| 10.0.0.2 | node specific | up | 10:40:46 | Established || 10.0.0.3 | node specific | up | 10:40:48 | Established |4 测试
测试,随便找个 pod ping 不同节点的 pod
5 问题
[!question] calico 查看节点信息一直 start 状态
检测此 ip 的 179 端口能否访问,如果访问不了检查 ip 能不能通信,如果不能就是这节点网络问题,如果可以检查 calico 组件状态与节点配置
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章 智能推荐
1
Calico多集群通信
🐳云原生 Calico 实现多集群通信
2
OpenClaw安装
💻Linux 龙虾安装笔记
3
Kubespray 国内安装k8s集群
🐳云原生 最可靠的k8s安装工具
4
如何安全的备份Kubernetes
🐳云原生 如何安全的备份Kubernetes
5
KubeSsphere 4 使用
🐳云原生 KubeSsphere 4 使用记录
随机文章 随机推荐