Kubernetes外置Etcd数据恢复

#安装kubernetes
Kubernetes我用的安装包1.12.0,见 

http://store.lameleg.com/?referrer=yujiarain
https://sealyun.com/pro/products/

安装master只需要两步

  1. sh init.sh
  2. sh master.sh

最近重装是因为遇到了Kubernetes证书只有1年有效的坑,可以重新生成证书,可是新证书也只有1年,每年做一次太不好了,所以按照https://blog.51cto.com/11889458/2323328的方法重新编译了kubeadm,将证书时间扩充到30年,提醒,etcd证书也是1年有效。
恢复数据时,因为用的内置etcd,数据弄起来很麻烦,所以为了以后方便,尝试将etcd外置,并重装kubernetes,使用旧的etcd来恢复所有服务。

#外置ETCD
配置kubeadm.yaml,文件在安装包的conf文件夹中
vi kubeadm.yaml

apiVersion: kubeadm.k8s.io/v1alpha3
#kind: MasterConfiguration
kind: ClusterConfiguration
etcd:
  external:
    endpoints:
    - http://192.168.55.28:2379
networking:
  serviceSubnet: 172.30.252.0/22
  podSubnet: 172.30.248.0/22
kubernetesVersion: v1.12.0
kubeProxy:
  config:
    mode: ipvs

etcd不要与集群安装在一起,我只装了单机,没有做证书

#利用原有ETCD恢复Kubernetes集群
恢复时,有个前提条件,就是在待恢复的机器上,机器名称和ip地址需要与崩溃前的主节点配置完成一样,因为这个配置是写进了etcd数据存储当中的。

  1. 备份/etc/kubernetes目录,这里放着各种证书

  2. 备份/var/lib/kubelet目录,也是各种证书

  3. kubeadm reset -f
    这一步会删除所有的集群环境

  4. 进入安装包的shell目录
    sh init.sh #重新安装kubernetes环境

  5. 将备份的两个目录覆盖回去

  6. 初始化
    kubeadm init --config …/conf/kubeadm.yaml --ignore-preflight-errors=all
    因为证书已经覆盖回原目录,所以如果不用–ignore-preflight-errors=all就无法初始化完成。

  7. 检查集群
    kubectl get pod --all-namespaces
    如果都running起来了,恭喜你。如果没有,仔细检查你的步骤。

  8. 检查证书有效期
    cd /etc/kubernetes

    [root@master1 pki]# openssl x509 -in front-proxy-client.crt   -noout -text  |grep Not
           Not Before: Mar 12 06:41:50 2019 GMT
           Not After : Mar  4 06:41:50 2049 GMT
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值