K8S之可用年限修改

K8S之可用年限修改

1. 查看证书有效期:

[root@master1 kubernetes]# kubeadm alpha certs check-expiration

K8S之可用年限修改_第1张图片

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

2. go环境部署:

//下载go二进制包
wget https://studygolang.com/dl/golang/go1.20.5.linux-amd64.tar.gz
//解压:
tar -C /usr/local -xzf go1.20.5.linux-amd64.tar.gz
//配置环境变量:
vim /etc/profile
...
添加以下内容:
export PATH=$PATH:/usr/local/go/bin
//加载/etc/profile文件中定义的环境变量和配置
source /etc/profile
//查看go的版本号
go version

go version go1.20.5 linux/amd64

---可以看到版本号说明go环境已经部署完成。

3. 下载源码

//创建源码存放目录
mkdir /data/
//查看当前集群版本:
kubeadm version

kubeadm version: &version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.4", GitCommit:"e87da0bd6e03ec3fea7933c4b5263d151aafd07c", GitTreeState:"clean", BuildDate:"2021-02-18T16:09:38Z", GoVersion:"go1.15.8", Compiler:"gc", Platform:"linux/amd64"}
---可以看的出来版本为v1.20.4
//下载v1.20.4版本的源码
cd  /data/  && wget https://archive.fgit.ml/kubernetes/kubernetes/archive/refs/tags/v1.20.4.zip

//解压源码:
unzip  kubernetes-1.20.4.zip

4. 修改Kubeadm源码包

[root@master1 ~]# cd /data/kubernetes-1.20.4/
[root@master1 kubernetes-1.20.4]# vim cmd/kubeadm/app/util/pkiutil/pki_helpers.go  # kubeadm1.14版本之后修改这个文件
# 注意:vim staging/src/k8s.io/client-go/util/cert/cert.go  #kubeadm1.14版本之前
添加如下:
const effectyear = time.Hour * 24 * 365 * 100   #time.Hour * 24 * 365 * 100表示100年的时间间隔。这行代码将100年的时间间隔赋值给effectyear变量
\\把NotAfter:     time.Now().Add(kubeadmconstants.CertificateValidity).UTC(),改为如下内容:
NotAfter:     time.Now().Add(effectyear).UTC(),   #在给定的代码中,time.Now().Add(effectyear).UTC()表示当前时间增加了100年后的时间,并将其转换为UTC时间。这通常用于设置证书的过期时间,即在当前时间的基础上增加一定的时间间隔来计算证书的有效期限。

K8S之可用年限修改_第2张图片

5. 构建kubeadm,更新证书:

[root@master1 ~]# cd /data/kubernetes-1.20.4/

make WHAT=cmd/kubeadm GOFLAGS=-v     #在执行Makefile中定义的任务cmd/kubeadm时,通过GOFLAGS参数将-v标志传递给Go编译器

//备份原证书:
cp -arp  /etc/kubernetes/pki/ /etc/kubernetes/pki_`date +%F`

//备份kubeadm
mv /usr/bin/kubeadm /usr/bin/kubeadm_`date +%F`

//把新的kubeadm移到/usr/bin
cp -r  _output/bin/kubeadm /usr/bin/

//更新Kubernetes集群中的所有证书
[root@master1 kubernetes-1.20.4]# kubeadm alpha certs renew all

  • kubeadm: 是Kubernetes集群的命令行工具。
  • alpha: 是一个实验性的功能。
  • certs: 是一个子命令,用于管理Kubernetes集群中的证书。
  • renew: 是certs子命令的一个选项,表示要更新证书。
  • all: 是renew选项的参数,表示要更新所有证书。

6. 查看证书的可用年限是否变为100年

[root@master1 ~]# kubeadm alpha certs check-expiration

K8S之可用年限修改_第3张图片

你可能感兴趣的:(kubernetes,容器,云原生)