k8s-更改证书时间
一 查看证书有效时间
如果用kubeadm安装的k8s,则证书放在/etc/kubernetes/pki 这个目录下,
然后查看证书时间,发现默认时间是一年
1 [root@k8s-master01 pki]# openssl x509 -in apiserver.crt -text -noout | grep Not
2 Not Before: Mar 19 17:36:19 2020 GMT
3 Not After : Mar 19 17:36:19 2021 GMT
1.1 go环境部署
wget https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz
tar -zxvf go1.12.1.linux-amd64.tar.gz -C /usr/local
vi /etc/profile
export PATH=$PATH:/usr/local/go/bin
source /etc/profile
1.2 下载源码
cd /data && git clone https://github.com/kubernetes/kubernetes.git
git checkout -b remotes/origin/release-1.15.1 v1.15.1
#因为我们安装的是1.15的版本
1.3 修改 Kubeadm 源码包更新证书策略
vim staging/src/k8s.io/client-go/util/cert/cert.go # kubeadm 1.14 版本之前
vim cmd/kubeadm/app/util/pkiutil/pki_helpers.go # kubeadm 1.14 至今
const duration365d = time.Hour * 24 * 365
NotAfter: time.Now().Add(duration365d).UTC(),
make WHAT=cmd/kubeadm GOFLAGS=-v #编译
cp _output/bin/kubeadm /root/kubeadm-new #拷贝
1.4更新kubeadm
# 将 kubeadm 进行替换
cp /usr/bin/kubeadm /usr/bin/kubeadm.old
cp /root/kubeadm-new /usr/bin/kubeadm
chmod a+x /usr/bin/kubeadm
1.5 更新各节点证书至 Master 节点
cp -r /etc/kubernetes/pki /etc/kubernetes/pki.old
cd /etc/kubernetes/pki
# 更新
kubeadm alpha certs renew all --config=/root/kubeadm-config.yaml
#查看证书时间
openssl x509 -in apiserver.crt -text -noout | grep Not
更新:
kubeadm alpha certs renew all --config=/root/kubeadm-config.yaml

然后再次查看证书时间,发现有效时间变成10年了

如果你有多个master节点,用脚本更新即可
scp -r /root/kubeadm-config.yaml root@192.168.1.211:/root/
scp -r /usr/bin/kubeadm root@192.168.1.211:/usr/bin
然后去1.211这台机器上面执行下面的命令去更新证书即可
kubeadm alpha certs renew all --config=/root/kubeadm-config.yaml