Kubernetes Cluster- 使用 kubectl 时工作节点错误

Kubernetes Cluster- Worker node error while using kubectl

我已经创建了一个包含 2 个节点的 Kubernetes 集群,一个主节点和一个工作节点(2 个不同的虚拟机)。

工作节点已经成功加入集群,所以当我运行命令时: kubectl get nodes 在我的主节点中,集群中似乎存在 2 个节点!

但是,当我从工作节点终端 运行 命令 kubectl apply -f https://k8s.io/examples/controllers/nginx-deployment.yaml 时,为了在工作节点中创建部署,出现以下错误:

The connection to the server localhost:8080 was refused. - did you specify the right host or port?

有什么帮助吗?

最简单的方法是从通常在这里找到的主节点复制配置:/etc/kubernetes/admin.conf,到您想要配置 kubectl 的任何节点(即使在主节点上)。要复制的位置是:$HOME/.kube/config

此外,您可以通过指定节点选择器或标签从主节点执行此命令。

Assign POD node

您的 kubeconfig 文件似乎有问题,因为通常 localhost:8080 是在没有此文件的情况下连接的默认服务器。通常,Kubernetes 使用这个 file 来存储集群身份验证信息和 kubectl 在 运行 命令时引用的上下文列表 - 这就是为什么 kubectl 没有这个就无法正常工作文件。

要检查 kubeconfig 文件是否存在,请输入此命令:kubectl config view

或者只检查 $HOME/.kube 目录中是否存在名为 config 的文件,这是 kubeconfig 文件的默认位置。

如果不存在,您需要将配置文件复制到您的节点,例如:

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

也可以用更困难的方式生成配置文件 - 而不是复制 - 如 here 所述。