前言
使用docker部署etcd,免去了配置过程。近期想搭一个etcd做服务发现,相较于nacos轻量的多。
启动
摘抄至https://github.com/etcd-io/etcd/releases,官方每个release都有docker启动脚本示例。 为了持久化member,我加入了-v指令。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
docker run -dit --name etcd-server \
-p 22379:2379 \
-p 22380:2380 \
-v /opt/etcd/data:/etcd-data \
--name etcd-gcr-v3.4.30 \
gcr.io/etcd-development/etcd:v3.4.30 \
/usr/local/bin/etcd \
--name s1 \
--data-dir /etcd-data \
--listen-client-urls http://0.0.0.0:2379 \
--advertise-client-urls http://0.0.0.0:2379 \
--listen-peer-urls http://0.0.0.0:2380 \
--initial-advertise-peer-urls http://0.0.0.0:2380 \
--initial-cluster s1=http://0.0.0.0:2380 \
--initial-cluster-token donotstealplz \
--initial-cluster-state new \
--log-level info \
--logger zap \
--log-outputs stderr
配置
etcdctl版本需要与服务器对应。
- 列出所有用户:
1
./etcdctl --endpoints http://127.0.0.1:22379 user list
这个命令会列出所有已创建的用户。
- 添加用户 root 并设置密码为 “test”:
1
./etcdctl --endpoints http://127.0.0.1:22379 user add root:test
这个命令会创建一个名为 root 的用户,并将其密码设置为 “test”。
- 列出所有角色:
1
./etcdctl --endpoints http://127.0.0.1:22379 role list
这个命令会列出所有已创建的角色。
- 添加名为 “test-group” 的角色:
1
./etcdctl --endpoints http://127.0.0.1:22379 role add test-group
这个命令会创建一个名为 “test-group” 的角色。
- 添加用户 “test”:
1
./etcdctl --endpoints http://127.0.0.1:22379 user add test
这个命令会创建一个名为 “test” 的用户。
- 将用户 “test” 授权给角色 “test-group”:
1
./etcdctl --endpoints http://127.0.0.1:22379 user grant-role test test-group
这个命令会将用户 “test” 授予角色 “test-group” 的权限。
- 授予角色权限:
1
./etcdctl --endpoints http://127.0.0.1:22379 role grant readwrite /test
这个命令会将名为 “readwrite” 的权限授予给角色,该权限允许角色在 “/webrtc” 上执行读写操作。
- 添加名为 “root” 的角色:
1
./etcdctl --endpoints http://127.0.0.1:22379 role add root
这个命令会创建一个名为 “root” 的角色。、
- 启用认证:
1
./etcdctl --endpoints http://127.0.0.1:22379 auth enable
这个命令会启用认证功能。
- 列出所有角色:
1
./etcdctl --endpoints http://127.0.0.1:22379 role list
这个命令会列出所有已创建的角色。
- 以 root 用户 密码为”test” 的身份列出所有角色:
1
./etcdctl --user root:test --endpoints http://127.0.0.1:22379 role list
这个命令会以指定密码的 root 用户身份列出所有角色。