etcd部署使用

docker hub 镜像拉取安装

https://hub.docker.com/r/bitnami/etcd

docker pull bitnami/etcd:latest

创建 docker 网络

docker network create app-tier --driver bridge

启动etcd服务器实例

docker run -d --name etcd-server --network app-tier --publish 2379:2379 --publish 2380:2380 --env ALLOW_NONE_AUTHENTICATION=yes --env ETCD_ADVERTISE_CLIENT_URLS=http://etcd-server:2379 bitnami/etcd:latest

image.png

进入etcd客户端实例

D:\www>docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED       STATUS       PORTS
    NAMES
49b555472f39   bitnami/etcd:latest   "/opt/bitnami/script…"   2 weeks ago   Up 7 hours   0.0.0.0:2379-2380->2379-2380/tcp   etcd-server

D:\www>docker exec -it 49b555472f39 /bin/bash
I have no name!@49b555472f39:/opt/bitnami/etcd$

常用操作

默认条件下,没有开启访问控制,访问 etcd 是没有用户和密码限制的,任何人只要能连接到 etcd 的 2379 端口,就可以读写 etcd 数据,如果我们开启外网访问的话就需要考虑访问控制的问题,etcd 提供了两种访问控制的方式:

  1. 基于身份验证RBAC的访问控制(本文)
  2. 基于证书的访问控制

root用户
root 是 etcd 的超级管理员,拥有 etcd 的所有权限,在开启角色认证之前为们必须要先建立好 root 用户。需要注意的是 root 用户必须拥有 root 的角色,允许在 etcd 的所有操作.

root角色
root 角色可以赋予任何用户,拥有 root 角色的用户有全局读写权限和集群身份验证配置权限,此外,还具有修改集群成员身份,碎片整理,建立快照等权限。

添加root用户、终端交互式输入密码

I have no name!@49b555472f39:/opt/bitnami/etcd$ etcdctl --endpoints http://127.0.0.1:2379 user add root
Password of root:
Type password of root again for confirmation:
User root created

开启身份验证

I have no name!@49b555472f39:/opt/bitnami/etcd$ etcdctl --user='root' --password='123456' --endpoints http://127.0.0.1:2379 auth enable

此后操作etcd不跟上用户将会报错

Error: etcdserver: user name is empty

再创建一个用户

I have no name!@49b555472f39:/opt/bitnami/etcd$ etcdctl --endpoints=http://127.0.0.1:2379 --user=root:123456 user add putong

用户、角色操作命令引用 https://blog.csdn.net/xingzuo_1840/article/details/125572916

查看所有用户

I have no name!@49b555472f39:/opt/bitnami/etcd$ etcdctl user list --user='root' --password='123456'
putong
root

查看集群信息

etcdctl endpoint status --cluster -w table

I have no name!@ab26d9d216e8:/opt/bitnami/etcd$ etcdctl endpoint status --cluster -w table
+-------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
|        ENDPOINT         |        ID        | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
+-------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| http://etcd-server:2379 | 8e9e05c52164694d |   3.5.7 |   20 kB |      true |      false |         3 |          7 |                  7 |        |
+-------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+

插入数据

etcdctl put /node 172.31.100.1

开启权限后读写方式

I have no name!@49b555472f39:/opt/bitnami/etcd$ etcdctl  --user='root' --password='123456' put name_23 "22222"
OK
I have no name!@49b555472f39:/opt/bitnami/etcd$ etcdctl  --user='root' --password='123456' get name_23
name_23
22222

查看集群所有的key

etcdctl get / --keys-only --prefix

I have no name!@ab26d9d216e8:/opt/bitnami/etcd$ etcdctl get / --keys-only --prefix
/node

获取key对应的值

etcdctl get /node

I have no name!@ab26d9d216e8:/opt/bitnami/etcd$ etcdctl get /node
/node
172.31.100.1

一款UI不错的GUI客户端 http://etcdmanager.io/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值