以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!
如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~
背景介绍
使用 kubeadm 安装的 Kubernetes 集群,运行一段时间后执行 kubectl 命令突然出现以下报错:
代码语言:javascript复制Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2023-09-22T15:05:09 08:00 is after 2023-09-20T04:04:02Z
报错原因是 Kubernetes 集群证书已经过期(默认有效期 365 天),处理方法是对 Kubernetes 集群证书进行更新以重置有效期,本文将介绍具体处理过程。
相关概念
Kubernetes 集群证书是用于在 Kubernetes 集群中实现安全通信的关键组件,主要用于在集群的各个组件之间建立信任和进行身份验证。
Kubernetes 集群证书包括:
- CA(证书颁发机构)证书:用于签名其他证书,是信任链的根
- API Server 证书:用于 API Server 的 TLS 认证
- kubelet 证书:用于 kubelet 与 API Server 之间的通信
- kube-proxy 证书:用于 kube-proxy 与 API Server 之间的通信
- etcd 证书:用于 etcd 集群内部节点之间的通信
- 服务账户证书:用于服务账户与 API Server 之间的通信
kubeadm 是 Kubernetes 集群的启动和初始化工具,它在创建集群时生成 Kubernetes 集群证书,并默认设置有效期为一年。
处理过程
1、备份证书
代码语言:javascript复制cd /etc/kubernetes && mv pki pki-old
2、检测证书
代码语言:javascript复制# kubeadm 20 之前的版本使用本命令
kubeadm alpha certs check-expiration
# kubeadm 20 之后的版本使用本命令
kubeadm certs check-expiration