【kubernets】kubelet证书单独更新

前言说明

接上一篇文章https://blog.csdn.net/margu_168/article/details/132584109关于kubernets中的证书管理。本篇文章将单独说明一下kubelet的证书更新。在1.19.16版本中,默认情况下使用 kubeadm alpha certs renew all 不能更新kubelet的证书,其他版本请自行测试。但是某些情况下,我们需要立即对kubelet使用的证书更新,下面的方法大家可以参考一二。

更新步骤

可以先查看一下之前kubelet使用证书的过期时间

使用kubeadm方式部署的kubelet使用的证书默认放在 /var/lib/kubelet/pki目录下

bash 复制代码
[root@k8s-m1 ~]# cd  /var/lib/kubelet/pki
#正常情况下,以下应该是4个文件,且时间应该是一致的
[root@k8s-m1 pki]# ll
total 16
-rw------- 1 root root 1061 Mar  6  2023 kubelet-client-2023-03-06-10-28-23.pem
-rw------- 1 root root 1061 Jan 11 19:08 kubelet-client-2024-01-11-19-08-11.pem
lrwxrwxrwx 1 root root   59 Jan 11 19:08 kubelet-client-current.pem -> /var/lib/kubelet/pki/kubelet-client-2024-01-11-19-08-11.pem
-rw-r--r-- 1 root root 2237 Mar  6  2023 kubelet.crt
-rw------- 1 root root 1675 Mar  6  2023 kubelet.key

#从下面也可以看到过期时间是由kubelet.crt这个文件决定的,这个文件我们可以手动生成,但是方便起见我们还是让它自动生成,方法参考后续。
[root@k8s-m1 pki]# openssl x509 -in  kubelet.crt  -text -noout
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 2 (0x2)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: CN=k8s-m1-ca@1678069631
        Validity
            Not Before: Mar  6 01:27:10 2023 GMT
            Not After : Mar  5 01:27:10 2024 GMT

重新生成kubelet.conf文件

bash 复制代码
[root@k8s-m1 pki]# kubeadm init --kubernetes-version=v1.19.16 phase kubeconfig kubelet --node-name k8s-m3 --kubeconfig-dir /tmp/worker/ --control-plane-endpoint 192.168.2.250
W0125 15:13:41.651740   21318 configset.go:348] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
[kubeconfig] Writing "kubelet.conf" kubeconfig file

参数说明:注意指定使用的kubernets版本,相应节点name,保存kubelet.conf文件的临时位置,并且我这使用了control-plane-endpoint这个参数来指明集群使用的vip地址。

(更多参数可以通过-h 查看,--control-plane-endpoint是用于指定apiserver的vip地址)

拷贝配置文件到实际使用目录,实际使用中最好先备份

bash 复制代码
[root@k8s-m1 pki]# cp /tmp/worker/kubelet.conf  /etc/kubernetes/
cp: overwrite '/etc/kubernetes/kubelet.conf'? y

删除/var/lib/kubelet/pki 目录下的所有文件

bash 复制代码
[root@k8s-m1 pki]# rm -rf  /var/lib/kubelet/pki

重启kubelet,等待目录/var/lib/kubelet/pki下的文件生成即可

bash 复制代码
[root@k8s-m1 pki]# systemctl restart kubelet

检查

查看kubelet状态,并查看对应的证书文件是否正常生成,注意证书生成需要一点时间,可以稍等一下进行查看。貌似需要切换一下目录再进来查看。其实这个证书文件时根据先前我们重新生成kubelet.conf文件生成的。

bash 复制代码
[root@k8s-m1 pki]# systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/kubelet.service.d
           └─10-kubeadm.conf
   Active: active (running) since Thu 2024-01-25 15:15:27 CST; 22s ago
     Docs: https://kubernetes.io/docs/
 Main PID: 24420 (kubelet)
    Tasks: 26
   Memory: 37.8M
   CGroup: /system.slice/kubelet.service
           └─24420 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/conf...
^C
[root@k8s-m1 pki]# ll
total 12
-rw------- 1 root root 1061 Jan 25 15:14 kubelet-client-2024-01-25-15-14-33.pem
lrwxrwxrwx 1 root root   59 Jan 25 15:14 kubelet-client-current.pem -> /var/lib/kubelet/pki/kubelet-client-2024-01-25-15-14-33.pem
-rw-r--r-- 1 root root 2237 Jan 25 15:14 kubelet.crt
-rw------- 1 root root 1675 Jan 25 15:14 kubelet.key
[root@k8s-m1 pki]# 

以上就是kubelet证书单独更新的过程,大家可以参考。

更多关于kubernetes的知识分享,请前往博客主页。编写过程中,难免出现差错,敬请指出

相关推荐
hwj运维之路26 分钟前
超详细ubuntu22.04部署k8s1.28高可用(二)【结合ingress实现业务高可用】
运维·云原生·容器·kubernetes
切糕师学AI37 分钟前
.NET Core Web 中的健康检查端点(Health Check Endpoint)
前端·kubernetes·.netcore
Cyber4K4 小时前
【Kubernetes专项】K8s 控制器 DaemonSet 从入门到企业实战应用
云原生·容器·kubernetes
切糕师学AI4 小时前
RKE(Rancher Kubernetes Engine) 是什么?
云原生·容器·kubernetes·rancher
龙飞056 小时前
Kubernetes 排障实战:PVC 一直 Pending 的原因与解决方案
运维·学习·云原生·容器·kubernetes
岁岁种桃花儿6 小时前
流量入口Nginx动态发现K8s Ingress Controller实操指南
nginx·架构·kubernetes
冗量7 小时前
Kubernetes (K8s) 基础知识、部署与运维指南
运维·容器·kubernetes
青衫客367 小时前
从 TLS 到 Kubernetes PKI:一条证书链如何支撑整个集群安全(问题合集)
容器·kubernetes·k8s·tls
塔克拉玛攻城狮1 天前
最新!银河麒麟v11 kubeadm部署k8s v1.35.0高可用集群
kubernetes·银河麒麟
王锋(oxwangfeng)1 天前
Apache Flink 在 Kubernetes 上的高效部署与优化实践
flink·kubernetes·apache