在 CentOS 上部署 Kubernetes(k8s) 时,网络方案(CNI 插件)的选择主要取决于 规模、性能、功能需求和运维复杂度。下面给你一个实用向的对比和选型建议。
一、先明确:K8s 网络要解决什么
- Pod 互通(跨节点)
- Service 网络
- 网络策略(NetworkPolicy)
- 性能 & 延迟
- 运维难度
二、常见 CNI 方案对比(CentOS 常用)
1️⃣ Flannel(最推荐新手)
特点
- 简单、稳定
- 基于 VXLAN 或 host-gw
- 不支持 NetworkPolicy(需额外插件)
适合
- 学习 / 测试
- 小规模集群(<50 节点)
- 对网络策略要求不高
CentOS 注意
- 内核 ≥ 3.10 即可
- 关闭 firewalld 或放行 VXLAN 端口(8472/UDP)
✅ 推荐指数:⭐⭐⭐⭐(入门首选)
2️⃣ Calico(生产最常用)
特点
- 支持 BGP / VXLAN
- 完整 NetworkPolicy
- 性能优秀
- 可对接物理网络(BGP)
适合
CentOS 注意
- 建议 CentOS 7.9 / 8 Stream
- 开启
br_netfilter
- 关闭 swap
✅ 推荐指数:⭐⭐⭐⭐⭐(生产首选)
3️⃣ Cilium(未来趋势)
特点
- 基于 eBPF
- 高性能
- 强 NetworkPolicy + 可观测性
- 可替代 kube-proxy
适合
CentOS 注意
- 内核 ≥ 4.18(CentOS 8 / Rocky / Alma 更合适)
- CentOS 7 不推荐
✅ 推荐指数:⭐⭐⭐⭐⭐(新项目强烈推荐)
4️⃣ Weave Net
特点
适合
❌ 逐步边缘化,不推荐新项目
5️⃣ kube-router(轻量)
特点
- BGP + NetworkPolicy
- 无 overlay
适合
⚠️ 社区活跃度一般
三、CentOS 场景下的选型建议
✅ 新手 / 测试
Flannel
✅ 企业生产(稳妥)
Calico(VXLAN 或 BGP)
✅ 新集群 / 高性能 / 云原生
Cilium(eBPF)
❌ 不推荐
- CentOS 7 + Cilium
- 生产用 Weave
- 用默认 bridge 插件
四、CentOS 部署前必做
systemctl stop firewalld
systemctl disable firewalld
modprobe br_netfilter
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward=1
EOF
sysctl --system
swapoff -a
五、一句话总结
CentOS 上 k8s 网络:学习用 Flannel,生产用 Calico,新项目用 Cilium。
如果你愿意,我可以:
- 给你 具体 YAML 部署示例
- 帮你 按节点数/业务选型
- 针对 CentOS 7 或 8 给精确方案
你现在用的是 CentOS 几?单节点还是多节点?