《Kubernets证书篇:kubernetes1.24.17证书修改时间限制》

一、背景

Kubernetes 默认的证书有效期只有1年,因此需要每年手动更新一次节点上面的证书,特别麻烦而且更新过程中可能会出现问题,因此我们要对 Kubernetes 的 SSL 证书有效期进行修改,这里将证书的时间限制修改为100年。

环境信息如下:

操作系统 内核版本 K8S版本
Ubuntu 20.04.5 LTS 5.15.0-82-generic v1.24.17

二、查看证书有效期

kubeadm certs check-expiration

如下图所示:
在这里插入图片描述

由上图可见,除了ca根证书,其他证书有效期都是1年。


三、go环境部署

由下图可见,需要安装go1.20.7版本。

在这里插入图片描述

操作步骤如下:

# 1、安装go语言
wget https://studygolang.com/dl/golang/go1.20.7.linux-amd64.tar.gz
tar axf go1.20.7.linux-amd64.tar.gz -C /usr/local/

# 2、配置环境变量
echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile

# 3、环境变量生效命令
source /etc/profile

四、下载K8S源码

mkdir -p /data/k8s-src && cd /data/k8s-src
wget https://github.com/kubernetes/kubernetes/archive/refs/tags/v1.24.17.zip
unzip v1.24.17.zip

五、修改Kubeadm源码包更新证书策略

1、安装依赖

apt install rsync -y
apt install make -y
apt install make-guile -y

2、修改 NewSelfSignedCACert 方法的 NotAfter 为(100年): now.Add(duration365d * 100).UTC()

cd kubernetes-1.24.17
vim ./staging/src/k8s.io/client-go/util/cert/cert.go
                NotAfter:              now.Add(duration365d * 100).UTC(),

如下图所示:
在这里插入图片描述

3、修改 CertificateValidity 为: time.Hour * 24 * 365 * 99

 vim ./cmd/kubeadm/app/constants/constants.go
         CertificateValidity = time.Hour * 24 * 365 * 100

如下图所示:
:

4、执行编译

make clean && KUBE_BUILD_PLATFORMS=linux/amd64 make all DBG=1 WHAT=cmd/kubeadm

如下图所示:
在这里插入图片描述

5、原证书备份

cd kubernetes-1.24.17
cp -arp /etc/kubernetes /etc/kubernetes_`date +%F`
mv /usr/bin/kubeadm /usr/bin/kubeadm_`date +%F`
cp -a _output/bin/kubeadm /usr/bin

6、证书更新

kubeadm certs renew all 
kubeadm certs check-expiration

如下图所示:
在这里插入图片描述


总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:企业级K8s集群运维实战

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值