Kubernetes/网关
offends 7a2f41e7d6
All checks were successful
continuous-integration/drone Build is passing
synchronization
2024-08-07 18:54:39 +08:00
..
GatewayAPI synchronization 2024-08-07 18:54:39 +08:00
Ingress synchronization 2024-08-07 18:54:39 +08:00
README.md synchronization 2024-08-07 18:54:39 +08:00

本文作者:丁辉

网关介绍

Ingress和Gateway API都是Kubernetes集群中用于处理外部流量进入集群的资源类型但它们有不同的设计目标和功能特点。

Ingress

Ingress 是Kubernetes中用来管理进入集群的HTTP和HTTPS流量的资源。它通过定义一些规则来控制服务如何对外暴露并且通常与Ingress控制器一起使用后者负责实际处理和路由流量。

主要特点:

  1. 规则定义:通过定义主机名、路径等规则来路由流量到不同的服务。
  2. TLS支持可以配置TLS证书以支持HTTPS。
  3. 负载均衡:提供基础的负载均衡功能。
  4. 扩展性通过注解支持一些扩展功能但这些功能通常是特定于某个Ingress控制器的。

常见Ingress控制器

  • NGINX Ingress Controller
  • Traefik
  • HAProxy
  • Kong

Gateway API

Gateway API 是Kubernetes社区中一个相对较新的项目它提供了一组面向现代服务的标准化API旨在替代和扩展现有的Ingress API。Gateway API更加灵活和强大能够支持更复杂的路由和流量管理需求。

主要特点:

  1. 分离角色将Gateway流量入口与Route路由规则分开允许不同团队分别管理。
  2. 增强的路由能力支持HTTP、TCP、TLS等多种协议并且能够定义更复杂的路由规则。
  3. 统一的配置模型:提供了一致的配置模型,便于扩展和定制。
  4. 多租户支持通过支持Namespace和GatewayClass方便在多租户环境中使用。

主要资源:

  • Gateway:定义网关的配置,如监听端口、协议等。
  • GatewayClass:定义网关的实现类型。
  • HTTPRouteTCPRouteTLSRoute等:定义具体的路由规则。

Kubernetes官方对Ingress和Gateway API的态度

Ingress API

  • 稳定性Ingress API已经在Kubernetes中稳定运行多年是许多集群中用于管理外部流量的关键组件。
  • 维护虽然Ingress API依然会继续维护但其功能和扩展性已经接近饱和未来的开发重点将更多地转向Gateway API。

Gateway API

  • 现代化设计Gateway API是一个更现代化的流量管理解决方案设计上更加模块化、灵活并且具备更强的可扩展性。
  • 功能丰富相比Ingress APIGateway API支持更多的协议如TCP、UDP、TLS等并且可以定义更复杂的路由和流量管理规则。
  • 未来发展方向Kubernetes社区将把主要的开发和改进精力投入到Gateway API上以满足未来更加复杂和多样化的流量管理需求。