6.4. 路由公告设置示例
作为集群管理员,您可以为集群配置以下示例路由公告设置。此配置旨在作为演示如何配置路由广告的示例。
6.4.1. 路由公告设置示例 复制链接链接已复制到粘贴板!
作为集群管理员,您可以为集群启用边框网关协议(BGP)路由支持。此配置旨在作为演示如何配置路由广告的示例。配置使用路由反映而不是完整的网格设置。
BGP 路由只在裸机基础架构上被支持。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
以具有
cluster-admin
权限的用户身份登录集群。 - 集群安装在裸机基础架构上。
- 您有一个裸机系统,可访问集群,在其中计划运行 FRR 守护进程容器。
流程
运行以下命令确认启用了
RouteAdvertisements
功能门:oc get featuregate -oyaml | grep -i routeadvertisement
$ oc get featuregate -oyaml | grep -i routeadvertisement
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
- name: RouteAdvertisements
- name: RouteAdvertisements
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令配置 Cluster Network Operator (CNO):
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CNO 重启所有节点可能需要几分钟时间。
运行以下命令,获取节点的 IP 地址:
oc get node -owide
$ oc get node -owide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,获取每个节点的默认 pod 网络:
oc get node <node_name> -o=jsonpath={.metadata.annotations.k8s\\.ovn\\.org/node-subnets}
$ oc get node <node_name> -o=jsonpath={.metadata.annotations.k8s\\.ovn\\.org/node-subnets}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{"default":["10.129.0.0/23"],"ns1.udn-network-primary-layer3":["10.150.6.0/24"]}
{"default":["10.129.0.0/23"],"ns1.udn-network-primary-layer3":["10.150.6.0/24"]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在裸机虚拟机监控程序上,运行以下命令来获取要使用的外部 FRR 容器的 IP 地址:
ip -j -d route get <a cluster node's IP> | jq -r '.[] | .dev' | xargs ip -d -j address show | jq -r '.[] | .addr_info[0].local'
$ ip -j -d route get <a cluster node's IP> | jq -r '.[] | .dev' | xargs ip -d -j address show | jq -r '.[] | .addr_info[0].local'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 FRR 创建一个
frr.conf
文件,其中包含每个节点的 IP 地址,如下例所示:frr.conf
配置文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为 daemon
的文件
,其中包含以下内容:守护进程
配置文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
frr.conf
和守护进程
文件保存在同一目录中,如/tmp/frr
。 运行以下命令来创建外部 FRR 容器:
sudo podman run -d --privileged --network host --rm --ulimit core=-1 --name frr --volume /tmp/frr:/etc/frr quay.io/frrouting/frr:9.1.0
$ sudo podman run -d --privileged --network host --rm --ulimit core=-1 --name frr --volume /tmp/frr:/etc/frr quay.io/frrouting/frr:9.1.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建以下
FRRConfiguration
和RouteAdvertisements
配置:创建一个包含以下内容的
receive_all.yaml
文件:receive_all.yaml
配置文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个包含以下内容的
ra.yaml
文件:ra.yaml
配置文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
运行以下命令应用
receive_all.yaml
和ra.yaml
文件:for f in receive_all.yaml ra.yaml; do oc apply -f $f; done
$ for f in receive_all.yaml ra.yaml; do oc apply -f $f; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证配置是否已应用:
运行以下命令验证
FRRConfiguration
配置是否已创建:oc get frrconfiguration -A
$ oc get frrconfiguration -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证
RouteAdvertisements
配置是否已创建:oc get ra -A
$ oc get ra -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS default Accepted
NAME STATUS default Accepted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
运行以下命令来获取外部 FRR 容器 ID:
sudo podman ps | grep frr
$ sudo podman ps | grep frr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
22cfc713890e quay.io/frrouting/frr:9.1.0 /usr/lib/frr/dock... 5 hours ago Up 5 hours ago frr
22cfc713890e quay.io/frrouting/frr:9.1.0 /usr/lib/frr/dock... 5 hours ago Up 5 hours ago frr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您在上一步中获取的容器 ID 检查外部 FRR 容器的
vtysh
会话中的 BGP 邻居和路由。运行以下命令:sudo podman exec -it <container_id> vtysh -c "show ip bgp"
$ sudo podman exec -it <container_id> vtysh -c "show ip bgp"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,为每个集群节点查找
frr-k8s
pod:oc -n openshift-frr-k8s get pod -owide
$ oc -n openshift-frr-k8s get pod -owide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 OpenShift Container Platform 集群中,运行以下命令来检查 FRR 容器中集群节点
frr-k8s
pod 上的 BGP 路由:oc -n openshift-frr-k8s -c frr rsh frr-k8s-86wmq
$ oc -n openshift-frr-k8s -c frr rsh frr-k8s-86wmq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,检查集群节点的 IP 路由:
vtysh
sh-5.1# vtysh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Hello, this is FRRouting (version 8.5.3). Copyright 1996-2005 Kunihiro Ishiguro, et al.
Hello, this is FRRouting (version 8.5.3). Copyright 1996-2005 Kunihiro Ishiguro, et al.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令检查 IP 路由:
worker-2# show ip bgp
worker-2# show ip bgp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 OpenShift Container Platform 集群中,运行以下命令来调试节点:
oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Temporary namespace openshift-debug-lbtgh is created for debugging node... Starting pod/worker-2-debug-zrg4v ... To use host binaries, run `chroot /host` Pod IP: 192.168.111.25 If you don't see a command prompt, try pressing enter.
Temporary namespace openshift-debug-lbtgh is created for debugging node... Starting pod/worker-2-debug-zrg4v ... To use host binaries, run `chroot /host` Pod IP: 192.168.111.25 If you don't see a command prompt, try pressing enter.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令确认 BGP 路由正在公告:
ip route show | grep bgp
sh-5.1# ip route show | grep bgp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow