k3s 证书过期修改
Posted SRE运维博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k3s 证书过期修改相关的知识,希望对你有一定的参考价值。
> 作者:[SRE运维博客](https://www.cnsre.cn/)
> 博客地址:[https://www.cnsre.cn/](https://www.cnsre.cn/)
> 文章地址:[https://www.cnsre.cn/posts/221207116004/](https://www.cnsre.cn/posts/221207116004/)
> 相关话题:[https://www.cnsre.cn/tags/k3s/](https://www.cnsre.cn/tags/k3s/)
去年双十一买的服务器,但是创建了 K3S 集群。今天登录的时候发现出现了以下错误。简单记录下。
故障现象
登录服务器执行相关命令出现以下错误
[root@k3s-master ~]# kubectl get pods
error: You must be logged in to the server (Unauthorized)
执行 doker 命令判断大概问题
[root@k3s-master ~]# docker run -it ubuntu /bin/echo "cnsre"
cnsre
docker 命令可以执行那大概率应该是 k3s 的问题,查看 k3s 服务日志
[root@k3s-master ~]# journalctl -r -u k3s
1466 authentication.go:63] "Unable to authenticate the request" err="[x509: certificate has expired or is not yet valid: current time
发现有以上错误,那确定是证书的问题了。
解决方法
对于K3S 来说解决证书的问题其实很简单。
可以通过重启K3S 服务的来解决问题
sudo systemctl restart k3s
验证
执行命令验证问题
[root@k3s-master ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
k3s-node1 Ready <none> 370d v1.21.5+k3s2
k3s-node2 Ready <none> 370d v1.21.5+k3s2
k3s-node3 Ready <none> 370d v1.21.5+k3s2
k3s-master Ready control-plane,master 370d v1.21.5+k3s2
问题解决。
作者:SRE运维博客
博客地址:https://www.cnsre.cn/
文章地址:https://www.cnsre.cn/posts/221207116004/
相关话题:https://www.cnsre.cn/tags/k3s/
修改kubeadm证书过期时间
修改kubeadm证书过期时间
本文通过修改kubeadm源码让kubeadm默认的一年证书过期时间修改为99年
我已经编译好了一个放在了github上,有需要的可以直接下
代码编译
编译环境镜像我已经放到dockerhub上了:fanux/kubernetes-build:v1.0.0
首先clone k8s 代码:
git clone https://github.com/kubernetes/kubernetes
挂载到镜像中编译
docker run --rm -v yourcodedir:/go/src/k8s.io/kubernetes -it fanux/kubernetes-build:v1.0.0 bash
# cd /go/src/k8s.io/kubernetes
# make all WHAT=cmd/kubeadm GOFLAGS=-v
编译完产物在 _output/local/bin/linux/amd64/kubeadm 目录下
修改代码
证书时间代码其实在client-go里面,文件是:
vendor/k8s.io/client-go/util/cert/cert.go
然后看到这个NotAfter的都给改了即可:
NotAfter: validFrom.Add(duration365d * longYear)
我这里longYear = 99
然后编译完工
最后在代码里贴上小广告:
func main() {
if err := app.Run(); err != nil {
fmt.Fprintf(os.Stderr, "error: %v
", err)
os.Exit(1)
}
fmt.Println("*************************************************")
fmt.Println("**** ×××w.sealyun.com ***")
fmt.Println("**** kubernetes install in 3 steps ***")
fmt.Println("**** provide by fanux ***")
fmt.Println("*************************************************")
os.Exit(0)
}
完美
以上是关于k3s 证书过期修改的主要内容,如果未能解决你的问题,请参考以下文章