跳到主要内容

Ingress Controller 文档

API7 Ingress Controller 与 API7 企业版配合使用,APISIX Ingress Controller 则与开源 Apache APISIX 网关配合使用。

两个控制器共享本文档所述的资源 API、使用模式和功能设计。二者的安装与连接细节不同。

简介

API7 / APISIX Ingress Controller(AIC)是 Kubernetes Ingress Controller,可将 Kubernetes 资源(例如 Ingress、Gateway API 和 APISIX 自定义 CRD)转换为 API7 / APISIX 网关配置。借助 AIC,你可以直接通过 Kubernetes 以声明式方式管理路由、SSL、插件、上游和其他网关资源。

如果符合以下任一场景,建议使用 AIC:

  • 你正在 Kubernetes 环境中部署 APISIX 或 API7 网关。
  • 你希望以完全 Kubernetes 原生的方式管理 API 网关。

支持的资源

AIC 支持以下 Kubernetes 资源:

  • Gateway API 1.6 是现代、可扩展的 Kubernetes 原生流量管理 API。两个控制器支持多监听器、HTTP、gRPC、TCP、UDP 和 TLS 路由、下游 mTLS 以及更丰富的流量策略。字段级支持请参阅 Ingress 和 Gateway API 支持
  • Ingress 是用于将基础 HTTP/S 流量路由到后端服务的旧版 Kubernetes 原生 API。它不支持 Gateway API 或 APISIX CRD 中的全部高级配置。
  • APISIX CRD 可对路由、插件、上游和其他网关能力进行细粒度控制。L4RoutePolicy 可将 stream 插件挂载到 Gateway API TCP、UDP 和 TLS 路由。

已安装 Controller 所支持的资源可以在同一个 Kubernetes 集群中共存。应用清单前,请确认已安装的产品版本支持相应资源或字段。部分功能只适用于特定资源类型,因此组合使用多种资源时应避免配置冲突。

下图展示 Ingress Controller 如何组合标准 Gateway API 资源和自定义资源,在 Kubernetes 环境中定义路由、流量策略和网关行为:

API7/APISIX Ingress Controller 的 Kubernetes 资源模型:Gateway 引用 GatewayClass 和 GatewayProxy;HTTPRoute 与 TCPRoute 挂载到 Gateway 并指向后端 Service;HTTPRoutePolicy 挂载到 HTTPRoute,BackendTrafficPolicy 挂载到 Service

AIC 如何处理 Kubernetes 资源

AIC 将 Ingress、Gateway API 和 APISIX CRD 资源转换为内部 ADC YAML,然后将配置同步到网关。

APISIX Ingress Controller 与 API7 Ingress Controller

两个控制器共享本文档所述的 Kubernetes 资源 API 与功能。它们连接各自网关及随网关部署的方式不同,包括命名空间、上游服务配置和 GatewayProxy 连接配置。

部署架构

以下架构图使用单控制器拓扑展示 API7 Ingress Controller 与 APISIX Ingress Controller 的不同部署模式。

API7 Ingress Controller

API7 Ingress Controller 支持一种部署模式:控制器直接与 API7 控制面(API7 控制台)通信。

API7 Ingress Controller 部署拓扑:API7 Ingress Controller 与 API7 网关数据面实例运行在 Kubernetes 集群中,并将 Kubernetes 资源转换为通过集群外 API7 控制面下发的配置

APISIX Ingress Controller

APISIX Ingress Controller 支持两种部署模式:独立模式和传统模式。

独立模式

相比使用 etcd 的传统模式,更推荐独立模式。该模式用于解决在 Kubernetes 内运行 APISIX 和 etcd 时可能出现的稳定性问题。

独立模式部署:APISIX Ingress Controller 和 APISIX 数据面均运行在 Kubernetes 集群中;APISIX 以 API 驱动的独立模式运行,控制器通过 APISIX Admin Service 向其推送配置,不依赖 etcd 集群

传统模式

在传统部署模式中,APISIX 使用 etcd 作为配置中心。

传统模式部署:APISIX Ingress Controller 将配置写入 etcd 集群,APISIX 数据面实例监听 etcd 中的变更;所有组件都运行在 Kubernetes 集群中