如何解决kubernetes中工作节点上的连接拒绝错误
我正在kubernetes中建立一个2节点集群。 1个主节点和1个从节点。 设置主节点后,我在工作节点上执行了docker,kubeadm,kubelet,kubectl的安装步骤,然后运行join命令。在主节点上,我看到2个节点处于就绪状态(主节点和辅助节点),但是当我尝试在辅助节点上运行任何kubectl命令时,出现如下所示的拒绝连接错误。我没有看到任何admin.conf,也没有在.kube / config中设置任何内容。这些文件是否也需要位于工作程序节点上?如果可以的话,我该如何获得呢?如何解决以下错误?感谢您的帮助
root @ kubework:/ etc / kubernetes#kubectl获取节点 与服务器localhost:8080的连接被拒绝-您指定了正确的主机或端口吗?
root @ kubework:/ etc / kubernetes#kubectl集群信息
要进一步调试和诊断群集问题,请使用“ kubectl cluster-info dump”。 与服务器localhost:8080的连接被拒绝-您是否指定了正确的主机或端口? root @ kubework:/ etc / kubernetes#
解决方法
是,需要这些文件。将这些文件移动到工作节点上相应的.kube / config文件夹中。
,root @ kubework:/ etc / kubernetes#kubectl获取节点与 服务器localhost:8080被拒绝-您指定了正确的主机还是 端口?
Kubcetl默认情况下已配置并在主服务器上运行。它需要一个kube-apiserver容器和~/.kube/config
。
对于辅助节点,我们不需要使用kube-apiserver,但我们要使用主配置来传递它。
为此,我们必须将~/.kube/config
文件从主服务器复制到工作服务器上的~/.kube/config
。用户在worker和master上执行kubcetl时的值~
(当然可能有所不同)。
完成此操作后,您可以完全像在主节点上一样使用工作节点上的kubectl
命令。
即使使用kubectl on master node
作为非root帐户,这也是预期的行为,默认情况下,此配置文件为root帐户存储在/etc/kubernetes/admin.conf
中:
要使kubectl适用于非root用户,请运行以下命令,它们也是kubeadm init输出的一部分:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 或者,在主服务器上,如果您是root用户,则可以运行:
export KUBECONFIG=/etc/kubernetes/admin.conf
(可选)Controlling your cluster from machines other than the control-plane node
scp root@<control-plane-host>:/etc/kubernetes/admin.conf .
kubectl --kubeconfig ./admin.conf get nodes
Note:
,KUBECONFIG环境变量包含 kubeconfig文件的列表。对于Linux和Mac,该列表以冒号分隔。对于Windows,列表以分号分隔。 KUBECONFIG环境变量不是必需的。 如果KUBECONFIG环境变量不存在,则kubectl使用默认的kubeconfig文件$ HOME / .kube / config 。
我尝试了许多解决方案,它们只是将 /etc/kubernetes/admin.conf 复制到 ~/.kube/config。但没有一个对我有用。
我的操作系统是 ubuntu,通过删除、清除和重新安装以下内容来解决:
- sudo dpkg -r kubeadm kubectl
- sudo dpkg -P kubeadm kubectl
- sudo apt-get install -y kubelet kubeadm kubectl
- sudo apt-mark 持有 kubelet kubeadm kubectl
- curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"(再次下载 kubectl,这确实有效)
- kubectl 获取节点
名称状态角色年龄版本
mymaster Ready control-plane,master 31h v1.20.4
myworker Ready 31h v1.20.4
,Davidxxx 的解决方案对我有用。
就我而言,我发现在以下路径的工作节点中存在一个文件:
/etc/kubernetes/kubelet.conf
您可以将其复制到 ~/.kube/config 并且它也能正常工作。我自己测试过。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。