今天博主登陆了好久没登陆的自己在家搭建的k8s集群,突然发现master节点执行以下命令产生了报错,以为是api-server没起来,重启了好几次没起来,一通百度还是没有解决问题。

kubectl get node
# 报错内容提示无法连接本地6443端口

突然想到了证书的问题,一查,已经过期两个多月了 😦

# 查看各个组件证书过期时间
kubeadm certs check-expiration
CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
admin.conf                 Dec 20, 2022 15:21 UTC   364d                                    no      
apiserver                  Dec 20, 2022 15:21 UTC   364d            ca                      no      
apiserver-etcd-client      Dec 20, 2022 15:21 UTC   364d            etcd-ca                 no      
apiserver-kubelet-client   Dec 20, 2022 15:21 UTC   364d            ca                      no      
controller-manager.conf    Dec 20, 2022 15:21 UTC   364d                                    no      
etcd-healthcheck-client    Dec 20, 2022 15:21 UTC   364d            etcd-ca                 no      
etcd-peer                  Dec 20, 2022 15:21 UTC   364d            etcd-ca                 no      
etcd-server                Dec 20, 2022 15:21 UTC   364d            etcd-ca                 no      
front-proxy-client         Dec 20, 2022 15:21 UTC   364d            front-proxy-ca          no      
scheduler.conf             Dec 20, 2022 15:21 UTC   364d                                    no      

CERTIFICATE AUTHORITY   EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
ca                      Nov 10, 2030 10:01 UTC   8y              no      
etcd-ca                 Nov 10, 2030 10:01 UTC   8y              no      
front-proxy-ca          Nov 10, 2030 10:01 UTC   8y              no

只要是通过kubeadm安装的k8s集群,可以通过以下命令来进行证书的续签

# 续签证书
kubeadm certs renew all

随后执行以下命令,将更新配置文件,就可以正常执行kubectl命令了。

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐