0

0

LinuxKubernetes网络模型教程_CNI原理与实战

php中文网

php中文网

发布时间:2026-01-04 11:57:20

|

877人浏览过

|

来源于php中文网

原创

Kubernetes 网络模型的核心是 IP-per-Pod,即每个 Pod 拥有独立可路由 IP 且跨节点直连不依赖 NAT;它通过 CNI 插件实现网络配置,主流插件包括 Flannel、Calico 和 Cilium,排查网络问题需依次检查插件状态、路由表和防火墙端口。

linuxkubernetes网络模型教程_cni原理与实战

Kubernetes 网络模型的核心,是让每个 Pod 拥有独立、可路由的 IP 地址,且所有 Pod 之间无需 NAT 就能直接通信。它不自己实现网络,而是通过标准化接口 CNI(Container Network Interface)委托给插件完成。理解这一点,就抓住了整个 K8s 网络的起点。

Pod 网络:IP-per-Pod 是基石

每个 Pod 被分配一个唯一 IP,其内部容器共享该网络命名空间——它们用 localhost 通信,对外表现为一个整体。这个 IP 必须能在集群任意节点间直接访问,即:

  • Pod 到 Pod:跨节点直连,不走 NAT 或端口映射
  • Node 到 Pod:宿主机进程可直接 ping 或 curl Pod IP
  • Pod 到 Service:通过 ClusterIP 实现虚拟服务抽象

CNI 插件怎么工作:从创建到就绪

当 kubelet 启动一个 Pod,会调用 CNI 插件执行 ADD 操作。典型流程如下:

  • 先启动 pause 容器,建立独立的网络命名空间
  • 调用 CNI 配置文件指定的插件(如 bridge、flannel、calico)
  • 插件创建 veth pair:一端接入 Pod,另一端挂到宿主机 cni0 网桥
  • 为 Pod 分配 IP(由 host-local 或 static 等 IPAM 模块完成)
  • 配置路由规则,确保目标 Pod 子网流量能正确转发(例如指向 flannel.1 或 cali* 接口)

完成后,kubelet 收到结果,Pod 网络即就绪。删除时则触发 Del 操作清理资源。

自由画布
自由画布

百度文库和百度网盘联合开发的AI创作工具类智能体

下载

主流 CNI 插件选型关键点

不同插件解决不同场景,选型要看规模、性能、策略需求:

  • Flannel:轻量简单,VXLAN 封装兼容性好;host-gw 模式零封装但要求二层互通。适合中小集群或快速验证
  • Calico:基于 BGP 构建三层路由,无 Overlay 开销;原生支持 NetworkPolicy;大规模下可用 Route Reflector 降低连接数
  • Cilium:eBPF 内核级处理,绕过 iptables;支持 L7 策略(HTTP/gRPC)、可观测性和服务网格集成。适合高安全、高性能生产环境

排查网络不通的三个必查环节

遇到 Pod 间 ping 不通,按顺序检查:

  • 确认 CNI 插件 Pod 运行正常(kubectl get pods -n kube-system | grep -E "flannel|calico|cilium"
  • 检查节点路由表是否包含其他节点的 Pod 子网(ip route | grep 10.244 或对应 CIDR)
  • 验证 VXLAN/UDP 端口(如 Flannel 默认 8472)或 BGP 端口(Calico 默认 179)未被防火墙拦截

相关专题

更多
curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

425

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

172

2023.10.30

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

998

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

55

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

267

2025.12.29

go中interface用法
go中interface用法

本专题整合了go语言中int相关内容,阅读专题下面的文章了解更多详细内容。

76

2025.09.10

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

17

2025.12.22

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

17

2025.12.22

从零到实战:Python 编程系统入门专题
从零到实战:Python 编程系统入门专题

本专题面向零编程基础及初学者,系统讲解 Python 编程语言的核心知识与实战技巧。内容涵盖 Python 基础语法、数据结构、函数与模块、常用标准库、简单算法思维,以及真实应用场景下的小项目实战。通过循序渐进的学习路径,帮助读者快速建立编程思维,掌握 Python 在数据处理、自动化脚本及日常开发中的实际应用能力,为后续深入学习 Web 开发、数据分析或人工智能打下坚实基础。

2

2026.01.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.6万人学习

Git 教程
Git 教程

共21课时 | 2.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号