Ingress2Gateway 项目概览:为什么它是 Kubernetes Ingress 迁移的最佳选择
Ingress2Gateway 项目概览:为什么它是 Kubernetes Ingress 迁移的最佳选择
【免费下载链接】ingress2gatewayConvert Ingress resources to Gateway API resources项目地址: https://gitcode.com/gh_mirrors/in/ingress2gateway
Ingress2Gateway 是一款强大的工具,专门用于将 Kubernetes Ingress 资源转换为 Gateway API 资源,为用户提供了从传统 Ingress 平滑迁移到 Gateway API 的最佳解决方案。随着 Kubernetes 生态的不断发展,Gateway API 已成为下一代流量管理标准,而 Ingress2Gateway 则是这一过渡过程中的关键助力。
为什么需要从 Ingress 迁移到 Gateway API?
在 KubeCon NA 2025 亚特兰大会议上,SIG Network 宣布了 Ingress NGINX 的退役计划,给用户仅四个月的时间迁移到其他解决方案。这一消息凸显了及时迁移的紧迫性。Ingress NGINX 拥有约 100 个自定义注解,这些注解扩展了 Kubernetes Ingress 资源的功能,但其中许多在 Gateway API 中没有直接的映射。因此,对于用户来说,找到一种能够最大程度覆盖这些注解的迁移工具至关重要,而 Ingress2Gateway 正是为此而生。
Ingress2Gateway 的核心架构
Ingress2Gateway 在设计上主要包含两个核心组件:providers(提供者)和emitters(发射器)。这种架构确保了迁移过程的灵活性和可扩展性。
工作流程解析
提供者(Providers):负责读取 Ingress 相关资源,并输出一个与 Ingress 实现无关的中间表示(IR),即
EmitterIR。这个中间表示包含了标准的 Gateway API 资源以及一些无法用标准 Gateway API 表达的额外信息。例如,ingressnginx 提供者 能够理解 Ingress NGINX 的特定注解,并将其转换为通用的中间表示。通用发射器(Common Emitter):接收提供者输出的
EmitterIR,并根据配置将其转换为可能非标准的 Gateway API 资源。它实现了诸如“使用任何 Gateway API 特性还是仅使用稳定特性”的逻辑,并再次输出EmitterIR。特定实现发射器(Implementation-specific Emitters):读取通用发射器输出的
EmitterIR,最终生成 Gateway API 资源以及特定实现所需的资源。例如,Envoy Gateway 发射器 能够输出 Envoy Gateway 特有的资源。
架构图示
+------------------------------+ |(Ingress + related Resources) | +-----+------------------------+ | | 1) provider.ToIR(resources) v +-----+--------+ | Emitter IR 1 | +-----+--------+ | | 2) CommonEmitter.Emit(IR 1) v +-----+--------+ | Emitter IR 2 | +-----+--------+ | | 3) emitter.Emit(IR 2) v +-----+-----------------------------+ | Gateway API Resources | | Implementation-specific Resources | +-----------------------------------+治理与可维护性保障
为确保项目的长期稳定性,Ingress2Gateway 对希望提供自定义发射器的 Gateway API 实现者列出了明确的期望:
- 安全响应:所有服务于单一供应商或实现的代码(“第三方代码”)必须指定安全联系人,以便在发现安全问题时能在最多 3 个工作日内响应。
- 代码组织:所有第三方代码必须位于单独的目录/模块中,并通过
CODEOWNERS文件明确负责代码审查的人员。 - 问题处理:关于第三方代码的审查和问题必须在 30 天内进行分类和响应。
此外,第三方发射器的代码所有者必须承诺:
- 在 Gateway API 新版本发布后 60 天内,更新第三方发射器以跟上上游变化。
- 确保第三方发射器的输出在 Gateway API 新版本发布后 60 天内符合定义的范围。
若未能履行这些责任,相关的第三方发射器将触发移除流程,包括在下次次要版本中标记为弃用并发出警告,随后在后续次要版本或 30 天内(以较晚者为准)移除。
支持的实现与应用范围
Ingress2Gateway 支持多种主流的 Gateway API 实现,包括但不限于:
- Envoy Gateway:通过 envoygateway 发射器 实现与 Envoy Gateway 的无缝集成。
- Istio:istio 提供者 能够处理 Istio 相关的 Ingress 资源转换。
- Kong:借助 kong 提供者 和 kong 发射器 支持 Kong 网关的迁移。
在输出范围方面,Ingress2Gateway 严格限制为:
- 上游 Gateway API 资源
- 任何与 GEP 713 兼容且在 upstream Gateway API 范围内(但尚未成为其一部分)的 Policy 资源
- 任何与 extensionRef 兼容且在 upstream Gateway API 范围内(但尚未成为其一部分)的资源,包括 HTTPRoute 过滤器的 extensionRefs 等
例如,允许输出类似 EnvoyGateway 的HTTPRouteFilter这样的资源,但不允许输出类似 Istio 的 EnvoyFilter 这种超出 Gateway API 项目范围的原始配置。
如何开始使用 Ingress2Gateway?
要开始使用 Ingress2Gateway 进行 Ingress 资源的迁移,首先需要克隆项目仓库:
git clone https://gitcode.com/gh_mirrors/in/ingress2gateway项目的详细使用说明和更多技术细节可以在 官方文档 中找到。通过简单的命令行操作,你就可以将现有的 Ingress 资源快速、准确地转换为符合 Gateway API 规范的资源,为你的 Kubernetes 集群流量管理升级铺平道路。
Ingress2Gateway 凭借其强大的功能、灵活的架构和严格的治理策略,成为 Kubernetes Ingress 迁移的不二之选。无论你是新手还是有经验的用户,都能轻松上手并从中受益,顺利完成向 Gateway API 的过渡。
【免费下载链接】ingress2gatewayConvert Ingress resources to Gateway API resources项目地址: https://gitcode.com/gh_mirrors/in/ingress2gateway
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
