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证书过期时间

kubernetes集群三步安装

修改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 证书过期修改的主要内容,如果未能解决你的问题,请参考以下文章

k3s 证书过期解决方法

修改kubeadm证书过期时间

Kubeadm证书过期时间调整

Kubernetes 证书默认1年过期时间修改

K3s - 使用客户端证书创建用户

kubeadm修改证书过期时间