etcd
- 通过静态创建集群,因为在启动之前我们知道集群成员、它们的地址和集群的大小
第一个节点: ./etcd --data-dir=data.etcd --name machine1 --initial-advertise-peer-urls http://127.0.0.1:12380 --listen-peer-urls http://127.0.0.1:12380 --advertise-client-urls http://127.0.0.1:12379 --listen-client-urls http://127.0.0.1:12379 --initial-cluster 'machine1=http://127.0.0.1:12380,machine2=http://127.0.0.1:22380' --initial-cluster-state new --initial-cluster-token token-01
第二个节点: ./etcd --data-dir=data.etcd2 --name machine2 --initial-advertise-peer-urls http://127.0.0.1:22380 --listen-peer-urls http://127.0.0.1:22380 --advertise-client-urls http://127.0.0.1:22379 --listen-client-urls http://127.0.0.1:22379 --initial-cluster 'machine1=http://127.0.0.1:12380,machine2=http://127.0.0.1:22380' --initial-cluster-state new --initial-cluster-token token-01 - 通过etcd发现服务创建集群:
公共发现服务discovery.etcd.io,创建一个初始大小为3个成员的集群。如果没有指定大小,则使用默认值3。参考链接:https://etcd.io/docs/v3.5/op-guide/clustering/
curl https://discovery.etcd.io/new?size=2
节点1:
./etcd --name infra0 --initial-advertise-peer-urls http://127.0.0.1:2380 --listen-peer-urls http://127.0.0.1:2380 --listen-client-urls http://127.0.0.1:2379 --advertise-client-urls http://127.0.0.1:2379 --discovery https://discovery.etcd.io/0b7effd13bec3e2ac09e417f08156e73
节点2:
./etcd --name infra1 --initial-advertise-peer-urls http://192.168.1.19:2380 --listen-peer-urls http://192.168.1.19:2380 --listen-client-urls http://192.168.1.19:2379 --advertise-client-urls http://192.168.1.19:2379 --discovery https://discovery.etcd.io/0b7effd13bec3e2ac09e417f08156e73
- 查看集群:
./etcdctl --endpoints=192.168.1.19:2379 member list
如果netstat -ntlp查看监听地址为127.0.0.1可以不加--endpoints。
![]()
![]()
可以通过./etcdctl get name --rev=2查看name的版本2的值。 - 删除
![]()
还可以通过./etcdctl del name --prev-kv删除时显示删除的kv。 - 租约
![]()
![]()
- 创建test角色,./etcdctl --user=root role add test
- 使用顶级账号root将test角色赋予fox用户: ./etcdctl --user=root user grant-role fox test
- 使用root账号赋予test角色读写权限:./etcdctl role grant-permission test readwrite name --user=root
- 使用fox用户删除key: ./etcdctl del name fox1 --user=fox
补充:
etcdctl的API版本为3,并指定了etcd服务的端点、CA证书、客户端证书和客户端密钥的路径,所以需要指定,如果不清楚etcd证书存放的位置可以使用ps命令查看,当然endpoint也可以用这种方法
ps -ef | grep -v grep | grep apiserver |sed 's/ /\n/g' | grep etcd
etcdctl --endpoints=192.168.0.1:2379 --cacert=/etc/ssl/etcd/ssl/ca.pem --key=/etc/ssl/etcd/ssl/node-du-key.pem --cert=/etc/ssl/etcd/ssl/node-du.pem member list -w table






浙公网安备 33010602011771号