无法 kubectl 连接我的 kubernetes 集群

Unable to kubectl connect my kubernetes cluster

随着 Kubernetes 集群的启动和 运行ning 以及使用 ssh-keys 和 运行 kubectl 命令通过 ssh 访问 master 的能力;我想在本地机器上 运行 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

它returns:

The connection to the server localhost:8080 was refused - did you specify the right host or port?

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

很遗憾,上面的 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

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

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

这就是其中没有上下文的原因,因为 contexts: 未定义。

kubectl 找不到上下文 mykube 并切换到默认上下文 server=localhost:8080 默认情况下。

如果未设置 --kubeconfig 标志或 $KUBECONFIG 环境变量,

kubectl 配置默认位于 ${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