Kubectl连接问题

时间:2019-02-09 16:56:15

标签: kubernetes kubectl

我使用systemd服务安装了第一个ectd,kubeapiserver和kubelet。服务运行正常,正在侦听所有必需的端口。

当我运行kubectl cluster-info时,我得到下面的输出

Kubernetes master is running at http://localhost:8080

当我运行kubectl时,获取componentstatuses,然后得到以下输出结果

etcd-0               Healthy     {"health": "true"}

但是运行kubectl获取节点,我得到以下错误

Error from server (ServerTimeout): the server cannot complete the requested operation at this time, try again later (get nodes)

有人可以帮我吗?

3 个答案:

答案 0 :(得分:8)

对于消息:

:~# k get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS      MESSAGE                                                                                       ERROR
controller-manager   Unhealthy   Get "http://127.0.0.1:10252/healthz": dial tcp 127.0.0.1:10252: connect: connection refused   
scheduler            Unhealthy   Get "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: connect: connection refused   
etcd-0               Healthy     {"health":"true"} 
--------

在所有master节点上修改以下文件:

$ sudo vim /etc/kubernetes/manifests/kube-scheduler.yaml

注释或删除该行:

- --port=0

in (spec->containers->command->kube-scheduler)

$ sudo vim /etc/kubernetes/manifests/kube-controller-manager.yaml

注释或删除该行:

- --port=0

in (spec->containers->command->kube-controller-manager)

然后重启kubelet服务:

$ sudo systemctl restart kubelet.service

答案 1 :(得分:0)

您缺少的kubeconfig文件。 kubectl在此位置$HOME/.kube/config

中查找配置文件

安装的一部分,您可以在主节点上复制这样的配置文件。

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

答案 2 :(得分:0)

控制器管理器和调度程序的状态是什么。运行以下命令时,您是否看到它们被列为“健康”?

kubectl get cs