二进制k8s集群etcd备份和恢复

当前环境

##/etc/hosts
192.168.48.101 master01
192.168.48.102 master02
192.168.48.103 master03
192.168.48.201 node01
192.168.48.202 node02
192.168.48.203 node03
192.168.48.54  nfs
## keepalived的vip
192.168.48.66
IP Hostname CPU Memory
192.168.48.101 master01 2 4G
192.168.48.102 master02 2 4G
192.168.48.103 master03 2 4G
192.168.48.201 node01 2 4G
192.168.48.202 node02 2 4G
192.168.48.203 node03 2 4G
192.168.48.54 nfs 2 4G
软件 版本
kubernetes 1.15.3
docker-ce 19.03
calico 3.8
etcd 3.3.13
CNI 0.8.1
coredns 1.4.0

当前版本

[root@master01 ~]# kubectl get node
NAME       STATUS   ROLES    AGE   VERSION
master01   Ready    master   29d   v1.15.3
master02   Ready    master   29d   v1.15.3
master03   Ready    master   29d   v1.15.3
node01     Ready    node     29d   v1.15.3
node02     Ready    node     29d   v1.15.3
node03     Ready    node     77m   v1.15.3

etcd操作

  • –keys-only 默认为true,只显示key,如果设置为false,会显示key的所有值.
  • –prefix 默认为true可以看到所有的子目录.

查看版本

[root@master01 ~]# ETCDCTL_API=3 etcdctl --endpoints="https://192.168.48.101:2379,https://192.168.48.102:2379,https://192.168.48.103:2379" --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt  version
etcdctl version: 3.3.13
API version: 3.3

查看etcd集群

[root@master01 ~]# ETCDCTL_API=3 etcdctl --endpoints="https://192.168.48.101:2379,https://192.168.48.102:2379,https://192.168.48.103:2379" --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt  member list -w table
+------------------+---------+----------+-----------------------------+-----------------------------+
|        ID        | STATUS  |   NAME   |         PEER ADDRS          |        CLIENT ADDRS         |
+------------------+---------+----------+-----------------------------+-----------------------------+
|  cf07d604d88be6a | started | master01 | https://192.168.48.101:2380 | https://192.168.48.101:2379 |
| 6c8995c4a94f5a29 | started | master03 | https://192.168.48.103:2380 | https://192.168.48.103:2379 |
| 8cf70d11a9c8d0c5 | started | master02 | https://192.168.48.102:2380 | https://192.168.48.102:2379 |
+------------------+---------+----------+-----------------------------+-----------------------------+

查看pod资源

[root@master01 ~]# ETCDCTL_API=3 etcdctl --endpoints="https://192.168.48.101:2379,https://192.168.48.102:2379,https://192.168.48.103:2379" --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt  get /registry/pods --prefix --keys-only
/registry/pods/default/counter/registry/pods/kube-system/calico-kube-controllers-7bd78b474d-r2tdd/registry/pods/kube-system/calico-node-cfckb/registry/pods/kube-system/calico-node-hhtlb/registry/pods/kube-system/calico-node-kzqg6/registry/pods/kube-system/calico-node-msmv2/registry/pods/kube-system/calico-node-p2kvc/registry/pods/kube-system/calico-node-q8tr4/registry/pods/kube-system/coredns-5c6c9cf6c8-ppmf4/registry/pods/kube-system/coredns-5c6c9cf6c8-x2sj2

查看service资源

[root@master01 ~]# ETCDCTL_API=3 etcdctl --endpoints="https://192.168.48.101:2379,https://192.168.48.102:2379,https://192.168.48.103:2379" --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt  get /registry/services --prefix --keys-only
/registry/services/endpoints/default/kubernetes/registry/services/endpoints/default/nfs-k8s/registry/services/endpoints/kube-system/kube-controller-manager/registry/services/endpoints/kube-system/kube-dns/registry/services/endpoints/kube-system/kube-scheduler/registry/services/specs/default/kubernetes/registry/services/specs/kube-system/kube-dns

删除操作

[root@master01 ~]# kubectl get pod
NAME      READY   STATUS    RESTARTS   AGE
counter   1/1     Running   1          10d
[root@master01 ~]# ETCDCTL_API=3 etcdctl --endpoints="https://192.168.48.101:2379,https://192.168.48.102:2379,https://192.168.48.103:2379" --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt  del /registry/pods/default/counter
1
[root@master01 ~]# kubectl get pod
No resources found.

备份etcd

[root@master01 etcd]# ETCDCTL_API=3 etcdctl --endpoints="https://192.168.48.101:2379,https://192.168.48.102:2379,https://192.168.48.103:2379" --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt  snapshot save /etc/etcd/20190911backup.db
Snapshot saved at /etc/etcd/20190911backup.db
[root@master01 etcd]# cd /etc/etcd/
[root@master01 etcd]# ll
total 3812
-rw-r--r-- 1 root root 3891232 Sep 11 23:09 20190911backup.db
-rw-r--r-- 1 root root    1506 Aug 12 22:02 config.yml
-rw-r--r-- 1 root root    1516 Aug 12 22:07 etcd.config.yml

恢复etcd

关闭kube-apiserver

for name in ${!MasterArray[@]};do echo "--- $name ${MasterArray[$name]} ---"ssh ${MasterArray[$name]} "systemctl stop kube-apiserver.service"
done

关闭etcd集群

for name in ${!MasterArray[@]};do echo "--- $name ${MasterArray[$name]} ---"ssh ${MasterArray[$name]} "systemctl stop etcd.service"
done

删除etcd集群的数据

for name in ${!MasterArray[@]};do echo "--- $name ${MasterArray[$name]} ---"ssh ${MasterArray[$name]} "rm -rf /var/lib/etcd/"
done

将etcd备份数据发到etcd节点

for name in ${!MasterArray[@]};do echo "--- $name ${MasterArray[$name]} ---"scp /etc/etcd/20190911backup.db ${MasterArray[$name]}:/etc/etcd/20190911backup.db
done

恢复etcd

[root@master01 ~]# ETCDCTL_API=3 etcdctl --endpoints="https://192.168.48.101:2379,https://192.168.48.102:2379,https://192.168.48.103:2379" --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt --data-dir=/var/lib/etcd snapshot restore  /etc/etcd/20190911backup.db
[root@master02 ~]# ETCDCTL_API=3 etcdctl --endpoints="https://192.168.48.101:2379,https://192.168.48.102:2379,https://192.168.48.103:2379" --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt --data-dir=/var/lib/etcd snapshot restore  /etc/etcd/20190911backup.db
[root@master03 ~]# ETCDCTL_API=3 etcdctl --endpoints="https://192.168.48.101:2379,https://192.168.48.102:2379,https://192.168.48.103:2379" --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --cacert=/etc/kubernetes/pki/etcd/ca.crt --data-dir=/var/lib/etcd snapshot restore  /etc/etcd/20190911backup.db

启动etcd

for name in ${!MasterArray[@]};do echo "--- $name ${MasterArray[$name]} ---"ssh ${MasterArray[$name]} "systemctl start etcd.service"
done

启动kube-apiserver

for name in ${!MasterArray[@]};do echo "--- $name ${MasterArray[$name]} ---"ssh ${MasterArray[$name]} "systemctl start kube-apiserver.service"
done

一起来学k8s 37.二进制k8s集群etcd备份和恢复相关推荐

  1. h2数据库集群部署,备份及恢复

    h2数据库集群部署 一. 环境准备 准备两台机器,分别为Server1 , Server2 二. h2数据库安装 下载地址 http://h2database.com/html/download.ht ...

  2. K8S搭建单Master集群(二进制部署方式)

    一. 安装要求 (1)多台服务器,操作系统 CentOS7.6-86_x64 (2)硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘40GB或更多 (3)可以访问外网,需要拉取镜像,如果服务 ...

  3. 基于kubeadm快速部署kubernetes K8S V1.17.4集群-无坑完整版

    基于kubeadm快速部署kubernetes K8S V1.17.4集群,并部署Dashboard Web页面,实现可视化查看Kubernetes资源 主机配置规划 服务器名称(hostname) ...

  4. k8s使用port-forward访问集群中的应用程序(只能在执行命令的机器上开放端口)

    k8s使用port-forward访问集群中的应用程序 本文描述了如何使用 kubectl port-forward 访问 Kubernetes 集群中的 Redis Server.这种连接方式在实际 ...

  5. 蚂蚁集团万级规模 k8s 集群 etcd 高可用建设之路

    蚂蚁集团运维着可能是全球最大的 k8s 集群:k8s 官方以 5k node 作为 k8s 规模化的顶峰,而蚂蚁集团事实上运维着规模达到 10k node 规模的 k8s 集群.一个形象的比喻就是,如 ...

  6. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...

  7. # kubeadm ——k8S新节点加入集群-notready 问题解决

    kubeadm --k8S新节点加入集群 https://www.cnblogs.com/chuangcc/p/10697394.html 加入集群除了需要 token 外,还需要 Master 节点 ...

  8. K8s系列之:搭建高可用K8s v1.23.5集群详细步骤,3个master节点,3个Node节点

    K8s系列之:搭建高可用K8s v1.23.5集群详细步骤,3个master节点,3个Node节点 一.K8s集群节点划分 二.k8s集群环境准备 三.关闭swap 四.关闭ipv6 五.桥接IPv4 ...

  9. 蚂蚁集团于雨:万级规模 K8S 集群 Etcd 高可用建设之路

    -     前言    - 蚂蚁集团运维着可能是全球最大的 k8s 集群:k8s 官方以 5k node 作为 k8s 规模化的顶峰,而蚂蚁集团事实上运维着规模达到 10k node 规模的 k8s ...

  10. Kubernetes二进制搭建集群(保姆级)

    Kubernetes二进制搭建集群(保姆级教程) 1.1 环境准备 版本说明 签名工具: 虚拟机/服务器配置 1.2 系统初始化(所有节点均需操作) 1.2.1 主机名解析 1.2.2 时间同步(所有 ...

最新文章

  1. 还在写大量 if 来判断?试试用一个规则执行器来替代它
  2. C语言——第0次作业(二)
  3. 2018新版正方教务 ---爬虫--- JAVA源码--课表--平时分----成绩-----排名----考试安排...
  4. RhinoMock入门(3)——4种Mock类型
  5. 2016网络安全***赛记录
  6. 通过OpenShift超越云技术
  7. java json utf-8_Java 编码 和JSON
  8. 人生历练必备的十个心态(图)
  9. python网络爬虫系列(十)——chrome在爬虫中的使用
  10. vs12新建ajax,VS2012下WebService 的创建,部署和使用
  11. linux错误码61,Linux编程中的错误码列表
  12. 【Flink】Flink checkpoint was declined
  13. 拦截mysql执行计划数据_MySQL执行计划详解
  14. Redis初识、设计思想与一些学习资源推荐
  15. xp系统和win7系统哪个好
  16. 电影主题HTM5网页设计作业成品——爱影评在线电影(10页面)使用dreamweaver制作采用DIV+CSS进行布局
  17. 【vscode 插件】为 markdown 文章标题自动添加多级序号
  18. 'ContactForm' object has no attribute 'cleaned_data'
  19. outer和left outer join有什么区别??
  20. Android双屏异显

热门文章

  1. [FOI2020]楼房搭建
  2. python 断言方法
  3. 【评测】Attana Cell 200蛋白互作分析仪,实现细胞原位生物大分子互作检测
  4. 即时通讯工具腾讯 QQ v9.1.9.26361 绿色便携版
  5. Deecamp 面试翻车记录
  6. The overload Pattern
  7. Error: Some file crunching failed
  8. PPT画四分之一圆或扇形
  9. 【CCF】关于NOI Online测试有关事项的问答
  10. python实战-爬取斗鱼所有颜值主播头像