启动并运行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 回答
不幸的是,上面
kubectl
配置文件不正确 . 由于手动格式化或其他原因,似乎出现了错误 .此部分缺少新行(
name: mykubecontexts:
):正确的是:
's why cluster'的名字是
mykubecontexts:
:这就是为什么没有上下文,因为没有定义
contexts:
.kubectl
找不到上下文mykube
并切换到默认值为server=localhost:8080
的默认值 .如果未设置
--kubeconfig
标志或$KUBECONFIG
环境变量,kubectl
config默认位于${HOME}/.kube/config
文件中 .请更正以下内容: