10分钟上手oncn-bwm:从安装到配置的快速入门教程
10分钟上手oncn-bwm从安装到配置的快速入门教程【免费下载链接】oncn-bwmPod bandwidth management in mixed deployment scenarios of online and offline services项目地址: https://gitcode.com/openeuler/oncn-bwm前往项目官网免费下载https://ar.openeuler.org/ar/想要在Kubernetes环境中实现智能带宽管理吗oncn-bwmOpenEuler Bandwidth Management正是您需要的解决方案这个强大的开源工具专门为在线和离线混合部署场景设计能够智能区分业务优先级确保在线业务获得所需带宽的同时充分利用网络资源。在本文中我将为您提供完整的oncn-bwm安装与配置指南帮助您在10分钟内快速上手这个高效的Pod带宽管理工具。为什么选择oncn-bwm oncn-bwm是一个基于eBPF技术的高性能带宽管理工具专为Kubernetes环境中的在线和离线业务混合部署场景设计。它通过智能的优先级区分和动态带宽调整机制确保关键业务获得稳定的网络性能同时充分利用空闲带宽资源。核心功能亮点 ✨智能优先级管理自动区分在线业务优先级0和离线业务优先级-1动态带宽调整根据在线业务负载自动调整离线业务可用带宽双向流量控制支持出向egress和入向ingress流量管理细粒度控制基于cgroup和IP地址的精确流量分类实时监控提供详细的流量统计信息和性能指标快速安装指南 环境准备在开始安装前请确保您的系统满足以下要求Linux内核版本5.4或更高支持eBPF已安装CMake和GCC编译工具链Kubernetes集群可选用于容器环境部署源码编译安装首先克隆项目仓库并进入项目目录git clone https://gitcode.com/openeuler/oncn-bwm cd oncn-bwm执行编译和安装命令# 编译项目 cmake . make # 创建安装目录 mkdir -p /usr/share/bwmcli # 安装eBPF程序 install -Dpm 0500 bpf/CMakeFiles/bwm_prio_kern.dir/bwm_prio_kern.c.o /usr/share/bwmcli/bwm_prio_kern.o install -Dpm 0500 bpf/CMakeFiles/bwm_tc.dir/bwm_tc.c.o /usr/share/bwmcli/bwm_tc.o install -Dpm 0500 bpf/CMakeFiles/bwm_tc_i.dir/bwm_tc_i.c.o /usr/share/bwmcli/bwm_tc_i.o # 安装命令行工具 install -Dpm 0500 bwmcli /usr/bin install -Dpm 0500 tools/bwm_monitor.bt /usr/bin install -Dpm 0500 tools/bwm_monitor_ingress.bt /usr/binKubernetes环境部署如果您在Kubernetes环境中使用可以使用提供的DaemonSet配置文件快速部署# 应用Kubernetes配置 kubectl apply -f multi_prio_bwm/install/kubernetes/oncn-bwm.yaml这个配置会在每个节点上部署oncn-bwm守护进程自动管理Pod的网络带宽。基础配置教程 ️1. 启用网卡QoS功能首先您需要为网络接口启用QoS功能# 启用eth0网卡的出向QoS bwmcli -e eth0 # 启用所有网卡的出向QoS bwmcli -e # 启用eth0网卡的入向QoS bwmcli -E eth0 # 查询网卡状态 bwmcli -p devs2. 设置Pod网络优先级根据业务类型设置Pod的优先级# 设置在线业务Pod优先级0 bwmcli -s /sys/fs/cgroup/net_cls/online_pod 0 # 设置离线业务Pod优先级-1 bwmcli -s /sys/fs/cgroup/net_cls/offline_pod -1 # 查询优先级设置 bwmcli -p /sys/fs/cgroup/net_cls/online_pod3. 配置带宽限制策略设置离线业务的带宽限制范围# 设置出向离线带宽低带宽20MB高带宽1GB bwmcli -s bandwidth 20mb,1gb # 设置在线业务水线阈值 bwmcli -s waterline 30mb # 查询当前配置 bwmcli -p bandwidth bwmcli -p waterline4. 管理入向流量对于入向流量可以通过IP地址进行管理# 标记IP为离线流量 bwmcli -A 172.17.0.2 # 移除离线标记 bwmcli -R 172.17.0.2实战配置示例 场景1Web服务与批处理任务混合部署假设您有一个Web服务在线业务和批处理任务离线业务运行在同一个节点上# 1. 启用所有网卡QoS bwmcli -e # 2. 设置Web服务Pod为在线业务 bwmcli -s /sys/fs/cgroup/net_cls/web-service 0 # 3. 设置批处理Pod为离线业务 bwmcli -s /sys/fs/cgroup/net_cls/batch-job -1 # 4. 配置带宽策略 bwmcli -s bandwidth 50mb,2gb bwmcli -s waterline 100mb # 5. 监控流量状态 bwmcli -p stats场景2Kubernetes环境配置在Kubernetes中可以通过Pod注解自动配置带宽管理# 示例Pod配置multi_prio_bwm/example/pod.yaml apiVersion: apps/v1 kind: Deployment metadata: name: qostest spec: template: metadata: annotations: oncn-bwm.openeuler.org/egress-bandwidth: {request:600Mb,limit:800Mb,priority:1} oncn-bwm.openeuler.org/ingress-bandwidth: {request:600Mb,limit:800Mb,priority:1} spec: containers: - name: nginx image: nginx:latest监控与调试技巧 实时流量监控使用内置工具查看详细的流量统计信息# 查看出向流量统计 bwmcli -p stats # 查看入向流量统计 bwmcli -P stats输出示例offline_target_bandwidth: 104857600 online_pkts: 982 offline_pkts: 0 online_rate: 28190 offline_rate: 0使用bpftrace工具项目提供了基于bpftrace的监控工具# 监控出向流量 bwm_monitor.bt # 监控入向流量 bwm_monitor_ingress.bt常见问题解答 ❓Q1如何验证oncn-bwm是否正常工作A运行bwmcli -p devs查看网卡状态确认QoS已启用。然后使用bwmcli -p stats查看流量统计信息。Q2带宽限制不生效怎么办A检查以下几点确认网卡QoS已启用bwmcli -p devs验证cgroup路径是否正确检查带宽设置是否在有效范围内1MB-9999GBQ3如何调整水线检测灵敏度Aoncn-bwm默认每10ms检测一次在线带宽。如需调整可以修改eBPF程序中的检测间隔参数。Q4支持哪些网络接口类型Aoncn-bwm支持大多数Linux网络接口包括物理网卡、虚拟网卡veth、bridge等。最佳实践建议 渐进式配置先从较小的带宽限制开始逐步调整到最优值监控先行在应用带宽限制前先监控一段时间的基础流量模式分层管理根据业务重要性设置不同的优先级等级定期评估定期检查流量统计根据实际使用情况调整策略文档记录记录所有配置变更便于问题排查和回滚进阶配置指南 自定义eBPF程序如果您需要更精细的控制可以修改eBPF程序源码bwm_prio_kern.ccgroup优先级设置程序bwm_tc.c出向带宽管理程序bwm_tc_i.c入向带宽管理程序集成CNI插件oncn-bwm提供了CNI插件支持可以与Kubernetes CNI网络无缝集成。参考示例配置进行配置。总结 通过这个10分钟快速入门教程您已经掌握了oncn-bwm的核心功能和基本配置方法。这个强大的带宽管理工具能够帮助您在混合部署环境中实现智能的流量优先级管理确保关键业务的服务质量同时充分利用网络资源。记住良好的带宽管理策略需要根据实际业务负载不断优化。建议您从简单的配置开始逐步调整参数找到最适合您业务场景的配置方案。现在就开始使用oncn-bwm为您的Kubernetes集群带来更智能、更高效的网络带宽管理体验吧 提示更多详细信息和高级配置请参考项目中的官方文档和示例配置。【免费下载链接】oncn-bwmPod bandwidth management in mixed deployment scenarios of online and offline services项目地址: https://gitcode.com/openeuler/oncn-bwm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考