在使用haproxy 2.0 dataplaneapi的时候,刚开始的时候我们可能需要进行调试,保证我们的配置在我们的系统环境中
是可以使用的,以下是自己在当前学习中为了排查问题会使用的几个api
创建事物
haproxy2.0 dataplaneapi 提出了一个事物的概念,用来确保对于配置的修改的原子性,我们很多时候需要知道version id
有以下几种可以方便查看
- 通过查看配置文件
实际上在生成事物的时候对应的version id 是存在文件中的,如下:
基于次id 可以知道下次我们需要传递的参数
- 创建的时候随意写一个id,错误信息包含了实际的id
如下:
curl -X POST --user admin:dalong \
-H "Content-Type: application/json" \
http://localhost:5555/v1/services/haproxy/transactions?version=1
错误信息如下,可以看出8 应该是id
- 通过查看全局配置api
curl -X GET --user admin:dalong \
-H "Content-Type: application/json" \
http://localhost:5555/v1/services/haproxy/configuration/global
效果:
配置reload 的问题
dataplaneapi 提供了一个--reload-cmd 进行haproxy 的动态配置生效,如果配置没有reload 可以通过api 接口,以及日志查看状态
- 状态查看
curl -X GET --user admin:dalong \
-H "Content-Type: application/json" \
http://localhost:5555/v1/services/haproxy/reloads
效果:
如果失败了,通过次接口可以看到状态,同时我们可以结合haproxy 日志查看失败的原因
参考资料
https://www.haproxy.com/documentation/hapee/1-9r1/configuration/dataplaneapi/