首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubectl exec不适用于kubectl代理

kubectl exec不适用于kubectl代理
EN

Stack Overflow用户
提问于 2018-04-26 18:58:19
回答 2查看 841关注 0票数 0

我想要执行kubectl exec命令并连接到一个容器,这样我就可以在它上面执行一些命令。我已经使用以下命令设置了代理:

代码语言:javascript
复制
kubectl proxy -p=8080 --kubeconfig=/directory_path/remote-kubeconfig &

代理已开始运行。我尝试执行kubectl exec命令:

代码语言:javascript
复制
kubectl exec -it <pod> --namespace=<namespace> -c <container> -- ls -l

我得到了以下错误:

代码语言:javascript
复制
error: unable to upgrade connection: <h3>Unauthorized</h3>

执行kubectl exec命令时,我是否遗漏了什么??请帮帮忙。

EN

回答 2

Stack Overflow用户

发布于 2018-05-01 16:10:31

我有一个解决这个问题的办法,但不是一个好办法。

我发出了--disable-filterkubectl proxy命令。之后,我就可以成功地执行kubectl exec命令了。

但是当我使用--disable-filter时,它很容易受到攻击。消息Request filter disabled, your proxy is vulnerable to XSRF attacks, please be cautious将与--disable-filter一起显示。

所以,我不认为这是一个好的解决方案。

如果有人知道这个问题更好的解决方案,请让我知道。

票数 0
EN

Stack Overflow用户

发布于 2020-06-02 13:12:20

默认情况下,kubectl proxy会拒绝与^/api/./pods/./exec匹配的API命令。

为了“绕过”它,你需要做的就是用适当的标志启动kubectl proxy

kubectl proxy --port 8080 --reject-paths "^/api/./pods/./attach"

当然,这也带来了安全风险,任何有权访问您的代理的人现在都可以执行到集群上的任何pod中。

如果您确实需要在生产环境中执行此操作,我强烈建议使用RBAC授权限制代理的访问权限-将代理作为具有ServiceAccount的部署运行。

有关详细信息,请参阅:

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#proxy https://kubernetes.io/docs/reference/access-authn-authz/rbac/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50041250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档