10-Gateway API
Gateway API概念引入在文章 03 中你学了 Ingress——K8s 的大门保安负责根据域名和路径把流量分发到不同 Service。但 Ingress 有几个痛点表达能力弱只支持 HTTP 的 host path 匹配想做 header 匹配、权重分流不行配置不标准每个 Ingress Controller 用不同的 annotation换个 Controller 就要重写配置角色不分离运维管网关基础设施开发管路由规则但 Ingress 把两者混在一个资源里Gateway API 就是为了解决这些问题而生的新一代标准。Gateway API新GatewayClass基础设施类型Gateway网关实例HTTPRoute路由规则Ingress旧Ingress一个资源管所有角色分离运维管 Gateway开发管 HTTPRoute原理讲解Gateway API 的三个核心资源资源谁管作用类比GatewayClass基础设施提供商定义网关类型如 nginx、envoy“我要买什么型号的门”Gateway集群运维创建网关实例定义监听器和端口“把门装在哪里开几个口”HTTPRoute应用开发者定义路由规则路径、header、权重“进哪个门走哪条路”路由层开发管基础设施层运维管GatewayClass: nginxGateway: my-gateway监听 :80 和 :443HTTPRoute: web-route/ → web-svcHTTPRoute: api-route/api → api-svcHTTPRoute: canary-route/v2 → v2-svc (20%)/v2 → v1-svc (80%)Ingress vs Gateway API 对比维度IngressGateway API标准化❌ 各 Controller 用不同 annotation✅ 统一标准跨 Controller 兼容路由能力仅 host pathhost path header query method流量分割❌ 不支持✅ 权重分流金丝雀发布角色分离❌ 一个资源✅ 三层分离Class/Gateway/Route协议支持HTTP/HTTPSHTTP/HTTPS/TCP/TLS/gRPC状态稳定但功能受限GA正式可用持续演进HTTPRoute 的强大能力apiVersion:gateway.networking.k8s.io/v1kind:HTTPRoutemetadata:name:advanced-routespec:parentRefs:-name:my-gatewaysectionName:httphostnames:-app.example.comrules:# 规则 1按 header 路由-matches:-headers:-name:x-versionvalue:v2backendRefs:-name:v2-svcport:80# 规则 2按权重分流金丝雀发布-matches:-path:value:/apibackendRefs:-name:api-v1port:80weight:90# 90% 流量到 v1-name:api-v2port:80weight:10# 10% 流量到 v2# 规则 3请求重定向-matches:-path:value:/old-pathfilters:-type:RequestRedirectrequestRedirect:path:type:ReplaceFullPathreplaceFullPath:/new-path迁移路径大多数 Ingress ControllerNginx Ingress、Traefik、Kong已经支持 Gateway API。迁移步骤安装支持 Gateway API 的 Controller创建 GatewayClass 和 Gateway把 Ingress 规则逐一转换为 HTTPRoute验证无误后删除旧 Ingress动手实验配套实验位于docs/labs/beginner/gateway-api/⚠️ 本实验安装 Gateway API CRD资源定义但不安装 Gateway Controller需要额外网络下载镜像。学习重点是资源结构和角色分离——Gateway 和 HTTPRoute 的定义方式、与 Ingress 的对比。本实验用 Gateway API 重新实现 Ingress 的路由规则。步骤 1安装 CRD 并创建后端服务cddocs/labs/beginner/gateway-apibashsetup.sh步骤 2认识 Gateway 资源# 查看已创建的 Gatewaykubectl get gateway# 查看 Gateway 的 YAML 定义kubectl describe gateway my-gatewaycatmanifests/gateway.yaml解读gatewayClassName: nginx指定用哪种网关实现listeners定义监听的端口和协议。这个资源由运维管理——决定网关实例的规格。步骤 3认识 HTTPRoute 资源# 查看已创建的 HTTPRoutekubectl get httproute# 查看路由规则kubectl describe httproute app-routecatmanifests/httproute.yaml解读/api → api:5678/ → web:80。这个资源由开发管理——决定路由规则不需要关心网关是用 nginx 还是 envoy 实现的。步骤 4验证后端服务# 通过 port-forward 直接访问后端无需网关控制器kubectl port-forward svc/web8080:80curl-slocalhost:8080|head-5kill%12/dev/null kubectl port-forward svc/api8081:5678curl-slocalhost:8081kill%12/dev/null 在完整部署中Gateway Controller 会自动配置代理你不需要手动 port-forward。这里直接访问后端是为了验证服务可用。步骤 5理解流量分割金丝雀发布# 查看权重分流路由定义catmanifests/canary-route.yaml# 创建资源没有 Controller 不会有实际分流效果但能学习 API 结构kubectl apply-fmanifests/canary-route.yaml kubectl get httproute canary-route-oyaml|grep-A10backendRefs关键字段weight: 80和weight: 20——声明式地定义流量比例不需要 annotation。步骤 6清理bashteardown.sh自检问题Gateway API 的三层结构GatewayClass / Gateway / HTTPRoute分别由谁管理查看答案 **GatewayClass** 由基础设施提供商定义如 Nginx 提供 nginx GatewayClass。**Gateway** 由集群运维管理——决定在哪里创建网关实例、监听哪些端口。**HTTPRoute** 由应用开发者管理——定义具体的路由规则。这种分离让运维和开发各司其职互不干扰。Ingress 的 annotation 有什么问题Gateway API 怎么解决的查看答案 Ingress 的 annotation 不是标准 API不同 ControllerNginx Ingress、Traefik、Kong用不同的 annotation 实现相同功能。换 Controller 就要改 annotation。Gateway API 是 K8s 官方标准 API所有兼容的 Controller 都支持相同的 HTTPRoute 语法换 Controller 不需要改路由配置。你的团队要做一个灰度发布10% 流量到新版本用 Ingress 和 Gateway API 分别怎么实现查看答案 **Ingress**需要用 Controller 特定的 annotation 实现分流如 Nginx Ingress 的 canary 注解不可移植。**Gateway API**直接在 HTTPRoute 的 backendRefs 中设置 weight: 90 和 weight: 10标准 API任何兼容的 Controller 都支持。下一步Gateway API 是 Ingress 的未来。你的基础功已经扎实了接下来进入进阶实战阶段恭喜你已经完成了 K8s Guide 初学者轨道的全部 11 篇文章。从零基础到能独立部署、排查、运维 K8s 应用——你已经掌握了核心知识。接下来的面试轨道会帮你把这些知识转化为 Offer。本文来自 K8s Guide—— 开源免费的 Kubernetes 中文学习指南️ 初学者轨道 面试轨道从零基础到拿 Offer 一站式覆盖 每篇文章配套 Kind 实验脚本本地一键运行 本文源码docs/beginner/20-gateway-api.md⭐如果对你有帮助欢迎 Stargithub.com/callmebg/k8s-guide

相关新闻

高效、免费、开源:GetQzonehistory让QQ空间历史说说备份变得简单

高效、免费、开源:GetQzonehistory让QQ空间历史说说备份变得简单

高效、免费、开源:GetQzonehistory让QQ空间历史说说备份变得简单 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还记得那些年,在QQ空间里留下的青春印记吗&…

2026/7/28 16:32:32 阅读更多 →
Wayfinder Router:AI应用成本与性能优化的智能路由解决方案

Wayfinder Router:AI应用成本与性能优化的智能路由解决方案

如果你正在构建AI应用,可能会遇到这样的困境:调用云端大模型API成本高、响应慢,而本地部署的模型虽然成本可控但能力有限。如何在保证服务质量的同时控制成本?Wayfinder Router提供了一个全新的解决方案——它不是在模型层面做选择…

2026/7/28 16:32:32 阅读更多 →
Python核心知识体系思维导图

Python核心知识体系思维导图

总览基础知识1基础知识2数据类型序列字符串列表/元组字典集合条件/循环文件对象错误/异常函数 1&2模块面向对象编程

2026/7/28 16:32:32 阅读更多 →

最新新闻

Serverless安全实战:从TAR依赖漏洞到10步纵深防御体系构建

Serverless安全实战:从TAR依赖漏洞到10步纵深防御体系构建

1. 项目概述:一次真实的Serverless安全危机复盘 上周三凌晨,我被一阵急促的告警电话惊醒。监控显示,我们一个核心的Serverless函数突然出现大量异常调用,CPU使用率飙升至100%,日志里充斥着奇怪的路径遍历错误。经过紧急…

2026/7/28 16:41:35 阅读更多 →
使用Spring实现权限控制动态为注解赋值

使用Spring实现权限控制动态为注解赋值

首先这不是一个介绍或者使用SpringSecurity的博客。他是使用自定义注解和拦截器实现的权限管理(只供学习不可用于生产环境) 技术栈: SpringBoot 2.1.6 MySQL5.7 大体思路: 使用拦截器拦截请求,在拦截器中使用 HandlerMethod 类获取当前请求方法上的自定义权限注解。…

2026/7/28 16:41:35 阅读更多 →
SpringBoot+Vue构建问卷调查系统的技术实践

SpringBoot+Vue构建问卷调查系统的技术实践

1. 项目概述这个基于SpringBootVueMySQL的问卷调查系统是一个典型的毕业设计项目,它完整实现了问卷创建、发布、填写和统计分析的闭环流程。作为前后端分离架构的实践案例,它既包含了基础CRUD功能,又涉及了数据可视化、权限控制等进阶特性&am…

2026/7/28 16:41:35 阅读更多 →
PAT甲级 1060 Are They Equal 判断两个小数是否相等

PAT甲级 1060 Are They Equal 判断两个小数是否相等

Solution: 题目要求:给出两个非负的小数,且都不超过10的100次方。再给出一个有效位数,将这两个小数都转化为科学计数法的形式,即0.d[1]…d[N]*10^k (d[1]>0 除非这个数是0),若转化后的两数相等&#xff…

2026/7/28 16:41:34 阅读更多 →
FlashDB嵌入式数据库深度解析:架构设计与核心实现原理

FlashDB嵌入式数据库深度解析:架构设计与核心实现原理

FlashDB嵌入式数据库深度解析:架构设计与核心实现原理 【免费下载链接】FlashDB An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库 项目地址: https://gitcode.com/gh_mirrors/fl/Flas…

2026/7/28 16:41:34 阅读更多 →
如何用MemcardRex终极PS1记忆卡编辑器轻松管理你的经典游戏存档

如何用MemcardRex终极PS1记忆卡编辑器轻松管理你的经典游戏存档

如何用MemcardRex终极PS1记忆卡编辑器轻松管理你的经典游戏存档 【免费下载链接】memcardrex Advanced PlayStation 1 Memory Card editor 项目地址: https://gitcode.com/gh_mirrors/me/memcardrex 还在为PlayStation 1游戏存档管理而烦恼吗?MemcardRex作为…

2026/7/28 16:40:34 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻