kubernetes - Kubernetes "pods.metrics.k8s.io "my-pod-name" 被禁止:用户 "system:serviceaccount:default:default" 无法获取资源 "pods"
问题描述
我无法弄清楚我的角色绑定有什么问题。在尝试获取我的 pod 的指标时,我不断收到此错误。
"pods.metrics.k8s.io "my-pod-name" is forbidden: User "system:serviceaccount:default:default" cannot get resource "pods" in API group "metrics.k8s.io" in the namespace "default""
这是集群角色 yaml 文件
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: ["", "metrics.k8s.io"] # "" indicates the core API group
resources: ["pods"]
verbs: ["get", "watch", "list"]
然后我运行了这个命令
kubectl create clusterrolebinding pod-reader \
--clusterrole=pod-reader \
--serviceaccount=default:default
解决方案
ClusterRole 和 ClusterRolebinding 是非命名空间资源。因此,从 YAML 文件中删除命名空间行。
或者,如果您想将范围限定为命名空间,请使用 Role 和 RoleBinding。
推荐阅读
- c# - 无法加载类型“Newtonsoft.Json.Serialization.CamelCaseNamingStrategy”
- networking - Vagrant:我是否正确设置了三角形拓扑?
- php - 按钮未通向所需位置
- reactjs - 订阅 AWS DynamoDB 中的更改
- javascript - 无法访问 console.log 中显示的 Javascript 对象键值
- r - 如何将前导行中的每一行减去R中的每五行?
- postgresql - PostgreSQL 调用 Group By Limit 操作的所有数据
- jenkins-pipeline - 在电子邮件通知中显示构建持续时间
- scipy - 使用 pip3 安装 scipy 时出错
- java - 如何从 picocli 命令正确启动 micronaut 网络服务器?