第9章:K8s集群证书续签,Etcd数据库备份与恢复

K8s集群证书续签,Etcd数据库备份与恢复

K8s 集群证书续签(kubeadm)

ETCD证书
自签证书颁发机构(CA) :
• ca.crt
• ca.key
etcd集群中相互通信使用的客户端证书:
• peer.crt
• peer.key
pod中定义Liveness探针使用的客户端证书:
• healthcheck-client.crt
• healthcheck-client.key
etcd节点服务端证书:
• server.crt
• server.key

 

K8S证书:
自签证书颁发机构(CA) :
• ca.crt
• ca.key
apiserver组件服务端证书:
• apiserver.crt
• apiserver.key
apiserver连接etcd客户端证书:
• apiserver-etcd-client.crt
• apiserver-etcd-client.key
apiserver访问kubelet 客户端证书:
• apiserver-kubelet-client.crt
• apiserver-kubelet-client.key
汇聚层(aggregator)证书:
• front-proxy-ca.crt
• front-proxy-ca.key
代理端使用的客户端证书,用作代理用户与 kube-apiserver 认证:
• front-proxy-client.crt
• front-proxy-client.key
kubelet证书:已默认启用自动轮转。

 

检查客户端证书过期时间:
kubeadm alpha certs check-expiration
续签所有证书:
kubeadm alpha certs renew all
cp /etc/kubernetes/admin.conf /root/.kube/config
查看当前目录所有证书有效时间:
ls |grep crt |xargs -I {} openssl x509 -text -in {} |grep Not

 

 

Etcd数据库备份与恢复

Kubernetes 使用 Etcd 数据库实时存储集群中的数据,安全起见,一定要备份!

kubeadm部署方式:

备份:
ETCDCTL_API=3 etcdctl snapshot save snap.db --endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/peer.crt --key=/etc/kubernetes/pki/etcd/peer.key

可以不用指定证书,操作的时候恢复后起不来


恢复:
1、先暂停kube-apiserver和etcd容器
mv /etc/kubernetes/manifests /etc/kubernetes/manifests.bak        # mv etcd.yaml kube-apiserver.yaml /tmp/ # 移走这两个就可以
mv /var/lib/etcd/ /var/lib/etcd.bak
2、恢复
ETCDCTL_API=3 etcdctl snapshot restore snap.db --data-dir=/var/lib/etcd
3、启动kube-apiserver和etcd容器
mv /etc/kubernetes/manifests.bak /etc/kubernetes/manifests

 

 

二进制部署方式:

备份:
ETCDCTL_API=3 etcdctl snapshot save snap.db --endpoints=https://192.168.31.71:2379 \
--cacert=/opt/etcd/ssl/ca.pem --cert=/opt/etcd/ssl/server.pem --key=/opt/etcd/ssl/server-key.pem


恢复:
1、先暂停kube-apiserver和etcd
systemctl stop kube-apiserver
systemctl stop etcd
mv /var/lib/etcd/default.etcd /var/lib/etcd/default.etcd.bak
2、在每个节点上恢复
ETCDCTL_API=3 etcdctl snapshot restore snap.db --name etcd-1 --initial-cluster="etcd-1=https://192.168.31.71:2380,etcd-
2=https://192.168.31.72:2380,etcd-3=https://192.168.31.73:2380" \
--initial-cluster-token=etcd-cluster --initial-advertise-peer-urls=https://192.168.31.71:2380 \
--data-dir=/var/lib/etcd/default.etcd
3、启动kube-apiserver和etcd
systemctl start kube-apiserver
systemctl start etcd

 

第9章:K8s集群证书续签,Etcd数据库备份与恢复

上一篇:MySQL教程80-MySQL子查询


下一篇:MongoDB连接