一年前搭建的k8s集群,突然不能够正常访问,出现502错误,首先怀疑容器没起来,先对问题进行排查,排查响应的容器有没有正常启动,状态一切正常,访问容器地址也可以正常访问,于是访问node port地址,发现无法正常访问,确定问题出现在svc中。
由于其他的应用、系统也无法提供正常的服务,应该是k8s的问题,非单个应用的原因。查看服务状态,kubectl describe svc xxx,endpoint相关地址为空,观察系统日志,出现unauthorized字样,怀疑证书到期导致,下面进行证书的排查和处理,最后更新完证书后,提供服务正常。
一、更新master节点证书
1、查看服务状态
systemctl status kube-apiserver –l
查看配置的service位置和状态,服务中有请求失败,或者unauthorized字样,说明有可能是证书的问题。 /etc/systemd/system/kube-apiserver.service这个是本集群的master节点apiserver的文件位置。我们看看他的配置情况
关键内容如下:
--kubelet-client-certificate=/etc/kubernetes/ssl/kubernetes.pem \
--kubelet-client-key=/etc/kubernetes/ssl/kubernetes-key.pem \
--basic-auth-file=/etc/kubernetes/ssl/basic-auth.csv \
--token-auth-file=/etc/kubernetes/ssl/token.csv \
--tls-cert-file=/etc/kubernetes/ssl/kubernetes.pem \
--tls-private-key-file=/etc/kubernet