项目场景:
之前使用工具一键部署K8S集群,并在集群部署一些服务。某天突然发现服务无法访问。
问题描述
1、执行kubectl get node
节点状态均为NotReady
2、执行kubectl logs pod_name -n namespace
时出现报错Internal error occurred: Authorization error (user=kubernetes,verb=get,resource=nodes,subresource=proxy)
3、执行kubectl status kubectl
出现报错Unable to register node with API server” err=“Unauthorized”
4、执行systemctl status kube-apiserver
出现报错Unable to authenticate the request” err=“[x509: certificate signed by unknown authority (possibly because of “crypto/rsa: verification error” while trying to verify candidate authority certificate “kubernetes”)
原因分析:
kube-apiserve
和kubelet
之间的证书过期,或者kubelet bootstrap
引导出错,使得两个之间未能正常建立连接。
解决方案:
1、登录master和node所在主机,删除kubelet
证书(如果不放心,删除前可先做备份)
$ rm /etc/kubernetes/ssl/kubelet.*
2、登录master和node所在主机,重启kubelet
。
3、重启后,节点和master之间恢复通讯,服务也可以正常访问了。