kubeadm初始化 apiserver证书到期替换.md

Kubernetes证书到期导致解决方法

  • 由于使用kubeadm 初始化 k8s集群,默认签发的CA证书是1年有效期,到期之后请求apiserver导致报错

  • 首先使用openssl命令查询相关证书是否到期

openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text  |grep Not

[root@master ~]# openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -text  |grep Not

具体解决方法

  • 备份Kubernetes配置文件
mkdir -p  /root/`date +%F`;cp –ar /etc/kubernetes /root/`date +%F`

  • 由于k8s版本1.15.0版本之后,重新签发证书则不需要访问k8s.io网络,默认签发是1年,通过修改kubadm 源码编译默认添加100年,证书签证,使用CA证书只有10年。
    • 下载kubeadm地址连接

      • http://www.zhao13869.com/kubeadm.tgz
    • 见附件 kubeadm.tgz文件

    • 先上传到服务器中,然后解压

tar zxf kubeadm.tgz

  • 执行证书替换操作,本地执行刚上传解压之后的kubeadm二进制文件
./kubeadm alpha certs renew all

  • 重启Manster 和Node节点上的kubelet,并替换配置文件
systemctl restart kubelet

mv ~/.kube/config ~/.kube/config_`date +%F`
cp /etc/kubernetes/admin.conf ~/.kube/config

  • 然后使用openssl命令查询相关证书是时长是否已经修改
[root@master ~]# openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text  |grep Not
            Not Before: May 25 06:57:29 2019 GMT
            Not After : Jul 14 02:51:55 2119 GMT

[root@master ~]# openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -text  |grep Not
            Not Before: May 25 06:57:29 2019 GMT
            Not After : May 22 06:57:29 2029 GMT

[root@master ~]# openssl x509 -in /etc/kubernetes/pki/etcd/ca.crt -noout -text  |grep Not
            Not Before: May 25 06:57:33 2019 GMT
            Not After : May 22 06:57:33 2029 GMT

  • 查询Pod是否正常,能查询出数据说明证书签发处理完成
[root@master ~]# kubectl  get pods 
NAME                      READY     STATUS    RESTARTS   AGE
myapp-7877647684-4l6gt    1/1       Running   2          37d
myapp2-79f74b4cd8-vdk7v   1/1       Running   2          37d

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。