我可以在Kubernetes中将2个节点群集在一起。主节点似乎运行正常,但在工作节点上运行任何命令都会导致错误:“到服务器localhost:8080的连接被拒绝-您是否指定了正确的主机或端口?”
从主节点(节点1)、
$ kubectl get nodes
NAME STATUS AGE VERSION
node1 Ready 23h v1.7.3
node2 Ready 23h v1.7.3
从worker(节点2)、
$ kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?
$ telnet localhost 8080
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
$ ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.032 ms
我不知道如何解决这个问题。任何帮助都将不胜感激。
在执行“journalctl-xeu kubelet”时,我看到:“CNI无法检索网络名称空间路径:找不到已终止容器”“的网络名称空间,但这似乎与安装Pod网络有关...由于上述错误,我无法安装Pod网络。
谢谢你!
6条答案
按热度按时间jckbn6z71#
kubectl
与kube-apiserver
接口以进行群集管理。该命令在主节点上运行,因为kube-apiserver
在主节点上运行。在工作节点上,只有kubelet
和kube-proxy
在运行。事实上,
kubectl
应该在客户端(例如笔记本电脑、台式机)上运行,而不是在kubernetes节点上运行。vyu0f0g12#
从master您需要~/.kube/config将此文件作为参数传递给kubectl命令。将配置文件复制到其他服务器或便携式计算机,然后将参数作为参数传递给
kubectl
命令例如:
kubectl --kubeconfig=~/.kube/config
nwo49xxi3#
在执行以下命令后,这对我有效:
gmxoilav4#
作为提示,提示的消息表明它与网络有关。因此,一个可能的答案也可能是,这对我的解决方案是有效的,是在
contexts
中查看context
的关键cluster
值。我的错误是我在那里放置了一个不正确的集群名称。
拥有适当的集群名称对于为相应的上下文查找集群名称至关重要,错误将消失。
xghobddn5#
要解决
The connection to the server localhost:8080 was refused - did you specify the right host or port?
问题,您可能遗漏了一个步骤。我的修复:
在MacOS上,如果你安装了带brew的K8s,你仍然需要运行
brew install minikube
,然后你应该运行minikube start
。这将启动你的集群。运行命令
kubectl cluster-info
,您应该会得到类似于以下内容的满意路径响应:Kubernetes安装步骤:https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/
Minikube文档:https://minikube.sigs.k8s.io/docs/start/
nzrxty8p6#
如果您在Docker桌面中运行Kubernetes,请确保选择了什么上下文。
正确选择后,您将能够毫无例外地运行
kubectl
命令: