原文:https://blog.csdn.net/kozazyh/article/details/79586530

-----------------------------------------------------

etcd2和etcd3是不兼容的,两者的api参数也不一样,详细请查看 etcdctl -h 。
可以使用api2 和 api3 写入 etcd3 数据,但是需要注意,使用不同的api版本写入数据需要使用相应的api版本读取数据。

api 2 使用方法

ETCDCTL_API=2 etcdctl ls /
api 3 使用方法

ETCDCTL_API=3 etcdctl get /
问题一、etcd3 没有 ls 使用 get 替代

例如:查询所有key 或 value :

$ export ETCDCTL_API=3
$ export ETCD_ENDPOINTS="https://192.168.5.7:2379,https://192.168.5.8:2379,https://192.168.5.86:2379"
$ etcdctl --endpoints=${ETCD_ENDPOINTS} get / --prefix --keys-only
$ etcdctl --endpoints=${ETCD_ENDPOINTS} get / --prefix --print-value-only |jq [.]
使用证书查询:

$ export ETCDCTL_API=3
$ export ETCD_ENDPOINTS="https://192.168.5.7:2379,https://192.168.5.8:2379,https://192.168.5.86:2379"
$ etcdctl --endpoints=${ETCD_ENDPOINTS} --cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/admin.pem --key=/etc/kubernetes/ssl/admin-key.pem --prefix --keys-only=true get /
问题二、创建修改一个键值对

api v2版本:

$ etcdctl set test hello
api v3版本:

$ etcdctl put test hello
参考:

https://github.com/coreos/etcd/issues/6904

————————————————
版权声明:本文为CSDN博主「大飞哥2」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kozazyh/article/details/79586530

05-11 21:45