【云原生】Gateway API介绍

Gateway API介绍

文章目录

一、介绍

  • Gateway API是Kubernetes的官方项目,专注于Kubernetes中的L4(传输层)和L7(应用层)路由。这个项目代表了下一代Kubernetes入口、负载均衡和服务网格api。从一开始,它就被设计成通用的、富有表现力的和面向角色的。
  • 整体资源模型关注于3个独立的角色和他们期望管理的相应资源(以下是关系拓扑图):
  • 这个API中的大部分配置都包含在路由层中。这些特定于协议的资源(HTTPRoute、CRPCRoute等)为Ingress和Mesh提供了高级路由功能。
  • Gateway API的标志形象体现了该API的双重用途------它既支持南北向(Ingress入站)流量路由,也支持东西向(Service Mesh服务网格)流量路由,且这两种流量可以共用一套配置。

二、入口网关API

  • 在使用Gateway API管理入站流量时,Gateway资源会定义一个流量访问接入点,各类流量可通过该接入点跨多个环境进行路由转发------例如,仓集群外部到集群内部的南北向流量,就可以通过这个接入点进行路由。

  • 每个Gateway资源都会关联一个GatewayClass资源,GatewayClass用于描述负责处理该Gateway流量的网关控制器的具体类型;随后,各类路由资源(例如HTTPRoute)会关联到对应的Gateway资源。将这些不同的功能职责拆分到独立的资源对象中,是Gateway API面向角色设计理念的关键所在,同时这也允许在同一个集群内运行多种类型的网关控制器(由GatewayClass资源表征),且每种类型的控制器都可以拥有多个实例(由Gateway资源表征)。

三、面向服务网格的Gateway API

  • 当使用Gateway API管理服务网格时,情况会略有不同。由于集群中通常只会运行一个活跃的服务网格,因此不会用到Gateway和GatewayClass这两类资源;取而代之的是,各类路由资源(例如HTTPRoute)会直接与Service资源建立关联,这样一来,服务网格就能管控所有发送该Service的流量,同时还能保留Gateway API面向角色的设计理念。

四、Gateway API 概念

  • 以下这些设计目标,驱动着Gateway API的各项核心设计理念。它们充分展现了Gateway API皆在如何改进现有标准(例如Ingress资源)的思路与方向。
    • 面向角色设计:Gateway API由多种API资源构成,这些资源对应着企业组织中使用和配置Kubernetes服务网格的不同角色分工。
    • 可移植性:这并非一项改进,而是一项需要保持的设计原则。正如Ingress是一个拥有众多实现方案的通用规范一样,Gateway API也被设计为一个能够被多种实现方案支持的可移植性规范。
    • 表现力丰富:Gateway API资源原生支持多种核心功能,例如基于请求头的匹配、流量权重分配等,而这些功能在传统Ingress中,都只能通过自定义注解才能实现,在Gateway API中这些将通过字段进行配置。
    • 可扩展性:Gateway API允许在该API的不同层级关联自定义资源,这使得开发者可以在API架构的合适位置,实现精细化的定义话配置。
  • 其他一些值得注意的功能包括:
    • GatewayClass资源:GatewayClass对负载均衡的各类实现方案进行了规范化定义。借助这些资源类型,用户能够通过Kubernetes资源模型,轻松且清晰地了解当前集群中可使用的负载均衡能力类型。
    • 共享网关与跨命名空间支持:这项能力允许独立的路由资源关联到同一个网关,进而实现负载均衡器与虚拟IP(VIP)的共享。如此一来,不同团队(甚至是跨命名空间的团队)无需直接协同,就能完全地共享网关基础设施。
    • 类型化路由与类型化后端:Gateway API支持类型化的路由资源,同时也支持多种不同类型的后端。这一设计让该API具备了灵活适配各种类协议(如HTTP和gRPC)以及各类后端目标(如Kubernetes Service、存储桶或者函数)的能力。
    • 基于GAMMA计划的实验性服务网格支持能力:Gateway API支持将路由资源与Service资源建立关联,以此实现对服务网格和入站流量控制器的统一配置。

五、为什么面向角色的API很重要

  • 无论是道路、电力设施、数据中心,还是Kubernetes集群,基础设施的建设初衷都是为了实现共享。然而,基础设施共享会引发一个普遍难题------如何在保障基础设施所有者管控权的同时,为基础设施使用者提供足够的灵活性?
  • Gateway API针对Kubernetes服务网格采用了面向角色的设计理念,以此在分布式灵活性与集群中管控之间取得平衡。它允许各类互不协同的团队,共用同一份网络基础设施(如硬件负载均衡器、云网络资源、集群托管的代理等),同时所有团队的使用行为都需遵循集群运维人员设定的策略与约束。
  • Gateway API设计所依托的角色体系,是基于三类典型的角色人设来定义的

六、官网地址

相关推荐
EverydayJoy^v^12 小时前
Kubernetes 知识点(1)——基础依赖
云原生·容器·kubernetes
知识即是力量ol12 小时前
微服务架构:从入门到进阶完全指南
java·spring cloud·微服务·nacos·架构·gateway·feign
wyyl19870815 小时前
北京奶茶原料定制厂家
云原生
nxb55616 小时前
云原生keepalived实验设定
linux·运维·云原生
AC赳赳老秦16 小时前
预见2026:DeepSeek与云平台联动的自动化流程——云原生AI工具演进的核心引擎
人工智能·安全·云原生·架构·自动化·prometheus·deepseek
nxb55616 小时前
云原生HAPORXY实验设定
云原生
j2001032217 小时前
Gateway—— 高级流量路由
gateway·k8s
笨蛋不要掉眼泪18 小时前
Spring Cloud Gateway 核心篇:深入解析过滤器(Filter)机制与实战
java·服务器·网络·后端·微服务·gateway
笨蛋不要掉眼泪18 小时前
Spring Cloud Gateway 扩展:全局跨域配置
java·分布式·微服务·架构·gateway
懒鸟一枚19 小时前
k8s 之 Kubernetes服务发布基础
云原生·容器·kubernetes