Ingress 和apisix组件的区别

Apache APISIX Ingress 为何成为又拍云打造容器网关的新选择? 项目背景介绍目前市面上可执行 Ingress 的产品项目逐渐丰富了起来,可选择的范围也扩大了很多。这些产品按照架构大概可分为两类,一类像 K8s Ingress、Apache APISIX Ingress,他们是基于 Nginx、OpenResty 等传统代理器,使用 K8s-Client 和 Golang 去做 Controller。还有一类新兴的用 Golang 语言去实现代理和控制器功能,比如 Traefik。又拍云最开始包括现在的大部分业务仍在使用 Ingress-Nginx,整体架构如下。下层为数 阅读详情

Ingress 和 APISIX 都是处理外部流量进入集群的关键组件,但它们的定位、功能和设计哲学有很大的不同。

简单来说,可以用一个比喻来理解:

  • Ingress:是 Kubernetes 内置的一套交通规则标准。它只定义了“应该如何路由”(比如 A 请求到 B 服务),但它自己并不会开车(执行路由)。你需要一个“司机”(Ingress Controller)来遵守这些规则。
  • APISIX:是一个功能完备、性能卓越的“超级跑车”。它本身就是一个强大的网关产品,不仅能当“司机”来遵守 Ingress 的交通规则,还自带了导航、安防、车载娱乐等一系列高级功能(即 API 网关的全部能力)。

下面我们从多个维度进行详细的对比。


核心区别:定位与定义

  1. Kubernetes Ingress

    • 定位:一种 Kubernetes API 资源(kind: Ingress),是一个标准规范。
    • 作用:它定义了从集群外部访问集群内部服务的规则,主要是 L7 的 HTTP/HTTPS 路由规则,如 Host、Path 匹配。
    • 实现:Ingress 资源本身不具备任何功能。它必须由一个 Ingress Controller 来实现。常见的 Ingress Controller 有 Nginx Ingress Controller, Traefik, HAProxy Ingress 等。选择不同的 Ingress Controller,相应的功能和性能也不同。
  2. Apache APISIX

    • 定位:一个独立、完整的软件产品,是一个高性能、动态的 API 网关。
    • 作用:它提供了一整套 API 管理解决方案,除了基础的路由功能,还包括认证、限流、熔断、日志记录、安全防护、多协议支持等。
    • 实现:APISIX 是基于 Nginx + etcd + Lua 实现的。它可以独立部署在 Kubernetes 集群内外,也可以作为 Ingress Controller 在 Kubernetes 中使用。

功能与特性对比

特性维度Kubernetes Ingress (以 Nginx Ingress Controller 为例)Apache APISIX
核心定位K8s 官方的 L7 路由规范高性能、全功能的 API 网关
功能范畴- 基础功能:HTTP/S 路由、TLS 卸载、负载均衡。
- 高级功能:通常通过 annotations(注解)实现,如重写、认证、限流等,但功能和配置方式依赖于具体的 Controller 实现,不标准。
- 基础功能:所有 Ingress 的功能。
- 高级功能(原生支持):动态身份认证、精细化限流限速、服务熔断、灰度发布/金丝雀发布、蓝绿部署、自定义插件、WAF 防护、gRPC/Dubbo 代理等。
配置方式- 主要通过 Kubernetes 的 YAML 文件(Ingress 资源)来定义。
- 修改配置通常需要 kubectl apply。
- 完全动态:通过 Admin API (RESTful) 进行配置。
- 提供 Dashboard (UI) 方便操作。
- 支持通过 CRD (ApisixRoute, ApisixUpstream 等) 在 K8s 中进行声明式配置。
- 所有配置变更都是热加载,无需重启。
动态能力有限。大多数 Ingress Controller 在更新配置或证书后,需要重新加载 Nginx 配置 (nginx -s reload),这在高并发下可能导致瞬间的连接丢失或延迟增加。极强。APISIX 的路由、插件等所有配置都存储在 etcd 中,并实时同步到网关节点。配置变更在毫秒级生效,对业务流量完全无感,无需重启或重新加载。
性能良好。性能主要取决于其背后的代理软件(如 Nginx),但由于配置管理方式的限制,动态能力和极致性能上有所欠缺。非常高。基于 Nginx C 模块和 LuaJIT,采用了全动态、无锁的设计。在路由匹配和插件执行上进行了深度优化,性能在同类产品中处于领先地位。
扩展性有限。如果需要添加自定义功能,通常需要:
1. 使用 Controller 提供的 annotations(如果支持)。
2. 修改 Nginx 配置模板。
3. 使用 Lua 代码片段(部分 Controller 支持)。
过程复杂,且与 Controller 强绑定。
极强。拥有丰富的插件生态,支持:
1. 使用 Lua 编写自定义插件。
2. 使用 Go, Java, Python 等多语言编写外部插件 (plugin runner)。
3. Wasm (WebAssembly) 插件。
插件可以动态插拔,非常灵活。
部署模式只能在 Kubernetes 集群内,作为 Ingress Controller 部署。非常灵活:
1. 作为 Ingress Controller 在 K8s 中部署。
2. 在 K8s 集群外部署,管理集群流量。
3. 部署在物理机、虚拟机、容器中。
4. 可以统一管理 K8s 集群、虚拟机、云服务等混合环境下的 API。
演进方向Ingress 规范由于其局限性,正在被新一代的 Gateway API 规范所取代。Gateway API 提供了更强大、更标准化的能力。作为一个成熟的 API 网关项目,持续在性能、安全、多协议支持、服务网格(Service Mesh)等领域发展,并完全兼容 Ingress 和 Gateway API 规范。

APISIX Ingress Controller:两者的结合

为了解决上述问题,APISIX 社区推出了 APISIX Ingress Controller。这是一个关键的组件,它将 APISIX 的强大能力与 Kubernetes 的原生体验结合了起来。

它的工作模式是:

  1. 监听:APISIX Ingress Controller 会在 Kubernetes 集群中运行,并监听 Ingress 资源以及 APISIX 自定义的 CRD(如 ApisixRoute, ApisixTls 等)。
  2. 翻译:当检测到这些资源的变化时,它会将这些 K8s 的配置规则翻译成 APISIX 能理解的格式。
  3. 下发:通过 Admin API 将翻译后的配置动态地写入 APISIX 的数据面(Data Plane)中。

这样做的好处是:

  • 对于运维/开发者:你可以继续使用熟悉的 kubectl 和 YAML 文件来管理路由,符合 Kubernetes 的声明式哲学。
  • 对于系统:你获得了 APISIX 带来的全部好处:高性能、动态配置、丰富的插件和高级 API 管理功能。你可以使用 APISIX 的 CRD 来配置那些标准 Ingress 无法实现的高级策略。

总结与选择建议

场景推荐选择原因
简单场景标准 Ingress (如 Nginx Ingress Controller)需求非常简单,只需要基本的 HTTP/S 域名和路径路由,对性能和动态性要求不高。团队熟悉 K8s 原生资源,不想引入新组件。
复杂场景 / 生产环境Apache APISIX (作为 Ingress Controller)- 需要高性能、高可用的流量入口。
- 需要身份认证、限流、安全防护等高级 API 管理功能。
- 需要频繁变更配置且不希望中断服务。
- 希望统一管理 K8s 内外的 API 流量。
- 对可观测性、自定义扩展有较高要求。
面向未来Apache APISIX / Gateway APIGateway API 是 Ingress 的未来,它将 API 网关的许多高级功能标准化了。APISIX 已经很好地支持了 Gateway API,选择 APISIX 意味着你的技术栈能够平滑地演进到下一代标准。

总而言之,Ingress 是一个“入门级”的解决方案,而 APISIX 是一个“专业级”的解决方案。对于对外提供服务的生产系统,使用 APISIX API 网关作为流量入口,是更好的选择。

APISIX Ingress 控制器的安装及原理 APISIX 是动态、实时、高性能的 API 网关。它提供丰富的流量管理功能,比如负载均衡、动态上游、金丝雀发布、熔断、认证、可观测性等。既可以使用 APISIX API 网关处理传统的南北向流量,也可以使用它处理服务间的东西向流量。同时,它也可被用作 Kubernetes Ingress 控制器。APISIX Ingress 控制器提供 Helm 安装方式,但是使用原生 YAML 安装,更加有助于理解其原理。使用原生 YAML 安装 APISIX 和 APISIX Ingress 控制器。 阅读详情

相关推荐

保姆级教程,从概念到实践帮你快速上手 Apache APISIX Ingress

1Apache APISIX Ingress 概览Apache APISIX Ingress 定义在 K8s 生态中,Ingress 作为表示 K8s 流量入口的一种资源,想要让其生效,就需要有一个 Ingress Controller 去监听 K8s 中的 Ingress 资源,并对这些资源进行相应规则的解析和实际承载流量。在当下趋势中,像 Kubernetes Ingress Nginx 就是使用最广泛的 Ingress Controller 实现。而 APISIX Ingress 则是另一种 Ingr

ApacheAPISIX的博客 775

Apisix-Ingress服务发现详解

apisixApache APISIX 是一个基于微服务 API 网关,其不仅可以处理南北向的流量,也可以处理东西向的流量即服务之间的流量。Apache APISIX 集成了控制面板和数据面,与其他 API 网关相比,Apache APISIX 的上游、路由、插件全是动态的,修改这些东西时都不用重启。并且 Apache APISIX 的插件也是热加载,可以随时插拔、修改插件。Apache APIS...

m0_47495420的博客 1590

APISIX Ingress 是如何支持上千个 Pod 副本的应用

Endpoints API 是性能瓶颈

ApacheAPISIX的博客 696

为什么 APISIX Ingress 是比 Traefik 更好的选择?

本文可以为正在选型 Kubernetes Ingress Controller 产品的用户提供一些帮助。 作者张晋涛,API7.ai 云原生专家,Apache APISIX Committer、Kubernetes Ingress Nginx Reviewer Apache APISIX Ingress Apache APISIX Ingress 是一个使用 Apache APISIX 作为数据面的 Kubernetes Ingress controller 实现。 目前,它支持多种规则的配置方式,包括

ApacheAPISIX的博客 1853

为什么 APISIX Ingress 是比 Emissary-ingress 更好的选择?

Apache APISIX Ingress 是 Apache 软件基金会旗下的开源项目,其控制平面负责对 Kubernetes 中资源进行配置转换并进行交付,实际的业务流量则由 APISIX 承载。为了提高安全性,整个部署过程采用了数据面和控制面完全分离的架构,从而有效避免了数据面被攻击导致 Kubernetes 集群权限泄露的风险。

ApacheAPISIX的博客 775

Apache APISIX 社区周报 | 2021 10.15-10.31

导语 Apache APISIX 从开源第一天就以社区方式成长,迅速成为全世界最活跃的开源 API 网关项目。这些成就,离不开社区小伙伴们的共同奋斗。 “独行者速,众行者远”。Apache APISIX 社区周报希望可以帮助社区小伙伴们更好地掌握 Apache APISIX 社区的每周进展,方便大家参与到 Apache APISIX 社区中来。 我们还整理了一些适合新来社区的小伙伴们参加的 issue !感兴趣的同学们,走过路过不要错过! 贡献者统计 Good first issue Issue #686

ApacheAPISIX的博客 550

Ingress 和 APISIX 组件区别全解析:从配置骨架到 TaoToken 统一接入实践

用一份可复制的 Ingress 与 APISIX 配置骨架,拆解两者在 K8s 网关选型中的差异:Ingress 靠注解与 reload,APISIX 走 etcd 动态路由与插件。文中演示如何通过 TaoToken 统一 Key 与 API 通道完成接入验证,官网见 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 。

weixin_28850145的博客 151

如何与 Dapr 集成打造 Apache APISIX 网关控制器

本质上,Apache APISIX 控制器将配置相同标准 Dapr annotations 以注入 daprd sidecar。通过公开这个 sidecar,将允许外部应用程序与集群中启用 Dapr 的应用程序进行通信。下图为实际项目中的架构流程:基本项目概览Apache APISIX Ingress在 K8s 生态中,Ingress 作为表示 K8s 流量入口的一种资源,想要让其生效,就需要有一个 Ingress Controller 去监听 K8s 中的 Ingress 资源,并对这些资源进行相应规则的

ApacheAPISIX的博客 1936

Ingress 和 APISIX 组件区别:从流量入口到网关能力的 TaoToken 实践对照

用 ApisixRoute 把 /v1/chat/completions 转发到 TaoToken 实测:Ingress 只是路由标准,APISIX 自带插件与热加载。文中给出可复制 YAML、curl 验证与 401、local proxy failed 排障,助你完成网关选型。详见 https://taotoken.net/?utm_source=taotoken_aicg_blog_end

weixin_35307279的博客 6

apisix-ingress-controller:K8的入口控制器

适用于Kubernetes的Apache APISIX 使用进行Kubernetes 。 apisix-ingress-controller中的所有配置都是使用Kubernetes CRD(自定义资源定义)定义的。 例如Apache APISIX中的configure ,针对上游的支持服务注册发现机制,负载平衡等。 apisix-ingress-controller是Apache APISIX控制平面组件。 目前,它适用于Kubernetes集群。 将来,我们计划将子模块分开以适应更多的部署模式,例如虚拟机集群。 apisix-ingress-controller的技术架构: 地位 该项目目前被认为是实验性的。 特征 使用具有最小学习曲线的k8s yaml结构,对具有自定义资源定义(CRD)的Apache APISIX进行声明式配置。 适用于Yaml期间的热重装。 本机Ku

在Unity3d使用yolov8的onnx模型

输出OUTPUTS是float32[1,35,8400],表示它会输出一个大小为[1, 35, 8400]的浮点数张量。这个输出张量的维度表示了检测到的目标的数量、每个目标的预测参数以及网格单元的数量。输出张量的第一个维度1表示检测到的目标数量。每个目标由35个值组成,表示目标的类别、置信度、边界框的坐标及10个特定点的位置。要取得8400个数据中置信度最高的数据,然后获取该数据其他channel的数据。运行结果:(蓝色是检测手的边框,红点是自定义的点),其中的四个数字分别表示不同的维度。

shenqingyu0605202324的博客 5603

Kubernetes部署apisix的理论与最佳实践(一)

Kubernetes部署apisix的理论与最佳实践(一)

虽非技冠群英首,愿与同道共长歌; 大鹏一日同风起,扶摇直上九万里; 1493

手把手教你用树莓派蓝牙抓取小米温湿度计2代数据,接入HomeAssistant(附密钥获取避坑指南)

本文详细介绍了如何通过树莓派蓝牙抓取小米温湿度计2代数据并接入HomeAssistant的完整流程。重点解析了获取32位加密密钥的三种方法,包括使用Telink Flasher工具、米家APP抓包和开源工具ATC_MiThermometer,并提供了HomeAssistant集成配置和常见问题排查指南,帮助用户实现稳定可靠的温湿度监测。

一名菜鸟攻城师 779

后端认识网关Nginx、LVS 、Keepalived、VIP &&OpenResty、APISIX、 Kong 、 Janus&&Springcloud GateWay

前沿聊天:有没有发现,近几年随着工作的深入,好像除了nginx 最亲切外,什么LVS VIP(跟会员一样) APISIX Kong 还有微服务的GateWay,各种网关层面的名词喋喋不休的出现在你的脑子里。再加上需要增加云服务的鲁棒性,一层套一层,再优化迁移。o(╥﹏╥)o 要老命了,今天就把我知道的一些名词整理一下。

IT_Octopus的博客 840

防火墙断网后Adobe软件还弹窗“THIS APP HAS BEEN DISABLED”?原来是科学上网导致的问题!用这个简单方法一键解决!

很多小伙伴在使用上网工具的时候时,突然遇到Adobe弹出“THIS APP HAS BEEN DISABLED”的烦人提示,这个非正版弹窗真的让人头疼!即使你之前尝试过,有时也不奏效,究其原因,原来是因为你使用了代理网络,这时Adobe的流量并不是走本地,而是走代理,导致防火墙的拦截无效。不用慌!今天我来教大家如何通过上网工具,轻松禁用Adobe验证的联网流量,彻底解决这个问题!

qq_34093397的博客 3万+

ArduPilot简介

一,什么是ArduPilot? ArduPilot是一个可信的,多用途的,开源的自动驾驶系统。该系统支持了非常多的交通工具类型,包括多旋翼无人机,传统直升机,固定翼飞行器,船,潜艇,巡逻车等。源码由大型开发者社区的专家和爱好者共同开发和维护。也欢迎更多的开发者加入源码的迭代演进,最好的“打开”方式就是加入开发者团队论坛。该论坛对所有人开放,在这里可以深入感受到开发者们对ArduPilot的热爱。 论坛链接:ArduPilot Discourse 开发者指南:Welcome to the ArduPil

从0到1,突破自己 5455

Dapr 集成 APISIX 做API网关

在这篇文章中,我将展示如何创建一个 APISIX控制器,该控制器在 Kubernetes 集群中公开启用 Dapr 的应用程序。本质上,APISIX控制器将配置相同的标准 Dapr ann...

dotNET跨平台 1270

【CVPR2025 DEIM】超详细!手把手训练自己的数据集教学:从源码下载,配置虚拟环境,准备数据集、训练、验证、推理测试 ,实现0到1的完整教学过程。本文在win系统上训练,最强实时目标检测算法!

本文详细介绍了CVPR2025 DEIM目标检测模型的完整使用流程。内容包含:1)源码下载与虚拟环境配置;2)Visdrone2019数据集准备与配置文件修改;3)训练参数设置及Windows系统常见问题解决方案;4)模型验证、推理测试及热力图生成方法。特别针对Windows用户提供了虚拟环境配置指导,并详细说明了数据集路径设置、参数调整等关键步骤。通过本文的指导,小伙伴可以快速掌握DEIM模型的使用方法,用于学术论文研究和实验分析。

Ai缝合怪、助力小伙伴高效发论文 7650

xxop网关 → APISIX集群(ApisixRoute) → 业务gateway模块 和 Serverless架构 区别和联系

本文将详细拆解两套不同的流量架构,明确各组件的核心作用、流量转发逻辑、适用场景及核心差异,为架构选型和运维调试提供参考,内容以技术落地视角为主,不做PPT简化处理。

从2026-09-21开始专注于AI,以前是后端研发、大数据研发等 386

电源芯片MPQ3431A

MPQ3431A是一款具有宽输入范围的固定频率为450kHz的高度集成的升压转换器,其输入电压低至2.7V,采用恒定关断时间(COT)的控制拓扑,可提供快速的瞬态响应。芯片支持通过MODE管脚配置PSM(pulse-skip mode)、FCCM(forced continuous conduction mode)和USM(ultrasonic mode);还支持通过电流限制配置来达到精确的过流保护;同时芯片欠压保护(UVLO)和过温保护(OTP)。MPQ3431A采用QFN-13(3mmx4mm)封装。保

qflook的博客 1560

OpenClaw 超级 AI 实战专栏【模型推理与实战】(二)官方预训练模型下载与使用

OpenClaw 预训练模型需按「固定目录结构」存放(模型文件夹包含权重 + 配置文件),否则会加载失败;核心流程:下载模型→验证文件完整性→加载模型→传入图片执行推理→可视化结果;常见问题集中在「路径错误」「显存不足」「文件缺失」,按文中方案可快速解决。

qq_36130719的博客 307

ingress

ingress:对外提供访问ingress——根据servicename选择sevic——service把请求根据匹配的标签转发到pod支持http 80 https 443。

m0_71178834的博客 961

ArcGIS Pro 3.4 二次开发 - 布局

本文介绍了在ArcGIS Pro SDK 3.4和.NET 8环境下操作布局工程项的相关方法。主要内容包括:引用布局工程项和关联布局,在新视图中打开或激活已有布局视图,引用活动布局视图,导入/移除布局工程项,创建基本布局或带参考线的自定义布局,修改布局页面尺寸,以及创建圆形图形元素等操作。重点演示了如何通过CIM(Core Infrastructure Model)进行高级布局配置,并详细说明了圆形图形元素的创建过程,包括几何构建、符号设置和图形生成。所有涉及UI线程的操作都遵循ArcGIS Pro SDK

Winemonk 795
上一篇: Spring 在什么情况下会选择 JDK 动态代理,什么情况下会选择 CGLIB?这个选择可以手动配置吗?
下一篇: 如何在 Spring 中使用 AOP?
冰糖心书房
博客等级 码龄15年 6017粉丝 690原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰糖心书房

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值