kubeadm1.28证书续签
版本:k8s集群中各个组件(如api服务器、节点、控制器管理器等)之间使用证书进行身份验证和安全传输数据。然而,由于证书具有有效期,一旦过期,集群中的组件将无法正常通信,导致应用程序无法使用。1、kubectl命令无法连接到集群,会出现上图的告警2、集群中的Pod可能无法启动或运行异常,因为kubelet组件无法与API服务器进行通信3、集群的监控和日志收集等功能可能受到影响,因为组件无法正常运行
一、证书过期的问题与影响
版本:
k8s集群中各个组件(如api服务器、节点、控制器管理器等)之间使用证书进行身份验证和安全传输数据。然而,由于证书具有有效期,一旦过期,集群中的组件将无法正常通信,导致应用程序无法使用。
证书过期的影响:
1、kubectl命令无法连接到集群,会出现上图的告警
2、集群中的Pod可能无法启动或运行异常,因为kubelet组件无法与API服务器进行通信
3、集群的监控和日志收集等功能可能受到影响,因为组件无法正常运行。
二、查看证书剩余时间
# kubeadm certs check-expiration #此命令只使用kubeadm安装的环境
# kubeadm certs check-expiration
标题的含义:
CERTIFICATE: 具体的证书名称
EXPIRES: 表示证书到期的日期和具体时间
RESIDUAL TIME: 这是证书剩余的有效期。
CERTIFICATE AUTHORITY: 签发证书的证书颁发机构(CA)的名称。
EXTERNALLY MANAGED:这表示正式是否由外部管理。no:表明kubeadm管理证书。yes:表明证书可能由其他工具或方法管理。
证书的作用:
admin.conf:用于管理员与kubernetes API服务器进行交互的身份验证。这个配置文件包含了访问API服务器所需的证书和秘钥。
apiserver:安全通信。api服务器使用此证书与其他集群组件(如:kubelet、控制器管理器等)进行TLS加密通信。身份验证:确保只有授权的客户端可以访问API服务器。
apiserver-etcd-client:API服务器用于etcd集群通信的客户端证书,确保API服务器与ETCD之间的通信是加密和安全的。
apiserver-kubelet-client:API服务用于kubelet通信的客户端证书,确保API服务器可以安全地与集群中的节点进行通信。
controller-manager.conf:控制器管理器用于与API服务器交互的身份验证证书,确保控制器管理器可以访问和操作集群资源。
etcd-healthcheck-client: 用于etcd健康检查的客户端证书,确保可以安全地检查etcd集群的健康状态。
etcd-peer:etcs集群中节点之间通信的证书,确保etcd集群内部的通信是加密和安全的。
etcd-server:etcd服务器用于与客户端通信的证书,确保etc服务器可以安全地与集群总的其他组件进行通信。
front-proxy-client:前端代理客户端证书,用于与API服务器进行身份验证,通长与某些代理或负载均衡器相关。
scheduler.conf:调度器用于与API服务器交互的身份验证证书,确保调度器可以访问和操作集群资源。
根证书:
ca: 根证书颁发激斗,用于签发和验证集群中其他所有证书的有效性。这是整个证书信任链的起点。
etcd-ca: etcd集群的根证书颁发机构,专门用于签发和验证etcd相关的证书。
front-proxy-ca:前端代理的根证书颁发机构,用于签发和验证与前端代理相关的证书。
三、备份重要数据。《过期之前》
需要备份的两个目录;
备份:
四、跟新证书
# kubeadm certs renew all
这个使用与证书已经过期,在过期之前可以使用kubectl delete pod 即可
## containerd
# crictl pods --namespace kube-system --name 'kube-scheduler-*|kube-controller-manager-*|kube-apiserver-*|etcd-*' -q | xargs crictl rmp -f
## docker 没有测试
docker ps |egrep "k8s_kube-apiserver|k8s_kube-scheduler|k8s_kube-controller|k8s_etcd"|awk '{print $1}'|xargs docker restart
##更新kubectl配置,也可指定
# cp /etc/kubernetes/admin.conf ~/.kube/config
# kubectl --kubeconfig=/etc/kubernetes/admin.conf get pod
五、参考:
【云原生】Kubernetes----证书过期处理办法_kubernetes证书过期-CSDN博客
六、kubelet自动续签,没有测试
## 修改一
# vi /etc/kubernetes/manifests/kube-controller-manager.yaml
- --cluster-signing-duration=43800h0m0s
- --feature-gates=RotateKubeletServerCertificate=true
# kubectl apply -f /etc/kubernetes/manifests/kube-controller-manager.yaml
## 修改二。《默认不用修改,因地制宜》;所有节点都查看
# grep rotateCertificates /var/lib/kubelet/config.yaml
rotateCertificates: true
# vi /etc/kubernetes/manifests/kube-controller-manager.yaml
# kubectl apply -f /etc/kubernetes/manifests/kube-controller-manager.yaml
# vi /var/lib/kubelet/config.yaml
更多推荐
所有评论(0)