首页 文章

无法kubectl连接我的kubernetes集群

提问于
浏览
0

启动并运行Kubernetes集群,并使用ssh-key通过ssh转到master并在那里运行kubectl命令;我想在我的本地机器上运行kubectl命令 . 所以我尝试按照kubectl config设置配置:

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的连接被拒绝 - 您是否指定了正确的主机或端口?

The output of kubectl config view

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 回答

  • 1

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

    此部分缺少新行( name: 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
    

    's why cluster'的名字是 mykubecontexts:

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

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

    kubectl 找不到上下文 mykube 并切换到默认值为 server=localhost:8080 的默认值 .

    如果未设置 --kubeconfig 标志或 $KUBECONFIG 环境变量, kubectl config默认位于 ${HOME}/.kube/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
    

相关问题