就是关于K8S集群架构内部的证书问题,我们都知道使用kubeadm来初始化集群并且已容器交付的方式来搭建K8S是非常简单的。但是这里会存在一个大坑就是集群内部的证书只有一年有效期,一旦到期集群就挂了。需要手动续期并且可能会对正在运行的服务造成影响。

那么有没有方法可以避开二进制安装的繁琐,又不需要修改kubeadm源码来使用证书的有效期做自定义呢,肯定有,而且超简单。


 这里我们已生产环境来说场景是刚刚使用kubeadm部署好了一般的K8S集群系统(一台MASTER,N台NODE)

k8s中ingress证书未生效 k8s证书配置_kubernetes

 从上图可以看到我的MASTER的kubeadm初始化已经成功,并且加入了两个node节点。另外证书有效期也是只有一年到2022年4月13日,到期就会挂掉。这里就好比喻是我们在生产环境中

刚刚搭建好的集群。里面没有跑任何的服务和容器。让我从这里开始自定义集群的证书有效期吧!

第一步:修改系统时间

k8s中ingress证书未生效 k8s证书配置_运维_02

由于系统是新的啥也没有随便修改时间没有任何风险,现在就修改时间为:2031年4月21日 。

k8s中ingress证书未生效 k8s证书配置_linux_03

然后我们在看看集群的情况,死翘翘了么。

第二步:手动续签证书

   在目前的这个时间段2031年手动续签证书,命令:kubeadm certs renew all

k8s中ingress证书未生效 k8s证书配置_linux_04

可以看到证书的年限已经变成2032年,你自己定多少年就多少年。但是到这一步都不能确定集群是不是正常,我们需要重新校正北京时间

第四步:校正时间

这个不用多说了,使用ntpdate ntp.aliyun.com 同步阿里云的时间即可,让我们看看集群的情况吧

 

k8s中ingress证书未生效 k8s证书配置_k8s中ingress证书未生效_05

 

圆满成功,这个时间已经解决了证书的问题,在去部署其他服务吧!!

这个方法纯粹是我个人想出来,目前来说就二进制安装,修改kubeadm源码,以外的第三种方法,也是最最最简单的方法了。但是缺点是只能使用与标准集群。