无法 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
随着 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