With a Kubernetes cluster up and running and the ability to go to the master over ssh with ssh-keys and run kubectl commands there; I want to run kubectl commands on my local machine. So I try to setup the configuration, following the 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 Activate the context:
kubectl config use-context mykubeWhen I run a kubectl command:
kubectl get nodesIt returns:
The connection to the server localhost:8080 was refused - did you specify the right host or port?
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/keyfileUnfortunately, above kubectl config file is incorrect. It seems an error appeared due to manual formatting or something else.
New line is missing in this part (name: mykubecontexts:):
clusters:
- cluster:
server: https://<master-ip>:6443
name: mykubecontexts:
- context:
cluster: mykube
user: mykube-adm
name: mykubeCorrect one is:
clusters:
- cluster:
server: https://<master-ip>:6443
name: mykube
contexts:
- context:
cluster: mykube
user: mykube-adm
name: mykubeThat's why cluster's name is mykubecontexts::
clusters:
- cluster:
server: https://<master-ip>:6443
name: mykubecontexts:and that's why there is no context in it, because contexts: is not defined.
kubectl cannot find context mykube and switches to default one where server=localhost:8080 is by default.
kubectl config is located in ${HOME}/.kube/config file by default if --kubeconfig flag or $KUBECONFIG environment variable are not set.
Please correct it to the following one:
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