首页 > 其他分享 >k8s集群证书过期怎么办

k8s集群证书过期怎么办

时间:2024-01-10 15:27:00浏览次数:31  
标签:证书 过期 master01 kubelet 集群 pem k8s root

记录一次集群更新证书过程,因为集群证书已经更新了,以下只记录操作过程了。
参考:https://blog.csdn.net/Harry_z666/article/details/128015175

1、集群情况

  1. 版本:v1.23.6
  2. 部署方式:kubeadm部署

由于使用kubeadm部署,证书有效期为一年,到期后证书失效。

2、master更新集群证书

# 1、master 查看集群过期时间
[root@k8s-master01 ~]# kubeadm certs check-expiration

# 2、查看master节点上的kubelet证书列表和过期时间
[root@k8s-master01 ~]# ls /var/lib/kubelet/pki/ -lh
total 16K
-rw------- 1 root root 2.8K Aug 15  2022 kubelet-client-2022-08-15-23-37-10.pem
-rw------- 1 root root 1.1K May 22  2023 kubelet-client-2023-05-22-21-22-17.pem
lrwxrwxrwx 1 root root   59 May 22  2023 kubelet-client-current.pem -> /var/lib/kubelet/pki/kubelet-client-2023-05-22-21-22-17.pem
-rw-r--r-- 1 root root 2.3K Aug 15  2022 kubelet.crt
-rw------- 1 root root 1.7K Aug 15  2022 kubelet.key

[root@k8s-master01 ~]# openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -text | grep Not
            Not Before: May 22 13:17:17 2023 GMT
            Not After : May 21 13:17:17 2024 GMT

# 3、备份配置文件和证书文件
[root@k8s-master01 ~]# mkdir /tmp/kubernets_backup/config -p
[root@k8s-master01 ~]# cp -r /etc/kubernetes/ /tmp/kubernets_backup/config/
[root@k8s-master01 ~]# mkdir /tmp/kubernets_backup/pem
[root@k8s-master01 ~]# cp -r /var/lib/kubelet/pki/ /tmp/kubernets_backup/pem/

# 4、更新集群证书
[root@k8s-master01 kubernets_backup]# kubeadm certs renew all

# 5、再次查看过期时间
[root@k8s-master01 ~]# kubeadm certs check-expiration
# 查看证书是否已更新
[root@k8s-master01 ~]# ls /etc/kubernetes/pki/ -lh

3、master更新配置文件

由于前面已经备份过了,直接删除当前配置文件后重新生成

# 1、删除配置文件
[root@k8s-master01 ~]# rm -f /etc/kubernetes/*.conf
# 2、生成新的配置文件
[root@k8s-master01 ~]# kubeadm init --kubernetes-version=v1.23.6 phase kubeconfig all

# 3、替换管理员kubeconfig配置文件
[root@k8s-master01 ~]# cp /etc/kubernetes/admin.conf ~/.kube/config
cp: overwrite ‘/root/.kube/config’? y
# 4、重启kube-scheduler
[root@k8s-master01 ~]# docker rm -f $(docker ps -a | grep scheduler | awk '{print $1}')

# 5、查看kube-scheduler状态
[root@k8s-master01 ~]# kubectl get pods -n kube-system |grep scheduler
kube-scheduler-k8s-master01                1/1     Running   12             512d

4、更新master上的kubelet证书

# 1、通过过程2.5,更新了k8s证书,是不会更新了kubelet.conf的证书的。需要重启kubelet重新生成。因为已经重新生成了kubelet.conf,所以需要重启kubelet。
[root@k8s-master01 ~]# systemctl restart kubelet.service

# 2、重启后查看证书签名请求
[root@k8s-master01 ~]# kubectl get csr

# 3、请求通过
[root@k8s-master01 ~]# kubectl certificate approve <NAME>

# 4、查看证书过期时间
[root@k8s-master01 ~]# openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -text | grep Not

5、更新node节点上的kubelet证书

# 1、查看node上的kubelet证书,主要查看kubelet-client-current.pem的时间戳,这里还是旧的证书
[root@k8s-node01 ~]# ls -lh /var/lib/kubelet/pki/

# 2、查看证书过期时间
[root@k8s-node01 ~]# openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -text | grep Not

# 3、在master节点生成node节点需要的配置文件
[root@k8s-master01 ~]# mkdir /tmp/kubernets_backup/worker -p
[root@k8s-master01 ~]# cd /tmp/kubernets_backup/worker/
[root@k8s-master01 worker]# kubeadm init --kubernetes-version=v1.23.6 phase kubeconfig kubelet --node-name k8s-node01 --kubeconfig-dir /tmp/kubernets_backup/worker/

# 4、备份node节点的配置文件
[root@k8s-node01 ~]# mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.bak

# 5、替换配置文件
[root@k8s-master01 worker]# scp kubelet.conf root@k8s-node01:/etc/kubernetes/

# 6、重启kubelet
[root@k8s-node01 ~]# systemctl restart kubelet.service

# 7、在master上进行证书认证
[root@k8s-master01 ~]# kubectl get csr
[root@k8s-master01 ~]# kubectl certificate approve <NAME>

标签:证书,过期,master01,kubelet,集群,pem,k8s,root
From: https://www.cnblogs.com/likaifei/p/17956524

相关文章

  • K8S系列一:概念入门
    K8S系列一:概念入门写在前面本文组织方式:K8S的架构、作用和目的。需要首先对K8S整体有所了解。K8S是什么?为什么是K8S?K8S怎么做?K8S的重要概念,即K8S的API对象。要学习和使用K8S必须知道和掌握的几个对象。Pod实例Volume数据卷Container容器Deployment和ReplicaS......
  • 10分钟看懂Docker和K8S
    10分钟看懂Docker和K8S2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。  <imgsrc="https://pic4.zhimg.com/v2-e6390d9358b05d82105fe391762346b3_b.jpg"data-caption=""data-size="normal"data-rawwidth="420"data-rawheight=&......
  • k8s主要概念大梳理!
    k8s已经成为了绝对热门的技术,一个上点规模的公司,如果不搞k8s,都不好意思出去见人。安装k8s要突破种种网络阻碍,但更大的阻碍还在后面...我发现,很多k8s的文章,根本不说人话,包括那要命的官网。要弄明白k8s的细节,需要知道k8s是个什么东西。它的主要功能,就是容器的调度--也就是把部署......
  • es for k8s
    deploy.yaml基于nfsapiVersion:v1kind:PersistentVolumemetadata:name:es-pv-datanamespace:testspec:capacity:storage:1GiaccessModes:-ReadWriteManypersistentVolumeReclaimPolicy:RetainstorageClassName:es-data-nfsnfs:......
  • nacos for k8s
    nacos-deploy.yaml基于nfs---apiVersion:v1kind:Servicemetadata:name:nacos-headlessnamespace:testlabels:app:nacos-headlessspec:type:ClusterIPports:-port:8848name:servertargetPort:8848-port:9848......
  • k8s集群搭建1.22.x (centos)
    版本1.22.xx版本兼容 集群搭建指导https://www.cnblogs.com/Sunzz/p/15184167.html  【1.18】https://blog.csdn.net/qq_34629877/article/details/120234616 【1.22】升级centos内核#导入公钥rpm--importhttps://www.elrepo.org/RPM-GPG-KEY-elrepo.org#安装......
  • redis for k8s
    deploy.yaml基于nfs的存储apiVersion:v1kind:ConfigMapmetadata:name:redis-cmnamespace:testdata:redis.conf:|+requirepass1314521protected-modenoport6379tcp-backlog511timeout0tcp-keepalive300daemonizeno......
  • 创建单机 PolarDB-X 集群
    https://doc.polardbx.com/quickstart/topics/quickstart-pxd-cluster.html#安装dockercurl-fsSLhttps://get.docker.com-oget-docker.shshget-docker.sh#配置普通用户访问dockersudogroupadddockersudogpasswd-a${USER}dockernewgrpdocker#安装pxdpip......
  • Elasticsearch分片大小设定和集群容量规划
    本文以Elasticsearch7.9.2为准。分片大小日志类:单个分片不超过50G搜索类:单个分片不超过20G先估算总数据量,再根据分片大小,确定分片数。容量规划容量规划时要考虑的因素:机器的软硬件配置单个文档的尺寸,文档总数,索引大小,分片个数,副本个数文档写入方式(如bulk的单次数......
  • 如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 2
    在Part1中,我们一起了解了什么是Prometheus和Grafana,以及使用这些工具的前提条件和优势。在本部分,将继续带您学习如何安装Helm以及如何使用PrometheusHelmCharts。 开始使用Helm和HelmChartArtifactHub为HelmChart提供了公共和私有资源库。我们将使用这些H......