高级功能 | 了解手动编译 FastPath 模块

2022-11-29 16:00:29 浏览数 (1)

" 如果你怀念 SDN 领域丰富的网络能力却在云原生领域苦苦追寻而不得,那么 Kube-OVN 将是你的最佳选择。本系列我们将逐个介绍Kube-OVN高级功能的工作原理及使用路径,帮你尽快征服容器网络难题!"

经过数据平面的性能 Profile,Netfilter 在容器内和宿主机上的相关处理消耗了 20% 左右的 CPU 资源,FastPath 模块可以绕过 Netfilter 从而 降低 CPU 的消耗和延迟,并提升吞吐量。本文档将介绍如何手动编译 FastPath 模块。

下载相关内核模块代码

代码语言:javascript复制
git clone --depth=1 https://github.com/kubeovn/kube-ovn.git

安装依赖

这里以 CentOS 为例下载相关依赖:

代码语言:javascript复制
yum install -y kernel-devel-$(uname -r) gcc elfutils-libelf-devel

编译相关模块

针对 3.x 的内核:

代码语言:javascript复制
cd kube-ovn/fastpath
make all

针对 4.x 的内核:

代码语言:javascript复制
cd kube-ovn/fastpath/4.18
cp ../Makefile .
make all

安装内核模块

将 kube_ovn_fastpath.ko 复制到每个需要性能优化的节点,执行下列命令:

代码语言:javascript复制
insmod kube_ovn_fastpath.ko

使用 dmesg 确认安装成功:

代码语言:javascript复制
# dmesg
[619631.323788] init_module,kube_ovn_fastpath_local_out
[619631.323798] init_module,kube_ovn_fastpath_post_routing
[619631.323800] init_module,kube_ovn_fastpath_pre_routing
[619631.323801] init_module,kube_ovn_fastpath_local_in

如需卸载模块,可使用下列命令:

代码语言:javascript复制
rmmod kube_ovn_fastpath.ko

*该模块在机器重启后不会自动加载,如需自动加载请根据系统弄配置编写相应自启动脚本。

更多功能介绍,请见Kube-OVN 最新中文文档(点击阅读原文):https://kubeovn.github.io/docs/v1.10.x/

0 人点赞