kubelet证书过期解决方法

昨天收到报警短信:集群中某node状态为notReady,由于是长期不用的,所以放到今天才有空处理,以下记录处理过程。

查看kubelet日志,发现不停的打印证书过期相关提示信息。

以下操作基于kubernetes集群版本:v1.6.6

 

kubelete 证书默认有效期一年

1.查看证书有效期,这里使用以前下载的cfssl-certinfo

curl -s -L -o /usr/local/bin/cfssl-certinfo https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
chmod +x /usr/local/bin/cfssl-certinfo
cfssl-certinfo -cert /etc/kubernetes/ssl/kubelet.crt

  显示内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
  "subject": {
    "common_name": "test@1505813004",
    "names": [
      "test@1505813004"
    ]
  },
  "issuer": {
    "common_name": "test@1505813004",
    "names": [
      "test@1505813004"
    ]
  },
  "serial_number": "1",
  "sans": [
    "test"
  ],
  "not_before": "2017-10-24T09:23:24Z",
  "not_after": "2018-10-24T09:23:24Z",  
  "sigalg": "SHA256WithRSA",
  "authority_key_id": "",
  "subject_key_id": "",
  "pem": "-----BEGIN CERTIFICATE-----\nMIIDDKDK........EHi\nThGfI/wURC0=\n-----END CERTIFICATE-----\n"
}

2. 重新生成证书

在证书过期node删除kubelet相关证书文件及配置文件然后重启kubelet,
kubelet会向apiserver发起一个csr
rm  /etc/kubernetes/kubelet.kubeconfig
rm  /etc/kubernetes/ssl/kubelet.*
systemctl  restart kubelet
systemctl  status  kubelet

1
2
3
4
5
6
//查看未授权的CSR请求:
kubectl get csr<br>
//approve CSR 请求:
kubectl certificate approve csr-4pw6g
NAME        AGE       REQUESTOR           CONDITION
csr-4pw6g   1h        kubelet-bootstrap   Approved,Issued

3. 重启kubelet

1
2
3
4
5
6
7
//重启kubelet
systemctl  restart kubelet
 
//查看node状态
kubectl get no
NAME       STATUS    AGE       VERSION
external   Ready     1y        v1.6.6

 

4. 另:在kubernetes1.7之后,可以采用集群自动签发证书方案,但仍然需要手动重启kubelet, 在1.8之后,就可以自动签发,自动renew证书;也可以设置更长的有效期。后继再添加整理相关内容。

 

 

 

posted @   rootid  阅读(6192)  评论(4编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)
点击右上角即可分享
微信分享提示