K8S的接口apiserver服务无法访问集群
在生产上,尤其部署完成后因为某些问题,需要将节点隔离,或者暂时更换新节点,或者由于做了RBAC后调整了安全端口或者非安全端口的使用导致出现了以下问题
本次是因为做了某些改动后
当集群输入命令
kubectl get node时
会报错
然后节点上的pod重启会出现以下错误
针对这样的问题,首先可以想到的是查看接口也是唯一入口api的配置(这里是做了RBAC的)
1. 看一下API配置文件安全端口和非安全端口的配置是否正确,是否有改动
2. 看一下RBAC的配置文件,看看集群master的ip或者vip地址加开通的安全或者非安全端口是否和API的配置相同,详细是怎么配置的–安全默认端口是6443,非安全默认端口是8080,如果你自己设置了安全或者非安全端口,那么就怎么设置怎么来,我这里使用的6443
3. 可以尝试重启一下服务比如:kube-apiserver、kube-scheduler、kube-controller-manager //应该没有效果
4. 尝试性的kubectl get cs看一下系统组件状态,也发现是正常的
其他的问题貌似不沾边,或者我没有想到,能和RBAC在沾边的了,其实就是命令通过apiserver进不到进群里,还是在接口和RBAC设置上的问题,在就是角色给定的权限有问题
但是很不幸,所有的设置都是之前设置好的,也没有发现配置上存在问题,突然想到另一种方法
首先curl -v -k 集群ip加443端口发现是不通的
然后看一下api的配置文件发现
非安全端口是0也就是8080,安全端口是1180
看集群的节点端口竟然还是1181
显然是不对的
针对这种情况
删除现有的endpoint: kubectl delete ep kubernetes
删除完成后,集群ep信息正常,发现之前的问题解决了