如何把 Apache APISIX 配置为 Decoupled 模式分离控制面与数据面?

发布时间:2026/11/11 5:15:13

如何把 Apache APISIX 配置为 Decoupled 模式分离控制面与数据面? 如何把 Apache APISIX 配置为 Decoupled 模式分离控制面与数据面【免费下载链接】apisixThe Cloud-Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/ap/apisix在 Apache APISIX 3.0.0 中引入了多种部署模式其中 Decoupled 模式把网关拆成两类独立实例一台control plane控制面只负责 Admin API另一台data plane数据面只负责处理用户请求。两者通过同一个 etcd 配置中心共享路由配置——控制面写入配置数据面读取配置。本文基于项目文档 deployment-modes.md 和仓库内的 CLI 测试脚本说明如何分别配置这两种实例并给出仓库自身使用的验证方法。前置条件按文档给出的模式说明Decoupled 模式要求APISIX 版本为 3.0.0 及以上。升级指南 upgrade-guide-from-2.15.x-to-3.0.0.md 明确写道3.0.0 also introduces multiple deployment modes其中 Decoupled 模式的描述是 the data plane and the control plane are separated. You can deploy an instance of APISIX either as a control plane or a data plane。一个可访问的 etcd 集群作为两种实例共同的配置中心本文主路径使用config_provider: etcd。两个独立的 APISIX 安装实例可以是两台机器或两个目录分别修改各自的conf/config.yaml。注意conf/config.yaml.example文件头部提示 DO NOT MODIFY DEFAULT CONFIGURATIONS IN THIS FILE. Keep the custom configurations inconf/config.yaml所以只编辑conf/config.yaml不要改 example 文件。配置控制面实例控制面的职责来自文档原文The instance of APISIX deployed as the control plane will:Listen on port9180and handle Admin API requests.在控制面实例的conf/config.yaml中加入以下配置取自 deployment-modes.md 的 Decoupled 章节deployment: role: control_plane role_control_plane: config_provider: etcd etcd: host: - https://etcd_IP:etcd_Port prefix: /apisix timeout: 30 #END说明role: control_plane声明该实例是控制面role_control_plane.config_provider: etcd指定配置中心为 etcd。etcd_IP:etcd_Port需要替换为你自己的 etcd 地址和端口。文档示例用https://如果你的 etcd 未启用 TLS可用http://文档中 Traditional 模式示例即使用http://${etcd_IP}:${etcd_Port}。控制面的 Admin API 监听端口由deployment.admin.admin_listen控制config.yaml.example 中的默认值是port: 9180deployment.admin.admin_key中配置了 Admin API 的密钥请求时需要用X-API-KEY头携带。配置数据面实例数据面的职责是处理用户请求文档原文数据面实例 Once the service is started, it will handle the user requests。在其conf/config.yaml中配置deployment: role: data_plane role_data_plane: config_provider: etcd etcd: host: - https://etcd_IP:etcd_Port prefix: /apisix timeout: 30 #END仓库中的测试脚本 test_deployment_data_plane.sh 使用了同样的结构deployment下为role: data_planerole_data_plane.config_provider: etcdetcd连接段。关键点两台实例必须指向同一个 etcd 集群、同一个 prefix/apisix这样控制面写入的路由配置才能被数据面读到。默认情况下数据面监听9080端口处理用户请求apisix.node_listen的默认值见 config.yaml.example。另外config.yaml.example 中role_data_plane.config_provider的注释表明它支持etcd、xds或yaml三种取值其中yaml对应的是 Standalone 模式不走 etcd本文不展开。启动两种实例在 APISIX 安装目录下用 Make 入口启动和停止仓库的 CLI 测试脚本即采用这一方式make run停止则使用make stop先启动控制面再启动数据面即可。两种角色都是 APISIX 实例本身无需额外进程。验证控制面Admin API 可用、不代理请求仓库测试脚本 test_deployment_control_plane.sh 的验证逻辑可以直接复用。admin_key取自conf/config.yaml中deployment.admin.admin_key的第一个 key 值# 检查 Admin API期望返回 HTTP 200 curl -o /dev/null -s -w %{http_code} \ http://127.0.0.1:9180/apisix/admin/routes \ -H X-API-KEY: admin_key如果输出是200说明控制面已启用 Admin API测试脚本断言 control_plane should enable Admin API。控制面不应该代理业务请求。测试脚本向9180端口发送一个普通请求并期望得到404# 期望返回 404说明请求代理已禁用 curl -o /dev/null -s -w %{http_code} http://127.0.0.1:9180/c -H X-API-KEY: admin_key通过控制面创建路由由数据面生效控制面配置就绪后用 Admin API 创建路由。测试脚本中的示例请求如下文档示例httpbin.org:80为测试用的上游地址可替换为你自己的上游curl -i http://127.0.0.1:9180/apisix/admin/routes/1 \ -H X-API-KEY: admin_key \ -X PUT \ -d { upstream: { nodes: { httpbin.org:80: 1 }, type: roundrobin }, uri: /* }写入成功后该路由进入 etcd数据面实例通过config_provider: etcd从同一 etcd 读取配置之后用户请求经数据面9080端口进入并按此路由转发。验证数据面不启用 Admin API、不写 etcd数据面实例启动后用仓库测试脚本 test_deployment_data_plane.sh 中的两项检查确认行为# 数据面不应启用 Admin API期望返回 404 curl -o /dev/null -s -w %{http_code} \ http://127.0.0.1:9080/apisix/admin/routes \ -H X-API-KEY: admin_key测试脚本断言 data_plane should not enable Admin API即9080上的 Admin API 路径返回404。第二项检查确认数据面是只读配置消费者的。测试脚本先清空 etcdetcdctl del / --prefix会删除该 etcd 中所有数据仅在专用测试集群上执行启动数据面后执行etcdctl get / --prefix | wc -l期望输出0即 data_plane does not write data to etcd。这条命令依赖本机已安装etcdctl且能访问该 etcd。限制与注意事项etcd TLS 证书默认校验数据面默认校验 etcd 的 TLS 证书。测试脚本中当 etcd 使用https://且未配置可信证书时make run会失败日志包含failed to load the configuration: https://127.0.0.1:12379: certificate verify failed。如果你的 etcd 是自签名证书需要按 etcd TLS 配置提供cert/key或在测试环境将deployment.etcd.tls.verify设为false测试脚本 test_deployment_data_plane.sh 即采用此方式。配置来源是 etcdDecoupled 模式下数据面不直接保存业务配置路由、插件等全部经由控制面的 Admin API 写入 etcd 生效数据面本身不提供 Admin API也无法在本地修改配置。端口冲突控制面与数据面是独立实例admin_listen默认9180与node_listen默认9080分别属于各自实例同一台机器上部署多个实例时需自行避开端口冲突。完成以上配置与验证后你就得到了一组分离的 APISIX 部署控制面在9180管理配置数据面在9080代理流量两者通过 etcd 保持配置同步。【免费下载链接】apisixThe Cloud-Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/ap/apisix创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/9 17:41:31

Chrome Manifest V3迁移指南:安全、性能与开发范式重构

1. 这不是一次普通更新:Manifest V2下架背后的架构级重构如果你最近打开chrome://extensions/页面,发现曾经熟悉的“开发者模式”开关旁边多了一行灰色小字——“Manifest V2 扩展将在未来版本中被禁用”,或者更直接地,你试图拖入…

2026/11/11 5:12:49

工地太忙根本没时间复习考试,特种作业操作证那里办含金量怎么算?

工地太忙根本没时间复习考试,特种作业操作证那里办含金量怎么算? 工地太忙根本没时间复习考试,特种作业操作证那里办,含金量又高又难考,一不小心就错过了考试时间,甚至连报名都搞不清楚。尤其是我们这些在一线工作的工人,天天扛着钢筋、搭着脚手架,哪…

2026/11/11 5:12:49

高压电工证考证理由在哪考最靠谱?实操考试心里没底怕挂科

高压电工证考证理由在哪考最靠谱?实操考试心里没底怕挂科 高压电工证考试一上手就懵?实操考试一紧张就出错?这些问题,咱们新手最怕遇上。别急,今天咱们就从 高压电工证考证理由 入手,讲讲你 在哪考 最靠谱,以及考前、考中、考后都该知道的干货。…

2026/11/11 5:12:49

河南电工证约考证丢了怎么补办

电工证约考别怕学历低,全国通用也能拿证 学历不高怕报不上名?其实 河南电工证约考 门槛并不高,尤其是现在证书 全国通用 ,越来越多的基层操作人员通过这个途径实现了职业提升。别再纠结学历,只要满足基本条件,就能顺利报考并拿到手。下面我从开封项…

2026/11/11 5:12:49

河南电工证约考保姆级教程:外省证怎么转?手把手教你搞定

河南电工证约考保姆级教程:外省证怎么转?手把手教你搞定 之前考的证在外省能不能转过来?这个问题,其实困扰了很多人。尤其是在河南,很多从事电气作业的劳务班组负责人,手上都有几个外省的电工证,但一到河南干活,就遇到了限制。今天这篇【河南电工证约…

2026/11/11 5:12:49

河南电工证约考怎么查网上查询结果?实操考试心里没底怕挂科

河南电工证约考怎么查网上查询结果?实操考试心里没底怕挂科 实操考试心里没底怕挂科,网上查询结果又看不懂?别慌,咱们一步步来。尤其是河南电工证约考这类操作性极强的考试,很多人怕的就是实操环节翻车,毕竟一不小心就可能挂科,耽误时间也影响后续发展…

2026/11/11 5:07:49

电工证换证相片图片通过率揭秘:实操考试心里没底怕挂科怎么办?

电工证换证相片图片通过率揭秘:实操考试心里没底怕挂科怎么办? 你不是一个人,电工证实操考试真的让人紧张,特别是换证的时候,面对新标准、新流程,照片不合规、资料不齐都可能让你前功尽弃。今天咱们就聊聊电工证换证相片图片这些细节, 通过率揭秘…

2026/11/10 8:12:38

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/11 0:02:26

考低压电工证通过率考试真题与备考技巧

低压电工证通过率高不高?学历不高也能考,值不值得考? 你是不是总听说电工证能帮你找高薪工作,但又担心自己学历不够,考不上?其实,低压电工证考试门槛并没有你想象中那么高,关键是方法对不对。这篇文章就告诉你, 考低压电工证通过率到底有多高 ,…

2026/11/11 0:02:26

低压电工证学时千万别踩坑,濮阳毕业生怎么避坑报名

低压电工证学时千万别踩坑,濮阳毕业生怎么避坑报名 你是不是也和我一样,刚毕业就听说低压电工证学时必须达标才能上岗?可一打听,发现报名机构五花八门,价格参差不齐, 不知道去哪报名怕被中介坑…

2026/11/10 20:08:15

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/10 10:29:37

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑