ETCD docker部署

用户、角色权限设置

Posted by Kingtous on April 3, 2024
本页面总访问量

前言

使用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. 列出所有用户:
    1
    
    ./etcdctl --endpoints http://127.0.0.1:22379 user list
    

    这个命令会列出所有已创建的用户。

  2. 添加用户 root 并设置密码为 “test”:
    1
    
    ./etcdctl --endpoints http://127.0.0.1:22379 user add root:test
    

    这个命令会创建一个名为 root 的用户,并将其密码设置为 “test”。

  3. 列出所有角色:
    1
    
    ./etcdctl --endpoints http://127.0.0.1:22379 role list
    

    这个命令会列出所有已创建的角色。

  4. 添加名为 “test-group” 的角色:
    1
    
    ./etcdctl --endpoints http://127.0.0.1:22379 role add test-group
    

    这个命令会创建一个名为 “test-group” 的角色。

  5. 添加用户 “test”:
    1
    
    ./etcdctl --endpoints http://127.0.0.1:22379 user add test
    

    这个命令会创建一个名为 “test” 的用户。

  6. 将用户 “test” 授权给角色 “test-group”:
    1
    
    ./etcdctl --endpoints http://127.0.0.1:22379 user grant-role test test-group
    

    这个命令会将用户 “test” 授予角色 “test-group” 的权限。

  7. 授予角色权限:
    1
    
    ./etcdctl --endpoints http://127.0.0.1:22379 role grant readwrite /test
    

    这个命令会将名为 “readwrite” 的权限授予给角色,该权限允许角色在 “/webrtc” 上执行读写操作。

  8. 添加名为 “root” 的角色:
    1
    
    ./etcdctl --endpoints http://127.0.0.1:22379 role add root
    

    这个命令会创建一个名为 “root” 的角色。、

  9. 启用认证:
    1
    
       ./etcdctl --endpoints http://127.0.0.1:22379 auth enable
    

    这个命令会启用认证功能。

  10. 列出所有角色:
    1
    
    ./etcdctl --endpoints http://127.0.0.1:22379 role list
    

    这个命令会列出所有已创建的角色。

  11. 以 root 用户 密码为”test” 的身份列出所有角色:
    1
    
    ./etcdctl --user root:test --endpoints http://127.0.0.1:22379 role list
    

    这个命令会以指定密码的 root 用户身份列出所有角色。