在K8S中,网络模型有哪些?

在 Kubernetes 中,网络模型的核心目标是解决四大关键问题:
1. Pod 间通信(跨主机互通)
2. Service 访问(服务发现与负载均衡)
3. 外部流量接入(Ingress)
4. 网络策略(安全隔离)

以下是通俗易懂的模型分类(附场景比喻):


一、Pod 网络模型(解决 Pod 间通信

1. Overlay 网络(隧道封装)

  • 原理:在物理网络之上构建“虚拟网络”,通过隧道(如 VXLAN)封装数据包。
  • 比喻:快递员(数据包)穿隐身衣(隧道)跨城市(节点)送货,收件人拆开隐身衣看到真实包裹。
  • 插件:Flannel (VXLAN)、Calico (IPIP/VXLAN)、Weave Net。
  • 优点:不依赖底层网络设备,适合云环境。
  • 缺点:隧道封装有性能损耗(约 10%~20%)。

2. 路由模型(直接路由)

  • 原理:通过路由表直接转发 Pod 流量(无需封装)。
  • 比喻:快递员根据导航(路由表)直达目的地,不绕路。
  • 插件:Calico (BGP)、Kube-router。
  • 优点:高性能,接近裸机速度。
  • 缺点:需网络设备支持路由协议(如 BGP)。

3. Underlay 网络(直通物理层)

  • 原理:Pod 直接使用物理网络 IP(如网卡虚拟化)。
  • 比喻:快递员用收货人的真实地址送货(Pod IP = 物理 IP)。
  • 插件:MACVLAN/IPVLAN、SR-IOV、AWS VPC CNI。
  • 优点:极致性能(零损耗)。
  • 缺点:消耗大量 IP,配置复杂。

二、Service 网络模型(解决 服务发现与负载均衡

1. ClusterIP(集群内访问)

  • 原理:为 Service 分配虚拟 IP(VIP),通过 iptables/IPVS 负载均衡到 Pod。
  • 比喻:公司总机(ClusterIP)接电话后转接给员工(Pod)。
  • 场景:微服务间内部调用。

2. NodePort(节点端口暴露)

  • 原理:在节点上开端口(30000~32767),将流量转发给 Service。
  • 比喻:公司每栋楼(节点)开一个接待窗口(NodePort),访客到窗口后转接给总机。
  • 场景:开发测试环境临时访问。

3. LoadBalancer(云负载均衡器)

  • 原理:调用云厂商的负载均衡器(如 AWS ELB),分配公网 IP 引流到 Service。
  • 比喻:雇佣专业快递公司(云 LB)分发所有包裹。
  • 场景:生产环境暴露公网服务。

三、Ingress 模型(解决 外部 HTTP(S) 访问

1. Ingress Controller(七层代理)

  • 原理:通过 Nginx/HAProxy/Traefik 等代理,根据域名和路径路由到 Service。
  • 比喻:智能前台(Ingress)根据访客需求(域名 shop.comblog.com)指引到不同部门。
  • 核心功能
    • HTTPS 证书管理
    • 按路径路由(如 /api → 后端服务)
    • 流量限速

2. Gateway API(下一代 Ingress)

  • 原理:更精细的路由规则(支持 HTTP/TCP/UDP),分离路由策略与基础设施。
  • 比喻:升级版前台,可定制更复杂的接待流程(如灰度发布)。

四、网络策略模型(解决 安全隔离

1. NetworkPolicy(防火墙规则)

  • 原理:基于标签控制 Pod 的进出流量(如“只允许前端 Pod 访问数据库”)。
  • 比喻:办公室门禁系统(策略)只允许工牌(标签)匹配的人进入。
  • 依赖插件:Calico、Cilium(需支持 NetworkPolicy)。

五、多网络模型(特殊场景)

1. Multus(多网卡支持)

  • 原理:为 Pod 分配多个网络接口(如业务网 + 存储网)。
  • 场景:AI 训练(高速 RDMA 网络)、金融低延迟交易。

2. 服务网格(Service Mesh)

  • 原理:Sidecar 代理(如 Istio Envoy)接管流量,实现熔断/监控/加密。
  • 比喻:每个员工配秘书(Sidecar),代处理所有对外沟通。

模型对比总结

模型类型 核心目标 代表技术 适用场景
Pod 网络模型 Pod 跨节点互通 Flannel (Overlay)/Calico (路由) 所有集群
Service 模型 服务发现与负载均衡 ClusterIP/LoadBalancer 微服务调用
Ingress 模型 外部 HTTP 访问 Nginx Ingress/Gateway API 暴露 Web 服务
网络策略模型 安全隔离 NetworkPolicy 生产环境安全
多网络模型 高性能/多网络隔离 Multus 金融/AI/NFV

小白理解要点

  1. Pod 通信

    • 同主机:直接通过网桥(如 docker0)。
    • 跨主机:靠 Overlay(穿隧道)或路由(走导航)。
  2. Service 是什么?

    • 服务的“虚拟接待处”,屏蔽后端 Pod 的变化(扩缩容/重启)。
  3. Ingress 做什么?

    • 统一管理外部访问(一个公网 IP + 多个网站路由)。
  4. 网络策略有啥用?

    • 充当 Pod 的“保镖”,只放行符合规则的流量。

💡 一句话总结
Kubernetes 网络模型 = 打通 Pod 间电话(网络插件) + 设立服务总机(Service) + 配置公司前台(Ingress) + 安装门禁系统(NetworkPolicy)

posted @ 2025-08-16 20:30  天道酬勤zjh  阅读(18)  评论(0)    收藏  举报