想搞懂 K8s 网络架构?用大白话给拆解清楚,看完就能给同事讲明白
先一句话总结:
K8s 的网络就像一个 “大型办公楼”,Pod 是一个个 “办公室”,Service 是 “前台总机”,Ingress 是 “大楼大门”,各种网络插件就是 “内部布线和电梯系统”,最终目的是让楼里的人(数据)能顺畅沟通,也能方便外面的人找到对应的办公室。
核心架构分 3 层,就像办公楼的 “通信系统”:
1. 最底层:Pod 网络(办公室之间怎么串门?)
- 每个 Pod(可以理解为 “一组紧密合作的容器”)都有一个专属 “门牌号”(IP 地址),这是 K8s 里最基本的通信身份。
- 同一 Pod 里的容器(列如一个跑程序、一个存数据)相当于 “同一间办公室里的人”,喊一声 “喂(localhost)” 就能对话,不用走大门。
- 不同 Pod(不同办公室)要通信?列如 A Pod 在 1 号楼,B Pod 在 2 号楼,就需要 “布线”—— 这就是网络插件的活儿:有的插件用 “隧道”(列如 Flannel):把数据打包成 “快递”,从 1 号楼传到 2 号楼再拆包,简单好装,适合小公司。有的插件用 “直连路由”(列如 Calico):像公司内部修了专用通道,数据直接跑,速度快,但需要大楼(底层网络)支持,适合大公司。

2. 中间层:Service 网络(前台总机的作用)
- 问题来了:Pod 可能会 “搬家”(列如故障重启),门牌号(IP)会变,总不能每次都让别人记新地址吧?
- Service 就是 “前台总机”:给一组 Pod(列如多个一样功能的 Pod)分配一个固定分机号(Cluster IP),不管 Pod 怎么换位置,打这个分机号总能找到人。
- 列如用户访问 “总机 8080 号”,Service 会自动把请求分到背后的 3 个 Pod(类似总机转接到具体办公室),还能帮着 “匀活儿” 工作量(负载均衡)。
- 想让外面的人也能打这个分机?可以:挂个 “窗口”(NodePort):列如让大楼门口的保安亭(节点)开个窗口,外面人通过 “保安亭编号 + 窗口号”(节点 IP: 端口)就能连进来。找个 “专业接待”(LoadBalancer):如果在阿里云、AWS 这些 “商业园区”,可以花钱请园区的接待员(云厂商负载均衡器),直接把外部人领到总机。
3. 最上层:Ingress 网络(大楼大门的智能导航)
- 要是公司业务多了,总不能让客户记一堆 “保安亭窗口号” 吧?列如访问 “官网”“支付系统”“后台管理”,最好能通过域名(列如www.xxx.com)直接进。
- Ingress 就是 “带导航的大门”:外面的请求(列如浏览器访问)先到大门,Ingress 看一眼 “地址栏”(域名 / 路径),自动转到对应的 Service(总机)。
- 功能超实用:支持 “一个域名对应多个服务”(列如www.xxx.com/pay去支付 Service,/admin 去管理 Service),还能帮着 “验身份”(SSL 加密)、“拦坏人”(防火墙)。
一句话总结关键角色:
- Pod 网络:给每个 “办公室” 发门牌号,保证内部能串门。
- Service:给一组办公室挂个固定分机,解决地址老变的问题。
- Ingress:给大楼装个智能大门,方便外部通过域名找对地方。
- 网络插件:负责铺线 / 修通道,决定数据跑多快、稳不稳。
是不是一下子清晰了?K8s 网络看着复杂,实则就是把 “通信需求” 拆成了几层,每层干好自己的活儿~
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...


