ETCD常用命令&备份与还原&授权及用户认证

该文命令用于etcd3

一、常用命令

1、查看etcd版本

# etcdctl version
etcdctl version: 3.4.15
API version: 3.4

2、插入数据

# etcdctl --endpoints="IP:2379" put key value

3、查询数据
(1)按key值查询

# etcdctl --endpoints="IP:2379" get key

(2)查询所有key

# etcdctl --endpoints="IP:2379" --from-key ""

(3)不显示key只显示values

# etcdctl --endpoints="IP:2379" get --print-value-only key

(4)按key前缀查找

# etcdctl --endpoints="IP:2379" get --prefix key前缀

4、删除数据
(1)删除key

# etcdctl --endpoints="IP:2379" del key

(2)删除key name12时并返回被删除的键值对

# etcdctl --endpoints="IP:2379" del --prev-kv key

(3)删除指定前缀的key

# etcdctl --endpoints="IP:2379" del --prev-kv --prefix key的前缀

(4)删除所有数据

# etcdctl --endpoints="IP:2379" del --prefix ""

5、更新数据
直接put即可更新

二、备份与还原
(1)对于 API 2 备份与恢复方法
etcd的数据默认会存放在我们的命令工作目录中,我们发现数据所在的目录,会被分为两个文件夹中:
snap: 存放快照数据,etcd防止WAL文件过多而设置的快照,存储etcd数据状态。
wal: 存放预写式日志,最大的作用是记录了整个数据变化的全部历程。在etcd中,所有数据的修改在提交前,都要先写入到WAL中。

# etcdctl backup --data-dir /home/etcd/ --backup-dir /home/etcd_backup
# etcd -data-dir=/home/etcd_backup/  -force-new-cluster

恢复时会覆盖 snapshot 的元数据(member ID 和 cluster ID),所以需要启动一个新的集群。

(2)对于 API 3 备份与恢复方法
a.备份数据:

# etcdctl --endpoints localhost:2379 snapshot save snapshot.db

b.查看快照信息

# etcdctl --endpoints localhost:2379 snapshot status snapshot.db --write-out=table

c.恢复数据:
查看配置

# cat /usr/lib/systemd/system/etcd.service
[Unit]
Description=etcd server
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
WorkingDirectory=/data/etcddata/
EnvironmentFile=-/data/etcd/nodefile.yml
ExecStart=/data/etcd/etcd  --config-file=/data/etcd/nodefile.yml

Restart=on-failure
RestartSec=5
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

# cat /data/etcd/nodefile.yml 
name: node1
data-dir: /data/etcd/node1
listen-client-urls: 'http://10.153.167.4:42379'
advertise-client-urls: 'http://10.153.167.4:42379'
listen-peer-urls: 'http://10.153.167.4:42380'
initial-advertise-peer-urls: 'http://10.153.167.4:42380'
initial-cluster: node1=http://10.153.167.4:42380,node2=http://10.153.167.5:42380,node3=http://10.153.167.10:42380
initial-cluster-token: etcd-cluster-1
initial-cluster-state: new

停止etcd(其他设备同理操作)

# systemctl stop etcd

备份数据目录

# mv /data/etcd/node1 /data/etcd/node1.bak

将备份数据导入

# ETCDCTL_API=3 /data/etcd/etcdctl snapshot restore /home/xtjk10/etcd-data-20210730.db  \
--name node1 \
--initial-advertise-peer-urls http://10.3.89.1:42379 \
--initial-cluster-token test \
--initial-cluster 'node1=http://10.3.89.1:42379,node2=http://10.3.89.2:42379,node3=http://10.3.45.5:42379,node4=http://10.3.45.6:42379,node5=http://10.3.89.5:42379' \
--data-dir=/data/etcd/node1

重新启动etcd

# systemctl restart etcd

验证集群状态

# etcdctl --endpoints='10.3.89.1:42379,10.3.89.2:42379,10.3.45.5:42379,10.3.45.6:42379,10.3.89.5:42379' -w table endpoint status

三、授权及用户认证
https://blog.csdn.net/liao__ran/article/details/117792662

四、etcd更换默认端口
(1)新安装的服务
直接配置文件设置端口即可

(2)已用默认端口2379/2380启动的服务,需要更改别的端口
要记得先停止服务,再修改配置文件更改端口,重启服务

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值