You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Patroni连接etcd报错:无法获取成员列表,API版本兼容求助

问题

部署2节点Patroni+etcd集群,节点信息:

  • vsa14156957 10.180.9.88
  • vsa14156959 10.180.8.36

etcd集群状态正常,etcdctl能正常查看成员列表,Patroni 4.0.6、python-etcd 0.4.5等依赖已安装,但启动Patroni时持续报错:

Jun 12 07:55:07 vsa14156957 patroni[16895]: 2025-06-12 07:55:07,961 ERROR: Failed to get list of machines from http://10.180.9.88:2379/v2: EtcdException('Bad response : 404 page not found\n',)
Jun 12 07:55:07 vsa14156957 patroni[16895]: 2025-06-12 07:55:07,962 ERROR: Failed to get list of machines from http://10.180.8.36:2379/v2: EtcdException('Bad response : 404 page not found\n',)
Jun 12 07:55:07 vsa14156957 patroni[16895]: 2025-06-12 07:55:07,962 INFO: waiting on etcd

问题原因是Patroni默认使用etcd v2 API连接,但当前etcd集群已禁用v2 API,需配置改用v3 API。

解决方法

1. 替换依赖库

当前使用的python-etcd 0.4.5仅支持v2 API,必须替换为支持v3的etcd3-py:

pip uninstall -y python-etcd
pip install etcd3-py

2. 修改Patroni配置文件

找到Patroni配置文件(例如/etc/patroni/patroni.yml),在etcd配置段添加protocol: v3:

etcd:
  hosts: ["http://10.180.9.88:2379", "http://10.180.8.36:2379"]
  protocol: "v3"  # 强制使用v3 API
  # 若etcd启用认证,按需补充以下配置:
  # username: "your-etcd-user"
  # password: "your-etcd-pass"

3. 重启Patroni服务

systemctl restart patroni

4. 验证

查看Patroni日志确认报错消失,或用命令检查集群状态:

patronictl list
补充:若etcd启用TLS加密

如果etcd集群使用TLS加密,需在Patroni配置中添加证书路径:

etcd:
  hosts: ["https://10.180.9.88:2379", "https://10.180.8.36:2379"]
  protocol: "v3"
  certfile: "/path/to/client.crt"
  keyfile: "/path/to/client.key"
  cacert: "/path/to/ca.crt"

内容的提问来源于stack exchange,提问作者EisenWang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:07:06