k3s证书过期解决方法(亲测有效)

k3s证书过期解决方法(亲测有效)

问题描述

执行任何kubectl命令时都会报错,比如执行kubectl get node命令时提示错误信息:Unable to connect to the server: x509: certificate has expired or is not yet valid

解决方法

#### 删掉secret k3s-serving
[root@test-node2-138 ~]# kubectl --insecure-skip-tls-verify -n kube-system delete secrets k3s-serving
secret "k3s-serving" deleted
### 删掉系统中的文件dynamic-cert.json
[root@test-node2-138 ~]# rm -f /var/lib/rancher/k3s/server/tls/dynamic-cert.json
### 删掉目前k3s进程
[root@test-node2-138 ~]# k3s-killall.sh
### 重启k3s进程
[root@test-node2-138 ~]# systemctl restart k3s

其它扩展

  • 一般k8s的证书默认是1年到期,所以每年都需要更新一次,如何查看证书的有效期

    kubectl --insecure-skip-tls-verify -n kube-system get secrets
    

    这样可以查看到证书已经用了多久,如图:

    image-20240522112806540

    说明已经用了347天,还有10多天要过期了。更新完后再次查看,时间久会发生变化,如下是刚才更新后的:

    image-20240522114000284

  • 也可以通过如下方式查看证书时间

    [root@test-node2-138 ~]# for i in `ls /var/lib/rancher/k3s/server/tls/*.crt`; do echo $i; openssl x509 -enddate -noout -in $i; done
    

    显示如下:

    image-20240610095810812

  • 执行任何kubectl命令时都会报错,比如执行kubectl get node命令时提示错误信息:Unable to connect to the server: x509: certificate has expired or is not yet valid

    临时解决方法

    就是使用--insecure-skip-tls-verify参数,比如执行kubectl get node报错,我们可以使用kubectl --insecure-skip-tls-verify get node这样就不会报错了。这样只是跳过证书,所以只是一种临时的解决方案。建议还是要更新证书比较安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值