zoukankan      html  css  js  c++  java
  • k8s单master集群通过备份etcd还原集群

    准备环境

    通过kubeadm 安装的单master kubernetes 1.19+ 集群

    容器环境:containerd

    客户端工具:kubeadm、kubectl、etcdctl、crictl

    备份文件

    etcd snap快照 xxx.db

    /etc/kubernetes/目录下的所有文件(证书,manifest文件)

    用户主目录下 .kube/config文件(kubectl连接认证)

    /var/lib/kubelet/目录下所有文件(plugins容器连接认证)

    还原操作

    1、在master节点执行 kubeadm reset 

    2、清理掉flannel相关网络配置

    rm -rf /var/lib/cni/
    rm -rf /var/lib/kubelet/*
    rm -rf /etc/cni/
    ifconfig cni0 down
    ifconfig flannel.1 down
    ip link delete cni0
    ip link delete flannel.1

    2、在master节点执行 kubeadm  init

    3、集群初始化成功后 systemctl stop kubelet.service

    4、crictl ps 获取所有运行中的容器,crictl stop 停止kube-system相关的所有容器

    5、删除etcd数据库 rm -rf var/lib/etcd 

    6、通过etcdctl还原  etcdctl snapshot restore  xxx.db --data-dir=/var/lib/etcd

    7、还原kubernetes和kubelet目录 cp -r kubernetes /etc/ && cp -r  kubelet /var/lib/

    8、还原kubectl连接认证 cp config $HOME/.kube/config

    9、重启kubelet.service   systemctl start kubelet.service

    10、等待数秒后执行 kubectl cluster-info 检查集群状态,如果都是running则说明master还原成功

  • 相关阅读:
    MCU 51-7 I2C Communication EEPROM
    FinalShell(免费的XShell替代品)
    Docker部署Redis
    Docker-Compose部署ELK
    Linux清空文件
    Linux防火墙的操作
    VSCode远程连接Linux服务器
    Apollo分布式配置中心
    SpringBoot整合log4j2
    MySQL区分大小写
  • 原文地址:https://www.cnblogs.com/gmmy/p/14216076.html
Copyright © 2011-2022 走看看