我能够在Kubernetes中将2个节点聚集在一起。主节点似乎运行正常,但在工作节点上运行任何命令都会导致错误:&#34;与服务器localhost:8080的连接被拒绝 - 您是否指定了正确的主机或端口?&#34; < / p>
来自master(node1),
$ 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
我不确定如何解决这个问题。任何帮助表示赞赏。
执行时,&#34; journalctl -xeu kubelet&#34;我知道了: &#34; CNI无法检索网络命名空间路径:无法找到已终止容器的网络命名空间&#34;,但这似乎与安装pod网络有关...由于上述错误,我无法进行此操作。
谢谢!
答案 0 :(得分:6)
来自master你需要〜/ .kube / config将此文件作为kubectl命令的参数传递。将配置文件复制到其他服务器或笔记本电脑,然后传递kubectl
命令
例如:
kubectl --kubeconfig=~/.kube/config
答案 1 :(得分:5)
kubectl
与kube-apiserver
接口进行集群管理。该命令适用于主节点,因为kube-apiserver
运行的位置。在工作节点上,只有kubelet
和kube-proxy
正在运行。
事实上,kubectl
应该在客户端(例如笔记本电脑,桌面)上运行,而不是在kubernetes节点上运行。
答案 2 :(得分:0)
在执行以下命令后这对我有用:
$ sudo mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
答案 3 :(得分:0)
作为提示,提示的消息表明其与网络相关。
因此,一个对我的解决方案有用的潜在答案也可能是查看 cluster
内 context
的键 contexts
值。
我的错误是我在那里放置了错误的集群名称。
拥有合适的集群名称对于在相应的上下文中找到它至关重要,错误将消失。
答案 4 :(得分:0)
要解决问题 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 control plane is running at https://127.0.0.1:63000
KubeDNS is running at https://127.0.0.1:63308/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Kubernetes 安装步骤:https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/
Minikube 文档:https://minikube.sigs.k8s.io/docs/start/