kubernetes - 如何使用“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
解决方案
修复文件权限
您的 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
推荐阅读
- javascript - Web 身份验证 API 奇怪的行为
- database - PL/SQL 中的问题 = 错误堆栈:ORA-01403:Oracle Application Express (APEX) 中没有数据
- regex - 搜索括号并在 gvim 中添加 \
- xml - 从 XML 中提取精确节点
- python - Python:列表列表的基本操作
- python - 数据框根据来自另一列的值连续性从列中添加元素
- javascript - 使用 Jest 测试特定文件
- ios - 即使在指定 contentShape 之后,ContextMenu 也使用不正确的cornerRadius
- c - c 如何通过引用传递指针并增加值
- spring-cloud - 登录后 Spring Vault 不使用新令牌