k8s二进制安装时,使用kubectl get nodes 时报No resources found,我的/etc/docker/daemon.json里配了 "exec-opts": ["native.cgroupdriver=systemd"],还是不行
如果使用 Kubectl 命令 "kubectl get nodes" 执行时,出现 "No resources found" 的错误消息,则很有可能是因为 Kubectl 工具未能连接 Kubernetes 集群进行操作。
以下是解决该问题的几种方法:
kubectl version
通过错误信息可以排除 kubectl 版本不兼容等问题。
如果没有安装 kubectl,请参考官方文档 https://kubernetes.io/docs/tasks/tools/install-kubectl/。
kubectl config view
通过错误信息可以排除集群认证信息不正确等问题。
kubectl cluster-info
通过错误信息可以排除无法连接到 Kubernetes 集群等问题。
kubectl get nodes
如果输出结果为空,则可以重新部署一些 Kubernetes 节点实例。
可以使用以下命令创建一个 Nginx web 服务器的 deployment 资源:
kubectl run nginx --image=nginx --port=80
然后,使用以下命令检查 deployment 是否正常运行:
kubectl get deployments
如果 deployment 运行良好,则此时应该可以使用 kubectl get nodes 命令来获取到 Kubernetes 集群的节点信息。
如果以上方法仍无法解决问题,建议检查 Kubernetes 集群各组件是否正常运行,例如 kubelet、kube-apiserver、etcd、kube-proxy 等。
看起来可能是cgroup driver配置不正确,可以检查一下kubelet的cgroup driver是否与daemon.json里配置的一致。
也可以运行一下 systemctl status kubelet查看一下状态。