news 2026/9/14 19:00:00

选对网络插件:kubeasz 集群跨节点通信提速避坑指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
选对网络插件:kubeasz 集群跨节点通信提速避坑指南

选对网络插件:kubeasz 集群跨节点通信提速避坑指南

【免费下载链接】kubeasz使用Ansible脚本安装K8S集群,介绍组件交互原理,方便直接,不受国内网络环境影响项目地址: https://gitcode.com/GitHub_Trending/ku/kubeasz

业务上线第三天,两个跨节点 Pod 互调的延迟高到被用户投诉。查了半天,发现是网络插件走了隧道封装模式,每个包都多包一层"信封",性能白白打折。

如果你也用 kubeasz 这类 Ansible 工具搭 K8s 集群,网络插件这步别无脑抄默认值。下面按场景给你一套选型思路和落地调法,先看结论。

30 秒速查表:什么场景配什么插件 🧭

先补一个名词:CNI(容器网络接口),就是给每个 Pod 分配 IP、把它们连成一张网的那套标准,flannel、calico 这些都是它的不同实现。

kubeasz 开箱支持 5 种,按场景对号入座:

你的场景首选一句话理由
学习、测试,几台机器flannel最省事,装完就用
生产集群,节点可能涨到几十上百calico项目默认,BGP 可扩展,还能加路由反射器
延迟敏感 + 想要流量可观测ciliumeBPF 内核级转发,快,自带 Hubble 面板
要子网、VLAN、QoS 精细隔离kube-ovn基于 OVS(开源虚拟交换机),功能最细
网络 + Service 代理 + 策略想三合一kube-router少装组件,IPVS 做 Service 转发

场景一:轻量起步,测试学习环境 🌱

flannel 是几个选项里最轻的,没有网络策略功能,胜在简单。

kubeasz 默认给它配 vxlan 后端——相当于把包套进 UDP 信封再发,跨网段也能通,但多一层封装就多一层开销。

如果所有节点都在同一个二层网络,把config.ymlFLANNEL_BACKEND改成"host-gw":节点间直接走三层路由,不封装,这是 flannel 下最快也最省心的组合。

场景二:生产级规模化,节点还会涨 📈

calico 是 kubeasz 的默认插件,生产环境的主力。

它靠 BGP 协议干活:一种路由协议,节点之间互相"登记"对方的 Pod 网段,之后跨节点流量直接沿路由走,不用打隧道。

麻烦在于节点多了之后,全互联的 BGP 连接数量会爆炸。calico 给了个解法——BGP 路由反射器(RR),加几个"中间人"节点,其他节点只跟中间人建连,连接数从 n 的平方级降到 n 级。

先落两个配置项:

  • 节点超过 50 台,把CALICO_RR_ENABLED置为true,默认放在 master 上
  • 关键开关CALICO_ENABLE_OVERLAY:自有机房平铺网络设Never,纯直连最省;跨子网设CrossSubnet,隧道 + 路由混合;公有云上懒得动云厂商网络配置就Always,损失一点性能换省事

场景三:极致低延迟,顺带把流量看明白 ⚡

cilium 走的是另一条路。它不依赖传统 iptables 规则链,而是用 eBPF——内核自带的可编程机制,把处理包的小程序"挂"在内核里,省掉用户态来回倒手,延迟更低、吞吐更高。

kubeasz 已经把 cilium 和 Hubble CLI 集成好,config.yml里两个开关:

  • cilium_hubble_enabled: true:流量日志,相当于"谁在跟谁说话"的流水账
  • cilium_hubble_ui_enabled: true:给上面的流水账配一个可视化面板

如果你更想要"网络插件 + Service 代理 + 网络策略"三合一的轻组合,可以看 kube-router:它用 IPVS(内核级虚拟负载均衡器,比 iptables 规则集更快)做 Service 转发,OVERLAY_TYPEFIREWALL_ENABLE是它的主要开关。

在 kubeasz 里落地:改两处、跑一条命令 🛠️

第一步,在 hosts 文件([all:vars] 段,可参考 example/hosts.multi-node)指定插件:

CLUSTER_NETWORK="calico"

可选值:calicoflannelkube-routerciliumkube-ovn

第二步,在config.yml里微调(只动你选的那个插件的段落),以 calico 直连模式为例:

CALICO_ENABLE_OVERLAY: "Never" CALICO_RR_ENABLED: true

第三步,执行网络插件部署剧本,顺便看一眼 Pod 起没起来:

ansible-playbook -i hosts playbooks/06.network.yml kubectl get pod -n kube-system | grep -E 'calico|flannel|cilium'

部署后验证清单与常见坑 ✅

验证就四步,全过才算通:

  • kube-system 下网络插件 Pod 全部 Running
  • 起 3 个测试 Pod 分散在不同节点,互相 ping 通
  • calico 环境下calicoctl node status,所有邻居都是 Established
  • 可选:config.yml里打开network_check_enabled: true,它会定期自动巡检节点间连通性

再记三个高频坑:

  1. 主机名重复:calico 用主机名认节点,两台同名节点在 etcd 里只留一条记录,BGP 邻居直接建不起来。装之前先确认主机名唯一且全小写。
  2. 网段撞车:hosts 文件里的CLUSTER_CIDR(Pod 网段)和SERVICE_CIDR不能跟节点自身网段重叠,撞了会出现"时通时不通"的怪现象。
  3. 云厂商 VPC 不通 IPIP:部分公有云/私有云不放行 IPinIP 封包,这种情况把 calico 的 overlay 设为Always,或把后端切到vxlan再试。

插件选型不求全,场景定生死。把开头那张速查表抄进你的部署笔记,剩下的交给剧本去跑就行。

想深入细节,看仓库自带文档:网络组件安装总览、Calico 安装讲解。

【免费下载链接】kubeasz使用Ansible脚本安装K8S集群,介绍组件交互原理,方便直接,不受国内网络环境影响项目地址: https://gitcode.com/GitHub_Trending/ku/kubeasz

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 18:59:51

Codex 跑全 AI 辅助测试:Key 用 TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 18:56:15

公共场所暴力与正常行为监控视频数据集

摘要:该数据集面向开放环境下的暴力行为识别,包含正常行为与暴力行为两类视频。数据集概述该数据集面向开放环境下的暴力行为识别,包含正常行为与暴力行为两类视频。正常视频主要来源于固定监控摄像机,暴力视频来源于公开视频及经…

作者头像 李华