安装etcdctl命令行
etcd节点安装etcdctl
yum install -y etcd
echo 'export ETCDCTL_API=3' >> /etc/profile
etcd集群查看
列出成员
etcdctl --endpoints=https://192.168.41.30:2379,https://192.168.41.31:2379,https://192.168.41.32:2379 --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt member list
列出kubernetes数据
etcdctl get / --prefix --keys-only --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt --endpoints=https://192.168.41.30:2379,https://192.168.41.31:2379,https://192.168.41.32:2379
备份
etcdctl \
snapshot save /backup/etcd/snap.db \
--endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/peer.crt \
--key=/etc/kubernetes/pki/etcd/peer.key
etcd备份脚本
bakup_etcd.sh
#!/bin/bash
export ETCDCTL_API=3
etcdctl \
snapshot save /backup/etcd/snap_$(date '+%Y%m%d%H%M').db \
--endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/peer.crt \
--key=/etc/kubernetes/pki/etcd/peer.key
查看备份的文件信息
etcdctl snapshot status /backup/etcd/snap.db \
--endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/peer.crt \
--key=/etc/kubernetes/pki/etcd/peer.key
还需备份以下文件
/etc/kubernetes/ 目录下的所有文件(证书,manifest文件)
/var/lib/kubelet/ 目录下所有文件(plugins容器连接认证)
恢复
恢复时操作顺序:
- 停止kube-apiserver
- 停止etcd
- 恢复数据
- 启动etcd
- 启动kube-apiserver
停止kube-apiserver、etcd后先备份manifests和etcd数据目录
mv /etc/kubernetes/manifests /etc/kubernetes/manifests.bak
mv /var/lib/etcd /var/lib/etcd.bak
恢复命令
etcdctl snapshot restore /backup/etcd/snap.db --data-dir=/var/lib/etcd