【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的知识分享,请前往博客主页。编写过程中,难免出现差错,敬请指出

相关推荐
景天科技苑1 小时前
【云原生开发】K8S多集群资源管理平台架构设计
云原生·容器·kubernetes·k8s·云原生开发·k8s管理系统
wclass-zhengge1 小时前
K8S篇(基本介绍)
云原生·容器·kubernetes
颜淡慕潇2 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
昌sit!10 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes
A ?Charis12 小时前
Gitlab-runner running on Kubernetes - hostAliases
容器·kubernetes·gitlab
北漂IT民工_程序员_ZG13 小时前
k8s集群安装(minikube)
云原生·容器·kubernetes
2301_8061313620 小时前
Kubernetes的基本构建块和最小可调度单元pod-0
云原生·容器·kubernetes
SilentCodeY20 小时前
containerd配置私有仓库registry
容器·kubernetes·containerd·镜像·crictl
binqian1 天前
【k8s】ClusterIP能http访问,但是不能ping 的原因
http·容器·kubernetes
探索云原生1 天前
GPU 环境搭建指南:如何在裸机、Docker、K8s 等环境中使用 GPU
ai·云原生·kubernetes·go·gpu