You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装Kubernetes时kube-proxy启动失败,涉及nf_conntrack_max文件不存在及模块加载失败问题

安装Kubernetes时kube-proxy启动失败,涉及nf_conntrack_max文件不存在及模块加载失败问题

看起来你在部署Kubernetes的过程中碰到了kube-proxy启动卡壳的问题,核心痛点是找不到/proc/sys/net/netfilter/nf_conntrack_max文件,而且尝试加载nf_conntrack模块也失败了。我帮你梳理下问题细节和可行的解决思路:

问题现象

首先先把你遇到的错误信息整理出来,方便定位:

kube-proxy启动报错日志:

I0603 18:53:21.135178       1 server_others.go:69] "Using iptables proxy"
I0603 18:53:21.150071       1 node.go:141] Successfully retrieved node IP: 10.97.160.111
I0603 18:53:21.166703       1 conntrack.go:100] "Set sysctl" entry="net/netfilter/nf_conntrack_max" value=524288
E0603 18:53:21.166740       1 server.go:537] "Error running ProxyServer" err="open /proc/sys/net/netfilter/nf_conntrack_max: no such file or directory"
E0603 18:53:21.166760       1 run.go:74] "command failed" err="open /proc/sys/net/netfilter/nf_conntrack_max: no such file or directory"

加载模块失败的命令输出:

root@staging:/home/hpeoneview# sudo modprobe nf_conntrack
modprobe: FATAL: Module nf_conntrack not found in directory /lib/modules/5.4.0-144-generic

root@staging:/home/hpeoneview# uname -a
Linux hpeoneview-staging 5.4.0-144-generic #161-Ubuntu SMP Fri Feb 3 14:49:04 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

问题原因

这个问题本质是你的系统内核缺少nf_conntrack相关的模块支持,或者内核编译时没有开启对应的配置选项,导致kube-proxy无法找到它需要的sysctl文件和内核模块。

解决步骤

1. 先安装对应内核版本的头文件

内核模块的加载依赖对应版本的内核头文件,先确保你的系统已经安装:

sudo apt update
sudo apt install linux-headers-$(uname -r)

2. 尝试加载拆分后的conntrack模块

在部分内核版本中,nf_conntrack被拆分成了IPv4和IPv6单独的模块,你可以试试加载这两个:

sudo modprobe nf_conntrack_ipv4
sudo modprobe nf_conntrack_ipv6

加载完成后检查目标文件是否存在:

ls /proc/sys/net/netfilter/nf_conntrack_max

3. 检查内核编译配置

如果上述模块还是无法加载,需要确认你的内核是否开启了CONFIG_NF_CONNTRACK选项:

grep CONFIG_NF_CONNTRACK /boot/config-$(uname -r)
  • 如果输出是CONFIG_NF_CONNTRACK=m或者CONFIG_NF_CONNTRACK=y,说明内核支持该模块;
  • 如果没有输出或者是# CONFIG_NF_CONNTRACK is not set,那你要么需要重新编译开启该选项的内核,要么更换一个支持该配置的内核版本。

4. 测试环境临时绕过(生产不推荐)

如果只是测试环境想快速推进,可以临时修改kube-proxy的配置,关闭conntrack相关设置:

  1. 编辑kube-proxy的ConfigMap:
kubectl edit configmap kube-proxy -n kube-system
  1. 在config.conf部分添加或修改如下配置:
conntrack:
  maxPerCore: 0
  min: 0
  tcpCloseWaitTimeout: 0s
  tcpEstablishedTimeout: 0s
  1. 重启kube-proxy的daemonset:
kubectl rollout restart daemonset kube-proxy -n kube-system

备注:内容来源于stack exchange,提问作者Sandeep Lade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 11:28:10