拷贝etcdctl命令行工具:
docker cp (etcd容器ID或名称):/usr/local/bin/etcdctl /usr/bin/etcdctl
查看etcd集群的成员节点:
export ETCDCTL_API=3
etcdctl --endpoints=https://[127.0.0.1]:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt --key=/etc/kubernetes/pki/etcd/healthcheck-client.key member list -w table
设置别名:
alias etcdctl='etcdctl --endpoints=https://[127.0.0.1]:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt --key=/etc/kubernetes/pki/etcd/healthcheck-client.key'
查看etcd集群节点状态:
etcdctl member list -w table
etcdctl endpoint status -w table
etcdctl endpoint health -w table
添加定时任务做数据快照(重要!)
etcdctl snapshot save `hostname`-etcd_`date +%Y%m%d%H%M`.db
恢复快照:
-
停止etcd和apiserver
-
移走当前数据目录
$ mv /var/lib/etcd/ /tmp
3. 恢复快照
etcdctl snapshot restore `hostname`-etcd_`date +%Y%m%d%H%M`.db --data-dir=/var/lib/etcd/
很多情况下,会出现namespace删除卡住的问题,此时可以通过操作etcd来删除数据: