kubernetes etcd操作
etcd file:
root@arm:~# tree /var/lib/etcd
/var/lib/etcd
└── member
├── snap
│ ├── 0000000000000003-0000000000635873.snap
│ ├── 0000000000000003-0000000000637f84.snap
│ ├── 0000000000000003-000000000063a695.snap
│ ├── 0000000000000003-000000000063cda6.snap
│ ├── 0000000000000003-000000000063f4b7.snap
│ └── db
└── wal
├── 0000000000000044-00000000005e5061.wal
├── 0000000000000045-00000000005fb519.wal
├── 0000000000000046-0000000000611a77.wal
├── 0000000000000047-0000000000627ff8.wal
├── 0000000000000048-000000000063e4b3.wal
└── 1.tmp
3 directories, 12 files
alias in /root/.bashrc
:
alias ectl='ETCDCTL_API=3 etcdctl --endpoints="https://127.0.0.1:2379" --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key'
source:
source /root/.bashrc
显示当前Etcd存储的所有Key:
ectl get / --prefix --keys-only
备份:
root@arm:~# ectl snapshot save etcd-snapshot-$(date +%F)
2022-08-07 16:48:19.781123 I | clientv3: opened snapshot stream; downloading
2022-08-07 16:48:19.903819 I | clientv3: completed snapshot read; closing
Snapshot saved at etcd-snapshot-2022-08-07
查看快照:
root@arm:~# ll -h etcd-snapshot-2022-08-07
-rw-r--r-- 1 root root 18M Aug 7 16:48 etcd-snapshot-2022-08-07
root@arm:~# ectl --write-out=table snapshot status etcd-snapshot-2022-08-07
+----------+----------+------------+------------+
| HASH | REVISION | TOTAL KEYS | TOTAL SIZE |
+----------+----------+------------+------------+
| da7677cf | 6128754 | 2559 | 18 MB |
+----------+----------+------------+------------+
恢复:
#master执行
systemctl stop kubelet.service
docker stop `docker ps |grep apiserver |awk '{print $1}' |xargs`
mv /var/lib/etcd /var/lib/etcd-bak-$(date +%F)
mkdir /var/lib/etcd
mod 700 /var/lib/etcd
ectl snapshot restore etcd-snapshot-2022-08-07
是否健康:
root@arm:~# ectl endpoint health
https://127.0.0.1:2379 is healthy: successfully committed proposal: took = 34.00196ms