节点成功加入主节点,但在 kubectl get nodes "The connection to the server localhost:8080 was refused" 时出错

node joined successfully to master node, but got error when kubectl get nodes "The connection to the server localhost:8080 was refused"

我正在使用两个操作系统为 Centos 8 的虚拟机

主节点:

节点 1:

node-1加入成功,得到结果运行"kubectl get nodes"。 但是 运行ning kubectl get nodes 得到了回应 "The connection to the server localhost:8080 was refused - did you specify the right host or port?"

我已经使用命令 kubectl config view 检查了我的配置,我得到了一个结果:

apiVersion: v1
clusters: null
contexts: null
current-context: ""
kind: Config
preferences: {}
users: null

我已经 ls /etc/kubernetes/ 但它只显示 kubelet.conf

据我所知,您在成功 kubeadm join 后尝试在工作节点上使用 kubectl。

kubeadm init 正在生成用于连接到集群的 kubeadmin credentials/config 文件,您期望 kubeadm join 也会创建类似的凭据,因此您可以 运行来自工作节点的 kubectl 命令。 kubeadm join 命令未在工作节点上放置任何管理员凭据(出于安全原因,应用程序处于 运行ning 状态)。

如果你想要它,你需要手动将它从 master 复制到 worker(或创建一个新的)。

根据写作,一旦 kubeadm init 完成,主节点就会初始化并设置组件。 运行 kubeadm join 在工作节点上会将此节点加入到先前的主节点。

如果您在 master 上 运行 kubectl get nodes 并遇到上述问题,那么在这一步之后,这是因为 kubectl 缺少集群配置。 默认配置为 /etc/kubernetes/admin.conf,可以设置为环境变量,key 为 KUBECONFIG。 或者最简单的方法是将此文件复制到 .kube 文件夹中。

cp -f /etc/kubernetes/admin.conf ~/.kube/config