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.
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:
```bash
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:
```bash
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:
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.
to solve this issue you need first to create a cluster in your workstation. This would generate the KUBECONFIG variable set to "~/.kube/config" directory.
Or you can use --kubeconfig + path to your kubeconfig file with