#安装kubernetes
Kubernetes我用的安装包1.12.0,见
http://store.lameleg.com/?referrer=yujiarain
https://sealyun.com/pro/products/
安装master只需要两步
最近重装是因为遇到了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数据存储当中的。
-
备份/etc/kubernetes目录,这里放着各种证书
-
备份/var/lib/kubelet目录,也是各种证书
-
kubeadm reset -f
这一步会删除所有的集群环境 -
进入安装包的shell目录
sh init.sh #重新安装kubernetes环境 -
将备份的两个目录覆盖回去
-
初始化
kubeadm init --config …/conf/kubeadm.yaml --ignore-preflight-errors=all
因为证书已经覆盖回原目录,所以如果不用–ignore-preflight-errors=all就无法初始化完成。 -
检查集群
kubectl get pod --all-namespaces
如果都running起来了,恭喜你。如果没有,仔细检查你的步骤。 -
检查证书有效期
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