一起来学k8s 37.二进制k8s集群etcd备份和恢复
二进制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备份和恢复相关推荐
- h2数据库集群部署,备份及恢复
h2数据库集群部署 一. 环境准备 准备两台机器,分别为Server1 , Server2 二. h2数据库安装 下载地址 http://h2database.com/html/download.ht ...
- K8S搭建单Master集群(二进制部署方式)
一. 安装要求 (1)多台服务器,操作系统 CentOS7.6-86_x64 (2)硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘40GB或更多 (3)可以访问外网,需要拉取镜像,如果服务 ...
- 基于kubeadm快速部署kubernetes K8S V1.17.4集群-无坑完整版
基于kubeadm快速部署kubernetes K8S V1.17.4集群,并部署Dashboard Web页面,实现可视化查看Kubernetes资源 主机配置规划 服务器名称(hostname) ...
- k8s使用port-forward访问集群中的应用程序(只能在执行命令的机器上开放端口)
k8s使用port-forward访问集群中的应用程序 本文描述了如何使用 kubectl port-forward 访问 Kubernetes 集群中的 Redis Server.这种连接方式在实际 ...
- 蚂蚁集团万级规模 k8s 集群 etcd 高可用建设之路
蚂蚁集团运维着可能是全球最大的 k8s 集群:k8s 官方以 5k node 作为 k8s 规模化的顶峰,而蚂蚁集团事实上运维着规模达到 10k node 规模的 k8s 集群.一个形象的比喻就是,如 ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...
- # kubeadm ——k8S新节点加入集群-notready 问题解决
kubeadm --k8S新节点加入集群 https://www.cnblogs.com/chuangcc/p/10697394.html 加入集群除了需要 token 外,还需要 Master 节点 ...
- K8s系列之:搭建高可用K8s v1.23.5集群详细步骤,3个master节点,3个Node节点
K8s系列之:搭建高可用K8s v1.23.5集群详细步骤,3个master节点,3个Node节点 一.K8s集群节点划分 二.k8s集群环境准备 三.关闭swap 四.关闭ipv6 五.桥接IPv4 ...
- 蚂蚁集团于雨:万级规模 K8S 集群 Etcd 高可用建设之路
- 前言 - 蚂蚁集团运维着可能是全球最大的 k8s 集群:k8s 官方以 5k node 作为 k8s 规模化的顶峰,而蚂蚁集团事实上运维着规模达到 10k node 规模的 k8s ...
- Kubernetes二进制搭建集群(保姆级)
Kubernetes二进制搭建集群(保姆级教程) 1.1 环境准备 版本说明 签名工具: 虚拟机/服务器配置 1.2 系统初始化(所有节点均需操作) 1.2.1 主机名解析 1.2.2 时间同步(所有 ...
最新文章
- 还在写大量 if 来判断?试试用一个规则执行器来替代它
- C语言——第0次作业(二)
- 2018新版正方教务 ---爬虫--- JAVA源码--课表--平时分----成绩-----排名----考试安排...
- RhinoMock入门(3)——4种Mock类型
- 2016网络安全***赛记录
- 通过OpenShift超越云技术
- java json utf-8_Java 编码 和JSON
- 人生历练必备的十个心态(图)
- python网络爬虫系列(十)——chrome在爬虫中的使用
- vs12新建ajax,VS2012下WebService 的创建,部署和使用
- linux错误码61,Linux编程中的错误码列表
- 【Flink】Flink checkpoint was declined
- 拦截mysql执行计划数据_MySQL执行计划详解
- Redis初识、设计思想与一些学习资源推荐
- xp系统和win7系统哪个好
- 电影主题HTM5网页设计作业成品——爱影评在线电影(10页面)使用dreamweaver制作采用DIV+CSS进行布局
- 【vscode 插件】为 markdown 文章标题自动添加多级序号
- 'ContactForm' object has no attribute 'cleaned_data'
- outer和left outer join有什么区别??
- Android双屏异显