You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么配置了所需权限的K8s ServiceAccount无法列出Pod资源?

问题根因

你配置的Role规则中,resources字段使用了单数形式的pod,Kubernetes RBAC要求所有资源必须填写复数形式名称,正确值应为pods。

修复步骤

  1. 修改objects.yaml中的Role定义部分,修正resources字段:
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: xyz
  name: listpodser
rules:
  - apiGroups: [""]
    resources: ["pods"] # 此处从pod改为pods
    verbs: ["get", "list"]

# 剩余的RoleBinding、ServiceAccount部分无需修改,保持原有配置即可
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: xyz
  name: service-listpodser
subjects:
  - kind: ServiceAccount
    name: serviceacc 
    apiGroup: ""
roleRef:
  kind: Role
  name: listpodser
  apiGroup: ""

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: serviceacc
  namespace: xyz
  1. 重新应用配置:
kubectl apply -f objects.yaml
  1. 再次校验权限,返回结果应为yes:
kubectl auth can-i get pods --namespace xyz --as system:serviceaccount:xyz:serviceacc
kubectl auth can-i list pods --namespace xyz --as system:serviceaccount:xyz:serviceacc

内容的提问来源于stack exchange,提问作者Nipun Talukdar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 18:54:04