推荐开源项目:VPP Agent - 强大的VPP管理框架
VPP Agent是一个基于Go语言实现的控制/管理平面,用于处理VPP(Vector Packet Processing)基础的云原生虚拟网络功能(VNF)。该代理构建在CN Infra框架之上,为开发云原生VNF提供了一个理想的平台,例如Contiv-VPP这样的自定义VPP vswitch。
项目状态 请注意,这个仓库的内容是正在进行中!
持续集成与版本信息
此项目经过严格的测试和质量监控:
- 集成测试
- Docker镜像构建
- 覆盖率报告
查看最新发布说明获取详细变更记录。
快速启动
要快速体验VPP Agent,可使用Docker Hub上的预构建镜像:
docker run -it --rm --name agent1 --privileged ligato/vpp-agent
之后,你可以通过agentctl
管理VPP代理:
docker exec -it agent1 agentctl status
架构和技术分析
VPP Agent是一系列VPP特定插件的集合,利用CN-Infra框架与其他云端服务进行交互,如键值存储、消息传递、日志仓库等。它提供了一种模型驱动的高层API来暴露VPP的功能给客户端应用。客户端可以通过REST、gRPC API、Etcd或消息总线传输方式访问API。每个北向VPP API(L2、L3、ACL等)由特定的VNF Agent插件实现,将北向API调用转换为南向的低级别VPP二进制API调用。插件通过GoVPP库与VPP进行通信。
以下图片展示了VPP Agent及其在CN-Infra之上的插件架构:
应用场景
VPP Agent适用于任何基于VPP的数据平面构建的云原生VNF,作为管理和控制平面。它可以作为现成的VNF管理代理,或者作为构建定制化VNF的框架。例如,在Contiv-VPP中,VPP Agent被用来实现网络交换机功能。
项目特点
- 基于CN-Infra框架,支持云原生环境
- 提供模型驱动的北向API,易于理解和使用
- 多种通信协议支持,包括HTTP、gRPC、Etcd等
- 高度可扩展性,允许添加自定义插件和扩展
- 支持容器化的部署和运行,方便集成到现代IT基础设施
- 紧密集成VPP,高效利用其强大的包处理能力
加入我们,一起探索并贡献VPP Agent的无限可能吧!