kubernetes证书时限解决方案

kubernetes证书问题

kubernetes集群默认证书期限为一年,针对此问题列出下列三种情况及解决办法

一、当正在使用的kubernetes集群证书过期时,此解决办法续期为1年

#查看证书有效期
kubeadm certs check-expiration
#对原有证书进行备份

cp -r /etc/kubernetes /etc/kubernetes_bak

#更新证书
kubeadm config print init-defaults > /tmp/kubeadm-config.yaml
kubeadm certs renew all --config=kubeadm.yaml 
#重启容器
docker ps |grep -E 'k8s_kube-apiserver|k8s_kube-controller-manager|k8s_kube-scheduler|k8s_etcd_etcd' | awk -F ' ' '{print $1}' |xargs docker restart
#再次查看证书有效期
kubeadm certs check-expiration

二、当正在使用的kubernetes集群证书过期时,此解决办法续期可以自定义

#事先安装go语言环境,并备份原有证书

yum -y install go
cp -r /etc/kubernetes /etc/kubernetes_bak
#下载k8s源码
git clone -b (版本例:v1.23.3) https://github.com/kubernetes/kubernetes.git
#
cd kubernetes
#修改 ./staging/src/k8s.io/client-go/util/cert/cert.go

NotAfter:              now.Add(duration365d * 100).UTC(),
#修改 ./cmd/kubeadm/app/constants/constants.go

CertificateValidity = time.Hour * 24 * 3650

#编译
make WHAT=cmd/kubeadm GOFLAGS=-v

#生成新证书,并更新
mv /usr/bin/kubeadm /usr/bin/kubeadm_bak
cp -a _output/bin/kubeadm  /usr/bin/kubeadm
chmod 755 /usr/bin/kubeadm
cp -r /etc/kubernetes/pki /etc/kubernetes/pki.backup​
cd /etc/kubernetes/pki 
kubeadm alpha certs renew all
#再次查看证书有效期
kubeadm alpha certs check-expiration

三、使用kubekey进行证书更新,此方式可配合第二种方式,先自行编译kubeadm,在进行更新

#检测证书有效期
./kk certs check-expiration -f config-sample.yaml
#生成新证书
./kk certs renew -f config-sample.yaml

你可能感兴趣的:(kubernetes,docker,容器)