当前位置:首页 > 文章列表 > 科技周边 > 业界新闻 > Gateway API v1.6 的 TCPRoute 和 UDPRoute 有哪些变化

Gateway API v1.6 的 TCPRoute 和 UDPRoute 有哪些变化

来源:17golang原创 2026-10-26 03:03:09 0浏览 收藏

如果你的 Kubernetes 工作负载不是 HTTP,而是数据库连接、DNS、VoIP 或 IoT 遥测,Gateway API v1.6 的变化值得关注:TCPRoute 和 UDPRoute 已从 Experimental Channel 进入 Standard Channel,并使用 v1 API 版本。旧的 v1alpha2 版本从 v1.6 起被弃用,未来会移除。

官方资料:https://kubernetes.io/blog/2026/08/03/gateway-api-v1-6-release/

这不是“所有 Gateway API 资源都稳定了”,也不是“换成 v1 就自动兼容所有控制器”。正确的判断方式是:先区分协议层,再确认 CRD 与控制器支持,最后才决定是否迁移。

一、先看结论:v1.6 稳定了什么

Gateway API v1.6.0 在 2026 年 6 月 30 日发布,Kubernetes 官方发布说明把变化归纳为两条主线:

  • TCPRoute 和 UDPRoute 进入 Standard Channel:两个资源都进入 gateway.networking.k8s.io/v1,可以用来表达原始四层 TCP/UDP 路由。
  • 实验资源使用独立 API Group:新的实验能力转移到 gateway.networking.x-k8s.io,并使用带有 X 前缀的资源名,例如 XBackend。

因此,升级时最重要的不是只搜索“v1.6”,而是逐项确认资源所在的发布通道、API Group、版本号和控制器的实现状态。Gateway API 的 Standard Channel 是稳定使用建议,不等于每个实现都在同一天支持全部资源。

二、它解决的是 L4 路由,不是 HTTP 规则的另一种写法

HTTPRoute 关注路径、方法、请求头等 L7 信息;TCPRoute 和 UDPRoute 则只需要根据协议和端口把连接或数据报送到后端。它们适合没有 HTTP 语义、也不需要解码应用层内容的服务。

资源主要协议层匹配关注点典型场景
HTTPRouteL7主机名、路径、方法、请求头Web API、网页、反向代理
TCPRouteL4TCP Listener、端口和后端数据库、长连接服务
UDPRouteL4UDP Listener、端口和后端DNS、实时遥测、部分实时通信

这一区分带来一个实际结果:如果应用本来就只暴露 TCP 或 UDP,继续把它包装成 HTTP 规则并不能增加可移植性;而直接采用对应的 Route 类型,可以让 Gateway 的监听协议、路由类型和后端关系更清楚。

Gateway TCP 和 UDP 监听器、TCPRoute 与 UDPRoute、后端 Service 的静态关系说明图
图1:结构图,展示 Gateway 监听器如何分别承接 TCPRoute、UDPRoute 并指向后端 Service;这是静态说明图,不是运行截图。

三、读懂一条四层路由的组成关系

官方示例的关系可以压缩成四个检查点:Gateway 提供监听器,监听器声明 TCP 或 UDP 协议;allowedRoutes.kinds 限定允许挂载的 Route 类型;Route 通过 parentRefs 指向监听器;规则再用 backendRefs 指向 Service。

# Gateway 只允许 TCPRoute 挂载到这个 TCP 监听器
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: example-gateway
spec:
  gatewayClassName: example-gateway-class
  listeners:
    - name: tcp-entry
      protocol: TCP
      port: 12345
      allowedRoutes:
        kinds:
          - kind: TCPRoute
---
# TCPRoute 选择上面的监听器,并把连接转发到 Service 的 6000 端口
apiVersion: gateway.networking.k8s.io/v1
kind: TCPRoute
metadata:
  name: tcp-app
spec:
  parentRefs:
    - name: example-gateway
      sectionName: tcp-entry
  rules:
    - backendRefs:
        - name: my-foo-service
          port: 6000

这里的关键不是 YAML 的字段数量,而是边界是否一致:监听器是 TCP,允许的 Route 是 TCPRoute,Route 的父引用落到对应监听器,后端端口则由 Service 暴露的实际协议端点承接。UDPRoute 的结构相同,只需要把监听器协议和 Route 类型换成 UDP。

四、升级时按四层清单检查,而不是直接替换字符串

如果现有配置仍使用 v1alpha2,可以按下面顺序判断:

  1. 确认资源:只迁移 TCPRoute、UDPRoute 及其关联的 Gateway Listener,先不要把 XBackend 等实验资源混进同一批改动。
  2. 确认 CRD 来源:使用 Gateway API v1.6 对应的 Standard 安装内容,确保集群里已经有 gateway.networking.k8s.io/v1 的资源定义。
  3. 确认控制器:查看目标 Gateway 实现对 v1.6 和 TCPRoute/UDPRoute 的兼容说明或一致性测试结果;Standard Channel 不会替控制器自动升级。
  4. 确认监听器:检查 protocol、端口、allowedRoutes 与 Route 类型是否配套,尤其不要把 TCPRoute 误挂到 HTTP 监听器。
  5. 确认回退边界:保留旧配置和发布说明,先在非生产环境确认控制器能识别 v1,再安排正式迁移。

代码层面的修改通常不复杂,但运维风险集中在“CRD 已升级、控制器未升级”或“Route 已改版本、监听器却没有允许对应 Kind”这两类不对称状态。把它们拆成独立检查项,比一次性全量替换更容易定位问题。

五、别把 Standard 和 Experimental 混在一起

v1.6 引入的 XBackend 是实验资源,使用 gateway.networking.x-k8s.io API Group,官方明确提示它的行为仍可能变化,不应当按照生产稳定能力理解。TCPRoute 和 UDPRoute 则属于另一条路径:它们从实验通道毕业,进入标准通道,并落到 gateway.networking.k8s.io/v1。

Gateway API v1.6 Standard Channel 与 Experimental Channel 的资源和 API Group 边界说明图
图2:结构图,展示 Standard 与 Experimental 的 API Group、版本和资源边界;这是版本关系说明图,不是发布页面截图。

可以用一个简单规则避免误判:看到 gateway.networking.k8s.io/v1,先按 Standard 资源检查;看到 gateway.networking.x-k8s.io 或 X 前缀,先按 Experimental 资源评估兼容性和变更风险。最终仍以目标控制器的实现说明为准。

六、最后用速查表决定是否迁移

你的现状建议动作重点检查
需要 TCP/UDP 路由,控制器已支持 v1.6可以规划迁移到 v1CRD、Listener、Route Kind、后端端口
需要 TCP/UDP 路由,但控制器只说明支持旧版本先做兼容性验证控制器版本、转换行为、回滚方式
正在评估 XBackend 或其他实验能力与稳定路由迁移分开Experimental API Group、变更承诺、实现限制
只有 HTTP/TLS 流量无需为了 v1.6 强行改造是否真的需要 L4 协议路由

一句话总结:Gateway API v1.6 的核心收益,是把 TCPRoute 和 UDPRoute 带入了更稳定、更可移植的标准 API 边界;迁移的核心工作,则是同步检查 CRD、控制器、监听器和 Route 之间的关系。把稳定资源与实验资源分开评估,升级会更稳。

相关问题

TCPRoute 和 HTTPRoute 能共用一个 Gateway 吗?

可以考虑共用同一个 Gateway,但要为不同协议配置对应 Listener,并在 allowedRoutes 中允许匹配的 Route Kind。是否支持还要看具体实现。

v1alpha2 能继续使用吗?

官方发布说明已经将 TCPRoute 和 UDPRoute 的 v1alpha2 标记为弃用。短期兼容不代表长期安全,新的迁移计划应优先面向 v1。

进入 Standard Channel 是否代表所有控制器都支持?

不是。Standard Channel 描述的是 Gateway API 的稳定性边界,仍需查看目标控制器的版本与一致性支持情况。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
CNCF 沙箱项目进入孵化阶段通常意味着什么CNCF 沙箱项目进入孵化阶段通常意味着什么
上一篇
CNCF 沙箱项目进入孵化阶段通常意味着什么
OpenTelemetry Collector 怎样选择接收器和导出器
下一篇
OpenTelemetry Collector 怎样选择接收器和导出器
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    694次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    706次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    775次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    735次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    568次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议 和 隐私政策
返回登录
  • 重置密码