kubeadm 部署的 kubernetes 集群,默认的证书有效时间是1年,需要每年手工更新。
重新编译kubeadm
1.1 准备
1 | # 下载对应的kubernetes源代码,这里采用 "v1.14.1" 版本 |
1.2 修改源代码-cert.go
文件:staging/src/k8s.io/client-go/util/cert/cert.go
NewSelfSignedCACert 方法,签发以下证书,且默认为10年有效期:
front-proxy-ca.crt
front-proxy-client.crt
ca.crt
etcd/ca.crt
etcd/peer.crt
1 | # 1.14.0版本开始,此文件默认10年 |
1.3 修改源代码-pki_helpers.go
,以下证书由 NewSignedCert 方法签发,但签发的证书默认只有一年有效期:
1 | apiserver.crt |
1 | // NewSignedCert creates a signed certificate using the given CA certificate and key |
1.4 编译
1 | # kubeadm |
1.5 更新kubeadm
1 | # 将kubeadm 文件拷贝替换系统中原有kubeadm |
更新证书
2.1 更新 kube-master (任一)节点证书
1.13.x 版本(含)之后的处理方式;
不更新 kubeadm 的情况下,也可手动更新证书,但更新的证书有效期默认仍是一年。
1 | # 备份 |
2.2 (optional) HA集群其余mater节点证书更新
在已更新证书的master节点运行脚本,将更新的证书同步到其余master节点
1 | # 如果可以,请提前在被同步master节点做备份 |
转载:https://www.cnblogs.com/netonline/p/11207765.html
参考:
https://v1-14.docs.kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-alpha/#cmd-certs-renew
http://team.jiunile.com/blog/2019/05/k8s-kubeadm14-ca-upgrade.html