I am trying to access a remote kubernetes cluster with kubectl. In order to copy/paste cluster credentials in the kubeconfig file I tried to access with "~/.kube/config" command but there is an error saying "No such file or directory".
Could anyone please tell me why i get this error? kubectl is perfectly working.
In my case I had KUBECONFIG variable set to "~/.kube/config" in .bashrc. The file existed & had correct permissions yet it wasn't being resolved somehow. Turned out I had to use ${HOME} in place of ~. That did the trick.
If your kubectl works correctly against your cluster than the /kube/config file should be there.
You can check the location of the file with increasing verbosity level when launching the command:
➜ ~ kubectl get pods -v=6
...] Config loaded from file: /home/thomas/.kube/config ◄ ◄ ◄ ◄ ◄
...] Starting client certificate rotation controller
...] GET https://172.17.0.4:8443/api/v1/namespaces/default/pods?limit=500 200 OK in 11 milliseconds
There is workaround that enables you to generate the config with kubectl config view --flatten:
--flatten[=false]: flatten the resulting kubeconfig file into self contained output (useful for creating portable kubeconfig files)
There is also possibility that while boostraping your cluster with kubeadm you did not move the files accordingly to the instructions (:
To make kubectl work for your non-root user, run these commands,
which are also part of the kubeadm init output:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Alternatively, if you are the root user, you can run:
export KUBECONFIG=/etc/kubernetes/admin.conf
If you used kubectl with sudo you will be using kube/config from your root path.
For more reading please have a look at these:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With