在云原生环境中,网络的核心作用是充当中枢神经系统和循环系统。它是实现弹性、韧性和可观测性等关键应用特性的基础保障。
云原生网络的职责可以分为几个关键领域:
职责:自动发现运行中的微服务实例,并智能地在它们之间分配流量。
实现方式:
服务发现
etcd)注册CoreDNS 通过服务名称提供内置发现功能负载均衡
Service 资源获得虚拟 IP(VIP)职责:通过细粒度规则控制流量,实现高级部署模式。
实现方式:
Ingress
服务网格(Istio、Linkerd)
职责:执行“零信任”安全模型,确保服务间通信的授权。
实现方式:
网络策略
双向 TLS (mTLS)
职责:提供丰富的网络数据,用于理解和诊断分布式系统。
实现方式:
指标
日志
追踪
了解更多请参见 Networking Observability。
容器网络是为云原生应用设计的综合网络解决方案,确保集群内的东西向通信顺畅,以及跨外部网络的南北向流量高效管理,同时提供必要的网络功能。其核心组件包括:
Gateway API 是 Kubernetes 官方项目,专注于 Kubernetes 中的 L4 和 L7 路由。该项目代表了 Kubernetes Ingress、负载均衡和服务网格 API 的下一代标准。从一开始,它就被设计为通用、表达力强且面向角色的。
整体资源模型聚焦于三个不同的角色及其对应管理的资源:

该 API 中的大部分配置都包含在路由层。这些特定协议的资源(如 HTTPRoute、GRPCRoute 等)为 Ingress 和 Mesh 提供了高级路由能力。
使用 Gateway API 管理入口流量时,Gateway 资源定义了一个访问点,流量可以跨多个上下文路由——例如,从集群外部到集群内部(南北向流量)。
每个 Gateway 关联一个 GatewayClass,描述将处理该 Gateway 流量的实际网关控制器类型;然后,单独的路由资源(如 HTTPRoute)与 Gateway 资源关联。将这些不同关注点分离成独立资源,是 Gateway API 面向角色特性的关键部分,也允许多种网关控制器(由 GatewayClass 资源表示)共存。
以下设计目标驱动了 Gateway API 的概念,展示了 Gateway 如何改进现有标准如 Ingress。
其他显著功能包括:
更多 Gateway API 详细说明,请参阅 gateway-api 文档。
Alauda 容器平台支持 Kubernetes 生态中多种入口流量规范。 本文档对它们(Service、Ingress、Gateway API)进行比较,帮助用户做出正确选择。
LoadBalancer 类型的 Service 和 Gateway API(TCP/UDP Routes)都可以对外暴露第 4 层流量,但它们在实现方式和性能特性上有显著差异。
实现方式:内核空间转发
优点:
实现方式:用户空间代理
缺点:
推荐使用 LoadBalancer 类型的 Service 进行 L4 流量路由,因其性能更优且资源开销更低。
目前,我们通过 MetalLB 支持 LoadBalancer 类型服务。
Ingress、GatewayAPI 均可对外暴露第 7 层流量,但它们的能力存在差异。
Ingress 是 Kubernetes 社区采用的标准规范,推荐作为默认使用。 Ingress 由平台管理员管理的 ALB 实例处理。
Gateway API 是 Kubernetes 的下一代路由标准,旨在解决 Ingress 的局限,提供更强大、灵活和标准化的流量管理能力。相比 Ingress,Gateway API 具有以下优势:
面向角色设计
表达力丰富的路由能力
协议支持
可扩展性
跨命名空间路由
单个 Gateway 支持多个监听器
可移植性与标准化
附加与选择模型
parentRefs 明确附加到 Gateway 监听器目前,我们通过 Envoygateway 支持 GatewayApi。有关从 Ingress 迁移到 GatewayApi,请参阅 迁移指南。
以下示例展示了 Alauda 容器平台集群中的网络流量流程。
流程说明:
客户端(浏览器 / curl)
用户发送 HTTPS 请求至 https://www.example.com。
客户端工作在第 7 层,发起 DNS 查询。
DNS 解析
DNS 将域名解析为公网 IP 地址(如 34.23.88.11)。
[L4] 外部负载均衡器
工作在第 4 层(TCP/UDP)。 将入站连接转发到集群内的后端节点。 示例:AWS NLB、GCP TCP LB、MetalLB。
[L7] Envoy Gateway / Ingress 控制器
工作在第 7 层(应用层)。 处理:
TLS 终止
基于主机名和路径的路由
策略和认证
将流量路由到匹配的 Kubernetes Service。
[L4] Kubernetes Service(ClusterIP)
作为集群内部的第 4 层负载均衡器。 根据选择器将请求分发到后端 Pod。
Pod(应用)
最终目的地,应用运行并处理请求。 响应沿相反路径返回客户端。