千家信息网

kubelet签署证书到期怎么办

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,Kubelet简介Kubelet组件运行在Node节点上,维持运行中的Pods以及提供kuberntes运行时环境,主要完成以下使命:1.监视分配给该Node节点的pods2.挂载pod所需要的vol
千家信息网最后更新 2024年11月28日kubelet签署证书到期怎么办

Kubelet简介

Kubelet组件运行在Node节点上,维持运行中的Pods以及提供kuberntes运行时环境,主要完成以下使命:

1.监视分配给该Node节点的pods

2.挂载pod所需要的volumes

3.下载pod的secret

4.通过docker/rkt来运行pod中的容器

5.周期的执行pod中为容器定义的liveness探针

6.上报pod的状态给系统的其他组件

7.上报Node的状态

现象
harbor镜像平台服务器出现内部错误,请求无法完成

排查
登陆dashboard发现node节点状态都为not ready,然后登陆node节点看到确实都为not ready ,本能反应是把kubelet、kube-proxy服务都重新一遍,重新后状态任然为notready状态。
这时细看nodes节点状态age为368d,感觉应该是什么过期了,之前还特意申请证书为10年,应该不是证书的问题,后来查阅部署文档发现kubelet也需要证书授权。

解决
最后kubectl get csr发现果然node-csr都是Pending状态,需要重新kubectl certificate approve才能生效。
查资料发现默认签署的的证书只有 1 年有效期,如果想要调整证书有效期可以通过设置 kube-controller-manager 的 --experimental-cluster-signing-duration 参数实现,该参数默认值为 8760h0m0s,关于怎样增加默认签署证书时间及自动证书轮换可以参考kubernetes认证授权机制。

步骤

[root@k8s01 bin]# kubectl get nodesNAME        STATUS     ROLES    AGE    VERSION192.168.88.34   NotReady      368d   v1.13.1192.168.88.65   NotReady      368d   v1.13.1[root@k8s01 bin]#  kubectl get csrNAME                                                   AGE   REQUESTOR           CONDITIONnode-csr-d8End93rQqSFRHpV65KA2yL-4CnYHT4te6D85lzO5QA   18m   kubelet-bootstrap   Pendingnode-csr-iuBw7qxuiCeyiQ1x5WqTASgqVheII-KpTX0L-S8Md8Y   10m   kubelet-bootstrap   Pending[root@k8s01 bin]# kubectl certificate approve node-csr-d8End93rQqSFRHpV65KA2yL-4CnYHT4te6D85lzO5QA certificatesigningrequest.certificates.k8s.io/node-csr-d8End93rQqSFRHpV65KA2yL-4CnYHT4te6D85lzO5QA approved[root@k8s01 bin]# kubectl certificate approve node-csr-iuBw7qxuiCeyiQ1x5WqTASgqVheII-KpTX0L-S8Md8Ycertificatesigningrequest.certificates.k8s.io/node-csr-iuBw7qxuiCeyiQ1x5WqTASgqVheII-KpTX0L-S8Md8Y approved[root@k8s01 bin]#  kubectl get csrNAME                                                   AGE   REQUESTOR           CONDITIONnode-csr-d8End93rQqSFRHpV65KA2yL-4CnYHT4te6D85lzO5QA   19m   kubelet-bootstrap   Approved,Issuednode-csr-iuBw7qxuiCeyiQ1x5WqTASgqVheII-KpTX0L-S8Md8Y   11m   kubelet-bootstrap   Approved,Issued[root@k8s01 bin]# kubectl get nodesNAME        STATUS   ROLES    AGE    VERSION192.168.88.34   Ready       368d   v1.13.1192.168.88.65   Ready       368d   v1.13.1
0