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 | 最低 Kernel | Kubernetes 用途 |
|---|---|---|
| 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 标准文档”:
