探索Apache APISIX:动态高性能API网关 - 实践

news/2025/11/11 12:01:56/文章来源:https://www.cnblogs.com/yxysuanfa/p/19209669

Apisix是什么?

Apache APISIX 是一个基于 OpenResty 和 Etcd 实现的动态、实时、高性能的 API 网关,目前已经是 Apache 顶级项目。提供了丰富的流量管理功能,如负载均衡、动态路由、动态 upstream、A/B 测试、金丝雀发布、限速、熔断、防御恶意攻击、认证、监控指标、服务可观测性、服务治理等。可以使用 APISIX 来处理传统的南北流量以及服务之间的东西向流量。

APISIX 基于 Nginx 和 etcd,与传统 API 网关相比,APISIX 具有动态路由和热加载插件功能,避免了部署之后的 reload 操作,同时 APISIX 协助 HTTP(S)、HTTP2、Dubbo、QUIC、MQTT、TCP/UDP 等更多的协议。而且还内置了 Dashboard,提供强大而灵活的界面。同样也给予了丰富的插件支持功能,而且还可以让用户自定义插件

Apisix架构图

上图是 APISIX 的架构图,整体上分成信息面和控制面两个部分,控制面用来管理路由,关键通过 etcd 来实现设置中心,内容面用来处理客户端请求,通过 APISIX 自身来构建,会不断去 watch etcd 中的 route、upstream 等数据。

APISIX Ingress 工作原理

同样作为一个 API 网关,APISIX 也支持作为 Kubernetes 的一个 Ingress 控制器进行利用。APISIX Ingress 在架构上分成了两部分,一部分是 APISIX Ingress Controller,作为控制面它将做完配置管理与分发。另一部分 APISIX(代理) 负责承载业务流量。

通过进行变更、扩缩容或者迁移处理等,都不会影响到用户和业务流量。就是当 Client 发起请求,到达 Apache APISIX 后,会直接把相应的业务流量传输到后端(如 Service Pod),从而搞定转发过程。此过程不需要经过 Ingress Controller,这样做能够保证一旦有问题出现,或者

同时在配置端,用户通过 kubectl apply 创建资源,可将自定义 CRD 配置应用到 K8s 集群,Ingress Controller 会持续 watch 这些资源变更,来将相应配置应用到 Apache APISIX(通过 admin api)。

从上图可以看出 APISIX Ingress 采用了数据面与控制面的分离架构,所以用户可以选择将数据面部署在 K8s 集群内部或外部。但 Ingress Nginx 是将控制面和数据面放在了同一个 Pod 中,如果 Pod 或控制面出现一点闪失,整个 Pod 就会挂掉,进而影响到业务流量。这种架构分离,给用户献出了比较方便的部署选择,同时在业务架构调整场景下,也方便进行相关数据的迁移与使用。

APISIX Ingress controller Resources

控制器目前拥护的核心特性包括:

  • 全动态,拥护高级路由匹配规则,可与 Apache APISIX 官方 50 多个插件 & 客户自定义插件进行扩展启用

  • 支持 CRD,更容易理解声明式配备

  • 兼容原生 Ingress 资源对象和 Gateway API

  • 支持流量切分

  • 服务自动注册发现,无惧扩缩容

  • 更灵活的负载均衡策略,自带健康检查功能

  • 拥护 gRPC plaintext 与 TCP 4 层代理

  1. service

在 Kubernetes 中,Service 是一种将一组 Pod 上运行的网络应用程序公开为网络服务的方法。

当代理入口流量时,APISIX Gateway 默认将流量直接引导至 Pod,而不是通过 kube-proxy。

  1. EndpointSlice

EndpointSlice 对象表示服务的后端网络端点的子集(切片)。

APISIX Ingress Controller 持续跟踪匹配的 EndpointSlice 对象,每当 Service 中的 Pod 集合发生变化时,APISIX Gateway 代理的 Pod 集合也会相应更新。

  1. ingress

HTTP 和 HTTPS 流量。它提供了一种定义将外部流量路由到内部服务的规则的方法。就是Ingress 是一种 Kubernetes 资源,用于管理集群内服务的外部访问,通常

APISIX Ingress Controller CRDs API

APISIX Ingress Controller 定义了几个自定义资源定义 (CRD) 来声明性地管理路由、上游、TLS 和集群设置。

Gateway API (kubernetes 原生网关)

启用标准 Kubernetes Gateway API 中未包含的附加功能,这些功能由 Gateway API 实施者开发和维护,以安全可靠地扩展功能。

  • GatewayProxy:定义 APISIX Ingress Controller 与 APISIX 之间的连接设置,包括 auth、endpoint 和全局插件。通过 Gateway、GatewayClass 或 IngressClass 中的 parametersRef 引用。

  • BackendTrafficPolicy:定义后端服务的流量管理设置,包括 APISIX Ingress Controller 中的负载平衡、超时、重试和主机头处理。

  • 消费者:定义 API 消费者及其凭证,启用身份验证和插件配置来控制对 API 端点的访问。

  • PluginConfig:定义可重复使用的插件配置,可以被 HTTPRoute 等其他资源引用,从而构建路由逻辑和插件设置的分离,从而搭建更好的可重用性和可管理性。

  • HTTPRoutePolicy:为HTTPRoute或Ingress资源配置高级流量管理和路由策略,在不修改原有资源的情况下增强功能。

APISix Ingress CRD

APISIX Ingress Controller CRD 扩展了 Kubernetes 能力,为 Apache APISIX 网关提供声明式配置管理,支持高级路由、流量管理和安全策略。

  • ApisixRoute:定义 HTTP/TCP/UDP 的路由规则,支持路径匹配、主机名、手段过滤和后端服务配置。可以引用 ApisixUpstream 和 ApisixPluginConfig 资源。

  • ApisixUpstream:依据负载平衡、健康检查、重试、超时和服务子集选择等高级配置扩展 Kubernetes 服务。

  • ApisixConsumer:定义 API 消费者及其身份验证凭证,支持 basicAuth、keyAuth、jwtAuth、hmacAuth、wolfRBAC 和 ldapAuth 等方法。

  • ApisixPluginConfig:通过 plugin_config_name 字段定义 ApisixRoute 引用的可重用插件配置,促进路由逻辑和插件设置的分离。

  • ApisixTls:管理 SSL/TLS 证书,帮助 SNI 绑定和相互 TLS,以构建安全的 APISIX 网关连接

四种途径创建apisix 资源

  • dashbaord (实际也是admin api)

  • 调用admin api

  • kubectl 创建ingress 为apisix的ingress-controller

  • kubectl crd 创建apisix 资源

官方推荐依据

APISIX 官方文档明确区分了两种利用场景:

场景推荐方式理由
Kubernetes 部署(使用 apisix-ingress-controller)✅ CRD(Custom Resource Definition)通过 ApisixRoute、ApisixConsumer、ApisixUpstream 等 CRD,将配置与 K8s 原生对象绑定,方便 GitOps、声明式配置、自动同步。
独立部署(裸机 / VM / Docker / 云实例)✅ Admin API

没有 K8s 控制器时,Admin API 是唯一方式。动态、灵活,但应该显式调用或编写脚本。

详细对比:CRD vs Admin API

对比项使用 CRD应用 Admin API
部署场景K8s 内任意环境
操作方式声明式(YAML + kubectl apply)命令式(curl / SDK)
变更检测由 apisix-ingress-controller 自动 watch 同步需手动调用 Admin API
自动化能力✅ GitOps / CI/CD 原生支持❌ 需额外封装或脚本
可见性资源状态存储在 etcd + k8s仅 APISIX etcd 内
风险控制权限由 K8s RBAC 管理需保护 Admin API 密钥
灵活性由 CRD schema 限制,稳定但保守可用全量 APISIX 功能(插件、路由、流量控制等)
一致性管理Controller 自动保证自行维护版本与回滚

混合使用的实际做法(大型团队常用)

大部分生产环境其实采用「CRD + Admin API」混合方案:

  • 90% 配置走 CRD(例如路由、认证、消费者、上游等标准配置);

  • 10% 特殊用途走 Admin API(例如 debug、动态注入插件、灰度流量控制)。

一句话总结

在 Kubernetes 环境中:官方推荐使用 CRD。

在非 K8s 环境中:应用 Admin API。

参考文献

https://apisix.apache.org/zh/docs/ingress-controlle

https://apisix.apache.org/zh/docs/apisix

https://www.qikqiak.com/k3s/network/apisix/#APISIX-Ingress

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/962242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年评价高的箱涵管道清淤机器人实力厂家TOP推荐榜

2025年评价高的箱涵管道清淤机器人实力厂家TOP推荐榜行业背景与市场趋势随着我国城市化进程加速和环保要求日益严格,市政管网、工业污水处理等领域的清淤需求呈现爆发式增长。据中国环保产业协会最新数据显示,2024年…

2025-11-10

CF Problem - 1084C - Codeforces 简单题,算每一块中a的数量,对于每一块,有选0,1,2……,k种,k+1种选法 #include <bits/stdc++.h> using namespace std; #define LL long long const LL mod = 1e9+7; con…

2-2-3-一致性哈希

一、一致性哈希基本概念 一致性哈希算法是一种特殊的哈希技术,主要用于分布式系统中解决数据分片和负载均衡问题,尤其在节点动态增减时最小化数据迁移。以下从背景问题、原理、工作机制、优化措施、优缺点及应用场景…

2025年比较好的六角网眼布厂家推荐及选择指南

2025年比较好的六角网眼布厂家推荐及选择指南行业背景与市场趋势六角网眼布作为一种功能性纺织材料,近年来在鞋材、家纺、服装、箱包等领域的应用持续扩大。根据中国纺织工业联合会最新数据显示,2024年中国功能性网布…

安装sherpa过程中遇到的问题记录

最近在研究sherpa框架的相关问题,目前在搭建过程中碰到了一些问题在这里进行记录: 问题1、centos安装报错 Cant link to the standard math library. 解决方案: 1、重新安装glibc库,命令:sudo yum reinstall glib…

详细介绍:TIA Portal中运动控制(一)(功能块MC_Power...)

详细介绍:TIA Portal中运动控制(一)(功能块MC_Power...)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

详细介绍:基于卷积神经网络的血管图像自动分割算法研究

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

阿里云通过中国信通院首批安全可信中间件评估

近日,由中国信通院主办的 2025(第五届)数字化转型发展大会在京举行。会上,“阿里云应用服务器软件 AliEE”、“消息队列软件 RocketMQ”、“云数据库 Tair”三款产品成功通过中国信通院“安全可信中间件”系列评估…

GTest源码分析——用例注册与执行过程

GTest源码分析——用例注册与执行过程google/googletest | DeepWiki Google Test(GTest)使用方法和源码解析——自动调度机制分析_&test::testbody-CSDN博客本文不是按照阅读源码时的分析顺序,而是在阅读源码后,…

Excel处理控件Aspose.Cells教程:如何使用C#在Excel中添加、编辑和更新切片器

Excel 中的切片器是 Excel 最直观的数据筛选和可视化工具之一。本教程将展示如何借助Aspose.cells使用C#在Excel中添加切片器,您还将学习如何以编程方式编辑和更新切片器,以及如何为分析师、数据专家和开发人员打造功…

php版本的发QQ邮件

<?phpclass Smtp {// 邮件传输代理服务器地址protected $sendServer;// 邮件传输代理服务器端口protected $port;// 是否是安全连接protected $isSecurity;// 邮件传输代理用户名protected $userName;// 邮件传输代…

A股的特点就是资金和筹码游戏,利用T+1割散户

ECT-OS-JiuHuaShan/https://orcid.org/0009-0009-0006-8591-1891对A股市场的观察很敏锐。确实,A股市场有其独特的运行特征,其中资金驱动、筹码博弈和T+1制度确实是重要的影响因素。让我们从更系统的角度来分析这些特…

绕过验证码与登录:Playwright 自动化测试的身份认证策略

关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集 在自动化测试中,登录和验证码往往是两大“拦路虎”。它们的设计初衷就是为了区分人类和机器,而这恰恰与自动化测试的目标相悖。特别是验证…

深入解析:Excel VLOOKUP函数完全教程:从基础到高级实战

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

FastReport在线设计器2026.1版本发布,新增报表验证工具等

新版 FastReport Online Designer进行了多项重大改进并新增了多项功能。还包含重新设计的主工具栏、改进的代码自动完成系统 (IntelliSense)、调整标签大小的功能,以及禁止编辑 .NET 解决方案数据源的功能。此外,还修…

2025年直流分流器直销厂家权威推荐榜单:分流器/车规分流器/储能分流器源头厂家精选

在电气测量与电力系统领域,直流分流器作为关键的电流检测元件,其性能直接关系到系统测量的精度与运行的可靠性。据2025年工业电气测量设备市场调研数据显示,直流分流器在新能源、工业控制、电力系统等领域的应用覆盖…

2025年质量好的透明封箱胶带高评价厂家推荐榜

2025年质量好的透明封箱胶带高评价厂家推荐榜行业背景与市场趋势透明封箱胶带作为包装行业的基础耗材,其市场需求随着电商物流、制造业和零售业的蓬勃发展而持续增长。根据中国包装联合会最新数据显示,2024年中国胶带…

基于Dify工作流,轻松构建会自我优化的测试智能体

关注 霍格沃兹测试学院公众号,回复「资料」, 领取人工智能测试开发技术合集 在软件开发领域,测试工作一直是保障产品质量的关键环节,但传统的手工测试用例编写方式效率低下且容易遗漏边界场景。每当新功能上线,测试…

团队作业第二次作业

作业 团队项目随笔报这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience/homework/13…

2025年热门的铝合金变形缝行业内知名厂家排行榜

2025年热门的铝合金变形缝行业内知名厂家排行榜行业背景与市场趋势铝合金变形缝作为建筑行业的重要功能性构件,近年来随着我国基建投资持续增长和建筑质量要求不断提高,市场规模呈现稳定上升态势。据中国建筑金属结构…