我的 1.9 集群为开发用户创建了这个部署角色。部署按预期进行。现在我想向开发人员授予执行和日志访问权限。我需要为 pod 添加什么角色?
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
The RBAC 文档说 https://kubernetes.io/docs/reference/access-authn-authz/rbac/#referring-to-resources
大多数资源都由其名称的字符串表示形式表示,例如“pods”,就像它出现在相关 API 端点的 URL 中一样。然而,一些 Kubernetes API 涉及“子资源”,例如 pod 的日志。 [...] 要在 RBAC 角色中表示这一点,请使用斜杠来分隔资源和子资源。
要允许主题读取 pod 和 pod 日志,并能够执行到 pod 中,您可以编写:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: pod-and-pod-logs-reader
rules:
- apiGroups: [""]
resources: ["pods", "pods/log"]
verbs: ["get", "list"]
- apiGroups: [""]
resources: ["pods/exec"]
verbs: ["create"]
某些客户端库可能会首先执行 http GET 来协商 Websocket,这需要“get”动词。 kubectl 发送一个 http POST,这就是为什么在这种情况下它需要“create”动词。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)