初始化k8s报错如下:

[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`

错误原因

初始化Kubernetes集群时的错误,是/proc/sys/net/bridge/bridge-nf-call-iptables文件不存在的问题。
这个错误通常发生在Linux系统中,当系统没有加载br_netfilter模块时,因为该模块负责创建bridge-nf-call-iptables相关的sysctl参数。
Kubernetes要求节点启用bridge-nf-call-iptables规则,以确保Pod网络流量能被正确转发。该规则由br_netfilter内核模块控制,若模块未加载或参数未配置,会导致此错误。

解决方案:

1. 加载内核模块

sudo modprobe br_netfilter

2. 持久化模块加载(重启后生效)

echo 'br_netfilter' | sudo tee /etc/modules-load.d/br_netfilter.conf

3. 配置sysctl参数

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

4. 应用sysctl配置

sudo sysctl --system

5. 验证配置

# 检查模块是否加载
lsmod | grep br_netfilter

# 检查参数值
sysctl net.bridge.bridge-nf-call-iptables

6. 重新初始化Kubernetes

sudo kubeadm init

附加说明

云服务器/虚拟机用户:

某些云平台默认禁用桥接流量转发,需确保安全组/防火墙允许相关流量。

Docker用户:若已安装Docker,需在/etc/docker/daemon.json中添加:

{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "iptables": false
}
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐