繁体   English   中英

无法kubectl连接我的kubernetes集群

[英]Unable to kubectl connect my kubernetes cluster

随着Kubernetes集群的建立和运行,并能够使用ssh-keys通过ssh转到主服务器并在其中运行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的连接被拒绝-您是否指定了正确的主机或端口?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM