目录
首先etcd分为两个版本v2和v3,不同的API结果无论是访问URL还是使用etcdctl进行通信,都会导致问题,例如使用etcdctl和v3进行通信,如果没有实名ETCDCTL_API=3指定API版本会直接报错
WEB指纹
version
v2和v3都可以访问成功,并且2380 raft端口也有这个,所以做指纹不是个好方法
http://10.211.55.6:23791/version
/v2/keys
v3版本访问为404,在v2下可以访问成功
/v3/keys/range
在v3版本下,通过http也可以直接和v3版本进行通信,但是需要用post,而不是v2的get
未指定使用put操作报错
v3版本使用报错
root@node2:/home/parallels# etcdctl --endpoints=http://10.211.55.6:23791 put /testdir/testkey1 "Hello world1"
No help topic for 'put'
指定版本后,即可成功
root@node2:/home/parallels# ETCDCTL_API=3 etcdctl --endpoints=http://10.211.55.6:23791 put /testdir/testkey1 "Hello world1"
OK
未指定操作版本使用get报错
root@node2:/home/parallels# etcdctl --endpoints=http://10.211.55.6:23791 get / --prefix
Error: client: response is invalid json. The endpoint is probably not valid etcd cluster endpoint.
指定版本后查询成功
root@node2:/home/parallels# ETCDCTL_API=3 etcdctl --endpoints=http://10.211.55.6:23791 get / --prefix
/testdir/testkey1
Hello world1
curl http://10.211.55.7:23791/v2/keys/message -X PUT -d value="Hello world"
注意:
CDK不支持v2
参考
https://blog.youkuaiyun.com/meifannao789456/article/details/103480842