概述
前言
k8s集群中使用etcd数据库作为数据后端数据,所以熟知一些关于etcd数据的使用命令还是很有必要的。
安装etcdctl客户端工具
如果你的k8s集群时使用kubeadmin安装的,那么会有一个etcd的pod,如下:
#查看etcd的pod在哪个节点上
[root@master ~]# kubectl get pods etcd-master -n kube-system -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
etcd-master 1/1 Running 3 (20d ago) 23d 192.168.44.130 master <none> <none>
[root@master ~]#
#etcd的pod里面有一个etcdctl客户端命令行工具,我们只要把这个工具拷贝到我们的宿主机上就可以使用了
[root@master ~]# docker ps -a #我们使用docker进行复制,先查看etcd的容器
[root@master ~]# docker cp 010a60a7119b:/usr/local/bin/etcdctl /usr/bin/ #复制etcd的容器的etcdctl命令到宿主机
为etcdctl工具创建别名
使用etcdctl命令会有一串很长的用户验证秘钥,为了简化,可以为它设置一个别名,如下:
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'
#把上面这串别名复制到 /etc/profile 文件里,然后重新登录shell终端即可
etcdctl常用命令
[root@master ~]# etcdctl --help #查看命令帮助
[root@master ~]# etcdctl member list -w table #列出etcd集群一共有几个节点
[root@master ~]# etcdctl endpoint health -w table #查看etcd数据库是否健康,-w table 表示输出table的格式显示
[root@master ~]# etcdctl endpoint status -w table #查看各节点状态,可以看到版本号,数据库大小等信息
[root@master etcd]# etcdctl put keys1 124
OK
[root@master etcd]# etcdctl get keys1
keys1
124
[root@master etcd]# etcdctl get / --prefix=true --keys-only #列出整个根目录的keys
[root@master etcd]# etcdctl endpoint status -w table #查看etcd数据的版本大小
etcd数据库做定时任务备份
[root@master ~]# mkdir /root/etcd_backup -p #创建一个目录用于存放备份数据
#编写备份脚本,直接使用/usr/bin/etcdctl命令,指定认证的秘钥,snapshot save是保存快照,后面是备份文件和日志文件(这里不在使用别名,使
# 用别名发现有点问题)
[root@master ~]# vim etcd_backup_script.sh
#!/bin/bash
/usr/bin/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 snapshot save /root/etcd_backup/'hostname'-etcd_`date +%Y%m%d%H%M`.db >& /root/etcd_backup/'hostname'-etcd_`date +%Y%m%d%H%M`.log
[root@master ~]# chmod u+x etcd_backup_script.sh #授可行性权限
#添加定时计划任务
[root@master ~]# crontab -e
00 00 * * * /bin/bash /root/etcd_backup/etcd_backup_script.sh #每天凌晨0点备份一次
etcd数据库恢复
1、停止etcd、apiserver
2、移走etcd目录数据
[root@master ~]# mv /var/lib/etcd/ /tmp/
3、恢复快照
etcdctl snapshot restore hostname-etcd_202208261834.db --data-dir=/var/lib/etcd/
最后
以上就是单身玫瑰为你收集整理的k8s集群etcd数据库常用命令的全部内容,希望文章能够帮你解决k8s集群etcd数据库常用命令所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复