Kubernetes集群的主节点备份与恢复

一般安装模式下(如使用kubeadm)的Kubernetes集群,主节点(Master)只有一个,并且集群数据存储服务etcd也只运行了一个实例。若是遇到极端状况(如整机故障、主硬盘损坏、数据误删除等)致使master节点没法访问,则整个集群都将没法访问或出现异常现象。因此master节点机器性能要求不必定很高,可是稳定性是越高越好。html

为了有备无患,对主节点须要作好备份。数据库

Kubernetes master节点控制组件的备份及恢复包括:容器镜像,etcd数据库,主节点证书、配置参数、插件等部分。运维

1、etcd数据库备份

通常来讲,若是master节点须要备份恢复,除了误操做和删除,极可能就是整个机器已出现了故障,故而可能须要同时进行etcd数据的恢复。性能

在恢复时,在待恢复机器上的机器名称和ip地址须要与崩溃前的主节点配置彻底同样,由于这个配置写在etcd数据存储当中的。测试

etcd数据库备份的具体操做方法参见:spa

2、主节点数据备份

除了etcd数据库,主节点数据备份还包括下面三个部分:插件

  • /etc/kubernetes/目录下的全部文件(证书,manifest文件)
  • 用户主目录下 .kube/config文件(kubectl链接认证)
  • /var/lib/kubelet/目录下全部文件(plugins容器链接认证)

目录结构参考:Kubernetes的配置文件目录结构 htm

3、主节点组件恢复

    主节点组件的恢复可按如下步骤进行:blog

  1.  按以前的安装脚本进行全新安装。
    • kubeadm reset,iptables –X…
  2.  中止系统服务。
    • systemctl stop kubelet.service
  3.  删除相关插件容器
    • coredns, flannel, dashboard...
  4. 恢复etcd数据
  5.  将以前备份的三个目录依次还原。
  6.   重启系统服务。
    • systemctl start kubelet.service。
  7.  稍等片刻,待全部组件启动成功后进行验证。
    • kubectl cluster-info

对于小规模的开发、测试、数据处理等Kubernetes集群,可使用备份机制来恢复。

固然,可恢复的前提是:必须有备份数据!!!

4、更多的参考

对于有必定规模的生产用集群,尤为是用于服务处理的集群,经过备份机制恢复将会影响业务的持续,应该作到主节点的双活、多活以及异地互备。不过,可用性要求越高,对硬件和运维人员都有更高的要求,费用也会大幅度上升,可用性的级别应该根据业务需求来进行选择,后面咱们再继续探讨。

相关文章
相关标签/搜索