K8S集群证书
K8S集群证书都放在/etc/kubernetes/pki/里,默认1年有效期;在自动更新K8S版本时会自动更新有效期,也可以手动更改。
修改K8S集群证书时间,需要配置GO语言环境。
cd /etc/kubernetes/pki/;ll #查看K8S所有的证书文件; openssl x509 -in apiserver.crt -text -noout #以文本形式输出证书信息,如:证书时间;
##配置go语言环境 wget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz #进入go语言中文社区下载go1.12.9.linux-amd64.tar.gz tar -xzvf go1.12.9.linux-amd64.tar.gz -C /usr/local/ echo "export PATH=$PATH:/usr/local/go/bin">>/etc/profile source /etc/profile go version
kubectl version #查看K8S版本并下载其源码; cd;git clone https://github.com/kubernetes/kubernetes.git #下载最新版本K8S源码; cd kubernetes/;git checkout -b remote/origin/release-1.15.1 v1.15.1 #切换版本至指定版本1.15.1;
cat cmd/kubeadm/app/util/pkiutil/pki_helpers.go cp cmd/kubeadm/app/util/pkiutil/pki_helpers.go{,.bak}
vim cmd/kubeadm/app/util/pkiutil/pki_helpers.go ~~~~修改certTmpl~~~~~~~ const duration3650d = time.Hour * 24 * 365 * 10 #定义常量10年; ... NotAfter: time.Now().Add(duration3650d).UTC(), #添加证书过期时间为10年; ~~~~修改certTmpl~~~~~~~
make WHAT=cmd/kubeadm GOFLAGS=-v #重新编译kubeadm
##更新kubeadm cp _output/bin/kubeadm /root/kubeadm-new cp /usr/bin/kubeadm /usr/bin/kubeadm.bak cp -f /root/kubeadm-new /usr/bin/kubeadm chmod a+x /usr/bin/kubeadm ##更新各节点证书指master节点 cd /etc/kubernetes/pki kubeadm alpha certs renew all --config=/root/install-k8s/core/kubeadm-config.yaml openssl x509 -in apiserver.crt -text -noout |grep Not