内容提要
Kubernetes Gateway API是一组新的网络API,用于管理和配置负载均衡器、网关和流量路由。它提供了更灵活、更强大的功能,支持复杂的流量管理和路由需求。使用之前需要安装负载均衡器实现和确保Kubernetes版本大于1.25。安装Envoy Gateway和创建GatewayClass的步骤可以参考官方文档。然后创建Gateway、HTTPRoute、Service和Deployment。如果不知道如何配置Gateway API,可以使用官方的Ingress2Gateway工具进行迁移。在生产环境中,推荐使用Ingress。
延伸解读
Gateway API 与 Ingress 的定位差异
文章指出 Gateway API 是 Kubernetes 网络资源的现代化替代方案,相比 Ingress 支持更复杂的流量管理和路由需求。其核心概念如 GatewayClass、Gateway 和 HTTPRoute 分别对应网关实现、入口点和路由规则,这种分层设计让职责更清晰。但作者也强调,在生产环境中仍推荐使用 Ingress,除非有迫切需求,这暗示 Gateway API 的成熟度和运维成本仍需权衡。
国内环境部署的镜像调整要点
由于国内访问 Docker Hub 困难,文章在安装 Envoy Gateway 时建议修改 YAML 中的镜像为可访问的版本,并通过创建 EnvoyProxy 资源来指定自定义镜像。这包括 envoyDeployment 的容器镜像和 shutdown-manager 的镜像。这一步骤对于在国内顺利部署至关重要,否则可能因镜像拉取失败导致安装中断。
从 Ingress 迁移的辅助工具
如果对 Gateway API 配置不熟悉,文章提到可以使用官方的 Ingress2Gateway 工具快速迁移。只需执行 ingress2gateway print --input_file=ingress.yaml 命令,即可将现有 Ingress 资源转换为 Gateway API 资源。这降低了迁移门槛,但迁移后仍需验证路由规则是否符合预期,尤其是复杂流量场景。
生产环境选型的谨慎建议
尽管 Gateway API 已发布 v1.0.1 版本,作者仍建议在没有迫切需求时,生产环境继续使用 Ingress。这可能是因为 Gateway API 相对较新,生态和运维经验不如 Ingress 成熟。对于追求稳定性的团队,贸然切换可能带来未知风险,因此评估实际需求后再决定是否采用更为稳妥。
Q&A
Kubernetes Gateway API 的主要功能是什么?
Kubernetes Gateway API 用于管理和配置负载均衡器、网关和流量路由,支持复杂的流量管理和路由需求。
使用 Kubernetes Gateway API 前需要满足哪些条件?
需要安装负载均衡器实现(推荐使用 MetalLB),并确保 Kubernetes 版本大于 1.25。
如何安装 Envoy Gateway?
可以通过下载 YAML 文件并修改镜像为可访问的版本,然后使用 kubectl apply -f install.yaml 命令进行安装。
Kubernetes Gateway API 的核心概念有哪些?
核心概念包括 GatewayClass、Gateway、HTTPRoute、TLSRoute、TCPRoute 和 UDPRoute。
如何从 Ingress 迁移到 Gateway API?
可以使用官方的 Ingress2Gateway 工具,通过执行命令 ingress2gateway print --input_file=ingress.yaml 来完成迁移。
在生产环境中使用 Gateway API 的建议是什么?
在生产环境中,推荐使用 Ingress,除非有迫切需求使用 Gateway API。