一.通过编译kubeadm修改证书有效期

1.下载kubernetes源码
注: 切换到本地kubeadm版本

  1. [root@gaoshuang kubernetes]# git clone https://github.com/kubernetes/kubernetes.git

2.修改关键部分代码的证书生产有效期

  1. [root@gaoshuang kubernetes]# vim ./staging/src/k8s.io/client-go/util/cert/cert.go

修改NotAfter字段,默认为10年改为100年

  1. 66 NotAfter: now.Add(duration365d * 10).UTC(),

image.png
修改CertificateValidity字段

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

image.png
3.然后安装go环境

  1. wget https://dl.google.com/go/go1.13.4.src.tar.gz
  2. tar zxf go1.13.4.src.tar.gz -C /mnt
  3. export PATH=$PATH:/mnt/go/bin

4.编译

  1. [root@gaoshuang kubernetes]# pwd
  2. /mnt/kubernetes
  3. [root@gaoshuang kubernetes]# make all WHAT=cmd/kubeadm GOFLAGS=-v

6.复制编译成功的kubeadm 文件

  1. cp /mnt/kubernetes/_output/local/bin/linux/amd64/kubeadm //usr/bin/

7.检查证书时间

  1. kubeadm alpha certs check-expiration

8.续约

  1. kubeadm alpha certs renew all