在使用 Spring Cloud Kubernetes Discovery Client 部署服务时,我收到 KubernetesClientException 指出用户“默认”被禁止访问 pod。
我已经添加了此处指定的角色和角色绑定
该指南指出 ClusterRole 是必要的。但这不是我的选择,因为我们与其他部门共享集群。我只希望角色影响我们的项目/命名空间。
ClusterRole 是必需的还是 Role 是否足够?
在使用 Spring Cloud Kubernetes Discovery Client 部署服务时,我收到 KubernetesClientException 指出用户“默认”被禁止访问 pod。
我已经添加了此处指定的角色和角色绑定
该指南指出 ClusterRole 是必要的。但这不是我的选择,因为我们与其他部门共享集群。我只希望角色影响我们的项目/命名空间。
ClusterRole 是必需的还是 Role 是否足够?
要允许服务帐户访问这些,需要创建一个具有必要权限的角色并将其分配给帐户。这是通过集群角色或角色(如果只想在一个命名空间中使用它)和角色绑定来完成的,这是特定于命名空间的。
它说您可以使用 Role 或 ClusterRole。
请记住,在创建角色时应定义命名空间。IE
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: mynamespace
name: service-discovery-client
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["services", "pods", "configmaps", "endpoints"]
verbs: ["get", "watch", "list"]