惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
V
Visual Studio Blog
博客园 - 司徒正美
TaoSecurity Blog
TaoSecurity Blog
博客园 - 聂微东
IT之家
IT之家
博客园_首页
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - Franky
雷峰网
雷峰网
罗磊的独立博客
S
Schneier on Security
C
Cybersecurity and Infrastructure Security Agency CISA
The Cloudflare Blog
T
Tailwind CSS Blog
B
Blog RSS Feed
H
Help Net Security
T
The Blog of Author Tim Ferriss
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
C
CERT Recently Published Vulnerability Notes
博客园 - 三生石上(FineUI控件)
P
Palo Alto Networks Blog
I
Intezer
G
GRAHAM CLULEY
Engineering at Meta
Engineering at Meta
S
Securelist
J
Java Code Geeks
V
V2EX
Y
Y Combinator Blog
Simon Willison's Weblog
Simon Willison's Weblog
L
LINUX DO - 热门话题
云风的 BLOG
云风的 BLOG
Spread Privacy
Spread Privacy
MongoDB | Blog
MongoDB | Blog
P
Privacy International News Feed
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
B
Blog
Forbes - Security
Forbes - Security
Google Online Security Blog
Google Online Security Blog
Help Net Security
Help Net Security
S
SegmentFault 最新的问题
N
Netflix TechBlog - Medium
Webroot Blog
Webroot Blog
Microsoft Security Blog
Microsoft Security Blog
SecWiki News
SecWiki News
Scott Helme
Scott Helme
aimingoo的专栏
aimingoo的专栏
N
News and Events Feed by Topic

博客园 - lswweb

Drone概念与答疑 Drone基于K8S的Secrets管理 Centos8通过X11使用GUI应用 Linux自己常用命令记录(待续) K8S Master节点灾备与恢复 - ETCD Rook Ceph出现daemons have recently crashed异常 Ceph rbd删除image遭遇watchers异常处理 Ceph OSD更换硬盘后遭遇PG Inconsistent异常与处理 Rook Ceph OSD异常,格式化osd硬盘重新挂载 进入K8S Pod执行操作,遭遇Operation not permitted错误 K8S Pod挂载rook ceph pv报not found in the list of registered CSI drivers异常处理 Vs中调试MVC源代码步骤 手动创建vsct文件 快速查找找VS菜单信息(Guid、GuidId、CmdId等) 在多排序条件下SQL获文章上一条、下一条记录 Knockout中ViewModel与Model的互转 Asp.Net MVC 表单验证 AjaxOptions.OnSuccess回调方法返回的参数信息 一次自定义Configuration的悲惨经历。
K8S Master节点灾备与恢复 - Host文件Copy
lswweb · 2020-11-12 · via 博客园 - lswweb

       K8S HA群集已经运行蛮长一段时间了。虽然已经做了HA,但是内网环境伴随着每天开关机并偶有意外断电等不可控制因素的影响,这使用的实再是有些心惊胆颤,生怕有一天来个硬盘大罢工再附送个暴机大礼包那就完犊子。刚好这次为增强ceph的性能打算将master节点的系统盘换成高性能ssd,就顺便研究下灾备与恢复。

       好吧,备份是什么?最简单的就是文件copy了。为了快速达到效果,我们不搞那么复杂的东西,这次的目标就是通过linux定时任务和shell脚本每天在关机关定时全量备份master节点文件。

需要备份什么?

1、k8s是通过etcd来保存网络及对象状态信息的这个是必备的核心

     /var/lib/etcd/

2、节点配置信息、证书、静态pod等等

     /etc/kubernetes/

3、kubectl连接证、缓存等信息

     /root/.kube/  (root为kubectl安装用户目录)

4、flannel、cni等网络信息

     /etc/cni/

     /opt/cni/

     /var/run/flannel/

5、kubelet应用程序

     /var/lib/kubelet

6、其它一些pod使用host path形式的存储数据目录

    /var/lib//rook

    /etc/keepalived/keepalived.conf

    注:集群中用host path只有rook和kubelived。最好不要使用host path方式存储,即使有需要也可以使用local pv统一存储方便备份和管理

如何备份?

1、生成备份shell脚本文件k8s-master-back.sh

echo "停止kubelet";
systemctl stop kubelet;
echo "停止docker";
docker stop $(docker ps -aq);
systemctl stop docker;

echo "开始备份";
date=$(date "+%Y%m%d");
file="/tmp/${date}-${HOSTNAME}.tar.gz"
tar -zcvPf "${file}" /etc/kubernetes/ /etc/cni/ /opt/cni/ /var/lib/etcd/ /var/lib/kubelet /var/run/flannel/ /root/.kube /var/lib/rook/ /etc/keepalived/keepalived.conf

echo "复制备份文件到远程备份机"
sshpass –p 111111 scp $file root@192.168.1.230:/back;

echo "删除临时备份文件"
rm –rf $file;
echo "启动docker";
systemctl start docker;
echo "启动kubelet"
systemctl start kubelet;
echo "结束备份,备份文件:${file}"
exit 0;

注:备份时需要停止etcd容器,最好停止所有容器和kubelet,否则还原时有可有出现etcd wal文件验证不通过错误

2、安装并定义计划任务(每天晚上21点执行备份)

#进入计划任务编辑界面
crontab -e
#编辑定时任务
0 21 * * * /home/back/k8s-master-back.sh
#保存

节点恢复

1、拿出一块新ssd硬盘,按常规步骤设置系统各项参数,然后安装docker、kubeadm、kubectl、kubelet。注意kubelet版本、host name和ip和以前设置的一至。

2、使用备份文件恢复

read -p "请输入备份压缩包文件绝对路径:" backfile;

if [ ! -f "${backfile}" ]; then echo "文件不存在"; exit 0;fi;

echo "停止kubelet";
systemctl stop kubelet;
echo "停止docker"
systemctl stop docker;

echo "还原"
tar -zxvf $backfile -C /;

#echo "启动docker";
#systemctl start docker;
#echo "启动kubelet";
#systemctl start kubelet;

echo "还原结束";
exit 0;

备份到那里?

        好吧,这是一个问题。灾备,肯定是在遇到灾难时用来恢复的,那肯定是不能备份到本机硬盘的,甚至是不能备份到本地机房,万一那个离职员工一把火把机记烧了呢,这可比删库还狠^_^。

        一般情况下有以下几种方式:

       1、备份至云端s3等

       2、异地多集群互备存储

       3、额外的文件存储系统

       注:我的选择是本地一台nas做raid1并同步云端,专门用来做各种备份。