当前位置: 首页 > 知识库问答 >
问题:

无法kubectl连接我的kubernetes集群

佘茂才
2023-03-14

随着库伯内特斯集群的启动和运行,并且能够通过ssh键访问master并在那里运行kubectl命令;我想在我的本地机器上运行kubectl命令。所以我尝试按照kubectl配置设置配置:

kubectl config set-cluster mykube --server=https://<master-ip>:6443
kubectl config set-context mykube --cluster=mykube --user=mykube-adm
kubectl config set-credentials mykube-adm --client-key=path/to/private/keyfile 

激活上下文:

kubectl config use-context mykube

当我运行kubectl命令时:

kubectl get nodes

它返回:

与服务器localhost:8080的连接被拒绝-是否指定了正确的主机或端口?

kubectl配置视图的输出

apiVersion: v1
clusters:
- cluster:
    server: https://<master-ip>:6443
  name: mykubecontexts:
- context:
    cluster: mykube
    user: mykube-adm
  name: mykube
current-context: mykube
kind: Config
preferences: {}
users:
- name: mykube-adm
  user:
    client-key: path/to/private/keyfile

共有1个答案

田阳泽
2023-03-14

不幸的是,上面的kubectl配置文件不正确。由于手动格式化或其他原因,似乎出现了错误。

此部分缺少新行(名称:mykubecontexts:):

clusters:
- cluster:
    server: https://<master-ip>:6443
  name: mykubecontexts:
- context:
    cluster: mykube
    user: mykube-adm
  name: mykube

正确的是:

clusters:
- cluster:
    server: https://<master-ip>:6443
  name: mykube
contexts:
- context:
    cluster: mykube
    user: mykube-adm
  name: mykube

这就是为什么群集的名称是< code>mykubecontexts::

clusters:
- cluster:
    server: https://<master-ip>:6443
  name: mykubecontexts:

这就是为什么没有上下文,因为< code>contexts:没有定义

< code>kubectl找不到上下文< code>mykube并切换到默认上下文,其中< code > server = localhost:8080 是默认的。

kubectlconfig位于${HOME}/中。如果--kubeconfig标志或$KUBECONFIG环境变量未设置,则默认情况下库贝/config文件。

请更正为以下内容:

apiVersion: v1
clusters:
- cluster:
    server: https://<master-ip>:6443
  name: mykube
contexts:
- context:
    cluster: mykube
    user: mykube-adm
  name: mykube
current-context: mykube
kind: Config
preferences: {}
users:
- name: mykube-adm
  user:
    client-key: path/to/private/keyfile
 类似资料:
  • 我已经使用KOPS安装了kubernetes集群。 从kops安装kubectl的节点开始,kubectl全部工作完美(假设节点A)。 我正在尝试从另一个安装了kubectl的服务器(节点B)连接到kubernetes集群。我已经将~/.kube从A节点复制到B节点,但当我尝试执行以下基本命令时: 我的配置文件是: 感谢任何帮助

  • 我有一个裸机kubernetes集群。我应用了这样的kubernetes nginx部署:kubectl应用-fhttps://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/baremetal/deploy.yaml 并添加了这个入口资源: 我的入口资源: 但

  • 我试图在我本地minikube集群上的一个简单示例中使用fabric8io/kubernetes-client,在这里我获得了一个pod的IP 是完成执行的pod的名称,如果执行则可见。 是一个kubernetes API主机,我从中获得该主机。 MiniKube只有1个节点。 Fabric8IO/Kubernetes-客户端版本为4.9.1 Java 11 我将此代码作为作业部署在的同一集群上。

  • 当我尝试任何kubectl命令时,它总是返回: 我按照这些教程: https://kubernetes.io/docs/tasks/tools/install-kubectl/ https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/ 但他们没有帮助我。根据第一个链

  • 我正在尝试在我的本地计算机上运行,并从 收到错误。 错误消息为:< code >无法连接到服务器:拨tcp 192.168.2.15:8443: connectex:无法建立连接,因为目标计算机主动拒绝连接。 请看下面的截图。 我已经尝试了无法在windows 10上运行Kubernetes (kubectl)和Minikube中的所有建议。无法连接到服务器:拨tcp [::1]:8080: co

  • 我可以看到这两个IP,我试图连接使用tcp套接字,绑定他们与tcp端口8080。然而,它表明它没有连接。 我认为这不是使用tcp套接字连接它们的方式。是否有任何方法使一个pod服务器和其他pod客户端和conncet使用tcp套接字。 编辑: Client.C