K8S入门04-重编译kubeadm并更新证书

1、查看证书信息

        默认安装后的集群,查看证书信息默认是1年,超过时间后服务会不可用,可以通过重新编译kubeadm二进制文件并替换。

kubeadm certs check-expiration

        查看默认安装的kubeadm版本,通过获取到的信息使用相同的环境。

kubeadm version
#显示信息如下:
kubeadm version: &version.Info
{
  Major:"1", Minor:"28", 
  GitVersion:"v1.28.15", 	#版本号
  GitCommit:"841856557ef0f6a399096c42635d114d6f2cf7f4", 
  GitTreeState:"clean", 
  BuildDate:"2024-10-22T20:33:16Z", 	#编译的日期
  GoVersion:"go1.22.8",	#go语言使用的版本 
  Compiler:"gc", 
  Platform:"linux/amd64"
}

2、下载源码

        可以git工具或者网页下载,在浏览器打开网页(https://github.com/kubernetes/kubernetes/tags),选择对应的版本。或使用git方式如下:

#克隆代码
git clone https://github.com/kubernetes/kubernetes.git
#选择 branch
cd kubernetes
git checkout -b remotes/origin/release-1.28 v1.28.15

3、编译环境

yum install -y make
# 使用1.22.8版本的原因参考默认安装的kubeamd的版本信息。
wget https://dl.google.com/go/go1.22.8.linux-amd64.tar.gz
mkdir -p /opt/svr/
tar -xzf go1.22.8.linux-amd64.tar.gz -C /opt/svr/
echo "export PATH=\$PATH:/opt/svr/go/bin" >> ~/.bashrc
source ~/.bashrc
go version

4、修改代码

cd kubernetes-1.28.15
vi cmd/kubeadm/app/constants/constants.go
#修改以下内容
CertificateValidity = time.Hour * 24 * 365 * 100 // 设置为100年

vi staging/src/k8s.io/client-go/util/cert/cert.go
#修改以下内容
NotAfter: now.Add(duration365d * 100).UTC(), // 设置为100年

#查看修改是否成功
cat ./staging/src/k8s.io/client-go/util/cert/cert.go | grep NotAfter
cat ./cmd/kubeadm/app/constants/constants.go | grep CertificateValidity

5、系统编译

make WHAT=cmd/kubeadm GOFLAGS=-v
cd _output/bin
# 验证版本
./kubeadm version

6、更新证书

#替换程序
mv /usr/bin/kubeadm /usr/bin/kubeadm_bak
cp ./_output/bin/kubeadm /usr/bin/kubeadm
chmod +x /usr/bin/kubeadm
#替换证书
kubeadm certs renew all
#查看证书
kubeadm certs check-expiration

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值