问题描述
在Kubernetes Cluster中,在集群初时化时创建的证书壹年到期。到期之后,集群的各个组件之间将无法访问。
环境概述
属性 | 信息 |
---|---|
系统环境 | CentOS Linux release 7.4.1708 (Core) |
软件版本 | Kubernetes v1.12.1 |
解决办法
通过延长证书期限即可解决问题…………无需重新生成证书。
第一步、备份配置文件(主机节点)
运维工作千万条,数据备份第一条:
#!/bin/sh cp -drv /etc/kubernetes /etc/kubernetes.backup
第二步、延长证书期限(主机节点)
#!/bin/sh kubeadm -v 10 alpha phase certs renew apiserver --config /etc/kubernetes/kubeadm-config.yaml kubeadm -v 10 alpha phase certs renew apiserver-etcd-client --config /etc/kubernetes/kubeadm-config.yaml kubeadm -v 10 alpha phase certs renew apiserver-kubelet-client --config /etc/kubernetes/kubeadm-config.yaml kubeadm -v 10 alpha phase certs renew etcd-healthcheck-client --config /etc/kubernetes/kubeadm-config.yaml kubeadm -v 10 alpha phase certs renew etcd-peer --config /etc/kubernetes/kubeadm-config.yaml kubeadm -v 10 alpha phase certs renew etcd-server --config /etc/kubernetes/kubeadm-config.yaml kubeadm -v 10 alpha phase certs renew front-proxy-client --config /etc/kubernetes/kubeadm-config.yaml # 实际上可以执行kubeadm -v 10 alpha phase certs renew all命令 # 但是在CentOS 7.4 and kubeadm 1.12.1下,上述命令产生栈溢出错误…………
第三步、更新配置文件(主机节点)
#!/bin/sh # 移除旧配置 rm -rf /etc/kubernetes/admin.conf rm -rf /etc/kubernetes/kubelet.conf rm -rf /etc/kubernetes/controller-manager.conf rm -rf /etc/kubernetes/scheduler.conf # 生成新配置(而实际上是更新客户端证书) kubeadm alpha phase kubeconfig all
第四步、重启服务(所有节点)
#!/bin/sh systemctl restart kubelet.service
注意事项
本文由「Part of the existing bootstrap client certificate is expired」演变而来。通过摸索与实验,最终找到解决方案。
相关链接
Certificate Management with kubeadm