首页 > 解决方案 > 如何使用“kubectl”命令而不是“sudo kubectl”

问题描述

对于kubectl我需要使用的每个命令sudo kubectl

我了解安全角度,但我正在开发一个测试环境,我希望能够在没有sudo.

我尝试运行sudo -i并使用 root 帐户运行kubectl get pods ,但我收到:

The connection to the server localhost:8080 was refused - did you
specify the right host or port?

我注意到我在玩https://labs.play-with-k8s.com时,用户是root,我可以kubectl自由运行。

我想用我的 Minikube 在我的 Ubuntu 机器上拥有同样的东西。

当我kubectl get pods使用我的常规帐户运行时,我收到了错误:

error: unable to read client-key /home/myuser/.minikube/client.key for minikube due to open /home/myuser/.minikube/client.key: permission denied

我想有两种方法:
1. 让每个人都可以访问/home/myuser/.minikube/
2. 给我的帐户权限以在kubectl没有的情况下运行sudo

编辑:
在@Konstantin Vustin 请求之后,这里是请求的信息:

myuser@ubuntu:/usr/local/bin$ ls -l  $(which kubectl)
-rwxrwxr-x 1 myuser myuser 54308597 Jun 13 05:21 /usr/local/bin/kubectl

myuser@ubuntu:/usr/local/bin$ ls -la ~ | grep kube
drwxr-xr-x  5 myuser myuser   4096 Jun 17 02:25 .kube
drwxrwxr-x 10 myuser myuser   4096 Jun 13 05:18 .minikube

myuser@ubuntu:/usr/local/bin$ ls -l ~/.kube
total 24
drwxr-xr-x  3 root  root  4096 Jun 13 05:26 cache
-rw-------  1 myuser myuser 911 Jun 13 05:27 config
drwxrwxr-x  3 myuser myuser 4096 Jul 11 01:37 http-cache

标签: kuberneteskubectlminikube

解决方案


修复文件权限

您的 kubectl 文件很可能不属于您的用户。

您可以使用以下命令设置这些权限。

sudo chown -R $USER $HOME/.kube

使用 sudo 运行 kubectl

或者,您可以使用持久性 sudo shell以 sudo 用户身份运行 kubectl 。

sudo -s

然后运行你的 kubectl 命令

kubectl get pods

kubectl describe <resource_type> <resource_name>

最后退出 sudo shell

exit

推荐阅读