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