我的1.9集群为dev用户创建了这个部署角色。部署按预期工作。现在我想给予exec和日志访问开发人员。我需要为pod中的exec添加什么角色?
kind: Role
name: deployment-manager
rules:
- apiGroups: ["", "extensions", "apps"]
resources: ["deployments", "replicasets", "pods"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
错误信息:
kubectl exec nginx -it -- sh
Error from server (Forbidden): pods "nginx" is forbidden: User "dev" cannot create pods/exec in the namespace "dev"
谢谢SR
1条答案
按热度按时间mwkjh3gx1#
RBAC文档说
大多数资源都是用它们名称的字符串表示形式来表示的,例如“pod”,就像它在相关API端点的URL中出现的一样。然而,一些Kubernetes API涉及“子资源”,例如Pod的日志。[...]要在RBAC角色中表示此资源,请使用斜杠分隔资源和子资源。
要允许一个subject读取pod和pod日志,并且能够执行pod,你可以这样写:
一些客户端库可能会执行httpGET来首先协商一个WebSocket,这需要“get”动词。kubectl发送一个http POST,这就是为什么在这种情况下它需要“create”动词。