当前位置: 首页 > news >正文

Kubernetes Kernel / sysctl / Kernel Modules 信息汇总 - 小镇

Kubernetes Kernel / sysctl / Kernel Modules 信息汇总

下面给你一份SRE 视角的 Kubernetes Kernel / sysctl / Kernel Modules 设计级汇总(含官方来源 URL),偏“可写规范/可做基线/可审计”的结构,而不是学习笔记。


🧭 1. Kubernetes Linux Kernel & Sysctl & Modules 设计总览

Kubernetes 节点依赖 Linux 内核三大层能力:

层级作用关键点
Kernel Version 提供 feature capability cgroup / nftables / PSI / namespaces
Kernel Modules 提供网络/转发能力 bridge / conntrack / IPVS
sysctl 运行时内核参数调优 networking / memory / ipc

📌 2. Kernel Version Requirements(官方)

官方来源:
👉 https://kubernetes.io/docs/reference/node/kernel-version-requirements/


2.1 Kubernetes 关键 Kernel 能力矩阵

Kernel Feature最低 KernelKubernetes 用途
PSI (Pressure Stall Info) 4.20 资源压力监控
cgroup v2 4.19+(推荐 5.10+) 容器资源管理
nftables kube-proxy 5.13 高性能 Service proxy
mount_setattr 5.12 安全 mount
BPF improvements 5.4+ CNI / observability
user namespaces 5.11+(成熟 6.x) rootless pod

⚙️ 3. sysctl 体系设计(官方)

官方来源:
👉 https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/


3.1 sysctl 分类模型(Kubernetes 官方模型)

类别Pod 可设置kubelet 控制风险
Safe sysctls
Unsafe sysctls ✔(需 allowlist)
Node sysctls OS 管理

3.2 Safe sysctls(典型生产使用)

sysctl作用
net.ipv4.ip_local_port_range 临时端口范围
net.ipv4.tcp_syncookies SYN flood protection
net.ipv4.tcp_fin_timeout TCP 连接回收
net.ipv4.tcp_keepalive_* keepalive
net.ipv4.tcp_rmem / wmem buffer tuning

3.3 Unsafe sysctls(需 kubelet allow)

sysctl用途
kernel.msg* IPC
kernel.shm* shared memory
kernel.sem semaphore
net.core.somaxconn backlog
net.ipv4.route.* routing

3.4 sysctl Pod 配置(官方标准)

spec:securityContext:sysctls:- name: net.core.somaxconnvalue: "65535"

🧱 4. Kernel Modules(Kubernetes 网络核心依赖)

Kubernetes networking 本质依赖 Linux kernel netfilter / bridge / conntrack / IPVS。


4.1 必需 Kernel Modules(生产基础)

Module作用是否必需
br_netfilter bridge traffic → iptables ✔ 必需
bridge Linux L2 bridge ✔ 必需
nf_conntrack 连接跟踪 ✔ 必需
ip_tables iptables framework ✔(iptables模式)
iptable_nat NAT(Service核心) ✔ 必需
iptable_filter filter rules ✔ 必需

4.2 CNI / Overlay 必需

Module作用
vxlan overlay tunneling
geneve 高级 overlay
ipip IP-in-IP tunneling

4.3 kube-proxy IPVS 模式(高性能)

官方来源:
👉 https://kubernetes.io/docs/reference/networking/virtual-ips/#proxy-mode-ipvs

Module作用
ip_vs IPVS core
ip_vs_rr round robin
ip_vs_wrr weighted RR
ip_vs_sh source hash

4.4 deprecated / legacy

Module状态
ip_conntrack ❌ 已被 nf_conntrack 替代

🔗 5. Kubernetes 网络模型官方来源

主题URL
Service / VIP https://kubernetes.io/docs/reference/networking/virtual-ips/
CNI network model https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/
sysctl cluster https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/
kernel requirements https://kubernetes.io/docs/reference/node/kernel-version-requirements/

🧠 6. SRE 级设计总结(重点)

6.1 Kernel 三层依赖关系

Kubernetes Networking Stack│├── Kernel Version (feature capability)├── Kernel Modules (packet processing plane)└── sysctl (runtime tuning plane)

6.2 生产标准建议(经验级)

Kernel

  • 5.10 LTS / 5.15 LTS(推荐)

  • ≥ 4.19(最低生产线)

Modules(必须)

  • br_netfilter

  • nf_conntrack

  • bridge

  • iptable_nat

sysctl(必须 baseline)

  • net.bridge.bridge-nf-call-iptables=1

  • net.ipv4.ip_forward=1

  • net.netfilter.nf_conntrack_max >= 262144


6.3 常见事故根因(SRE视角)

问题根因
Service 不通 nf_conntrack 未加载
Pod 网络断续 br_netfilter 未启用
NAT 异常 iptable_nat missing
conntrack overflow nf_conntrack_max 太低
kube-proxy 不稳定 kernel 版本过低

📌 如果你要继续升级(我可以再给你)

我可以帮你补三份更“生产级 SRE 标准文档”:

🔥 1.《Kubernetes Kernel/Sysctl/Module 一键基线检查脚本》

🔥 2.《Calico / Cilium / Flannel kernel dependency matrix》

🔥 3.《K8s 1.24–1.30 + Kernel 5.x 生产兼容矩阵(企业级)》

🔥 4.《iptables vs nftables vs IPVS 架构对比(含数据路径)》