Ingress 和 Gateway API 支持
Ingress Controller 会协调 Kubernetes Gateway API 和 Ingress 资源。下表列出生产清单中可用的 API 和字段。
请参阅配置示例,了解何时以及如何使用各类资源。
Gateway API
Gateway API 将基础设施、Gateway 和 Route 配置分离,使其可以分别由不同团队管理。请参阅使用 Kubernetes RBAC 委派 Gateway API 访问权限配置用户权限,并参阅配置跨命名空间引用授权 Route 挂载和跨命名空间资源引用。
Gateway API 版本
- Gateway API 1.6.0 release
- Gateway API 1.6.0 API definitions
gateway.networking.k8s.io/v1
Helm Chart 参考中列出的兼容 Controller Chart 提供 Gateway API 1.6.0 standard bundle。其中的 CRD 包含支持矩阵使用的 v1 L4 Route API。由 Chart 管理的安装无需单独执行 CRD 安装命令。
独立的 APISIX Ingress Controller Chart 1.4.0 默认将 Gateway API bundle 渲染为 Helm 模板。对象不存在或已由同一个 release 拥有时,该 Chart 会渲染它。如果集群平台拥有 Gateway API,请设置 crds.gatewayAPI.enabled=false;仅使用 --skip-crds 不会禁用这些模板。
API7 Ingress Controller Chart 0.1.28 与 APISIX umbrella Chart 的 Controller 1.3.0 依赖项都通过静态 CRD 生命周期打包 Gateway API。当集群平台拥有 Gateway API 时,请配置这些 release 跳过捆绑的静态 CRD。
手动管理 bundle 时,请使用服务端 apply,因为这些 CRD 会超过客户端注解大小限制:
kubectl apply --server-side --force-conflicts \
-f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.6.0/standard-install.yaml
如果 CRD 已由 Chart、GitOps release 或其他平台组件管理,请勿运行此手动命令。
资源支持级别
下表概述当前实现对 Gateway API 资源的支持级别。它描述已实现的行为,并非上游一致性声明。
| 资源 | 核心 | 扩展 | 特定实现 | API 版本 |
|---|---|---|---|---|
| GatewayClass | 支持 | 不适用 | 不支持 | v1 |
| Gateway | 部分支持 | 部分支持 | 部分支持 | v1 |
| HTTPRoute | 支持 | 部分支持 | 部分支持 | v1 |
| GRPCRoute | 支持 | 部分支持 | 部分支持 | v1 |
| ReferenceGrant | 支持 | 不支持 | 不支持 | v1 |
| TLSRoute | 支持 | 支持 | 不支持 | v1 |
| TCPRoute | 支持 | 支持 | 不支持 | v1 |
| UDPRoute | 支持 | 支持 |