metallb frr-k8s 调研
参考文档
框架图
部署 k8s-frr 模式后,相当于把原先存在于speaker中的 frr 单独剥离出来,放到 frr daemon中,speaker 只管将 bgp 相关的 yaml (bgpadv, bgppeer…)转换成 frrconfiguration 的yaml,然后由frr daemon读取frrconfiguration的yaml 去配置 frr。
并且还有好处可以直接配置raw frrconfiguration 配置 frr,不依赖于metallb speaker的转换了。看起来做这个功能卖点也在着,可能用户可以开发些自定义的组件去配置frrconfiguration,去自定义 frr 中的配置。
社区版本安装
metallb + frr-k8s 安装
values.yaml 文件获取命令
wget https://raw.githubusercontent.com/metallb/metallb/v0.14.5/charts/metallb/values.yaml
speaker:
frr:
enabled: false
frrk8s:
enabled: true
修改上面两个字段在apply
helm repo add metallb https://metallb.github.io/metallb
helm install metallb metallb/metallb -f values.yaml
安装完成
metallb-frr-k8s 即为 frr配置转换的那个daemon
如果单独安装 frr-k8s
kubectl apply -f https://raw.githubusercontent.com/metallb/frr-k8s/v0.0.11/config/all-in-one/frr-k8s.yaml
metallb-operator安装另参考
metallb.universe.tf/installatio…
FRR-k8s 用例yaml
apiVersion: metallb.io/v1beta1
kind: BGPAdvertisement
metadata:
name: example
spec:
ipAddressPools:
- first-pool
---
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: first-pool
spec:
addresses:
- 192.168.129.208/32
---
apiVersion: metallb.io/v1beta2
kind: BGPPeer
metadata:
name: test
spec:
myASN: 64501
peerASN: 64500
peerAddress: 192.168.176.41
配置后可以看到frr-configuration自动生成,
详情yaml查看:
frr 配置文件路径
kubectl exec -it metallb-frr-k8s-sp7m7 -- cat /etc/frr_reloader/frr.conf
frr-k8s的热度
看issue 和 pr ,频率都比较低
pr 的频率
issue 的 频率也比较低,从2024开始才提了20个左右。
我提了个issue给社区
github.com/metallb/met…