无法在 RoleBinding 中向 roleRef 添加命名空间字段

E23*_*235 3 rbac kubernetes

我想kube-system在我的MyRoleBinding.yaml文件中添加来自命名空间的角色,如下所示:

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata: 
  name: myrolebinding
  namespace: default
subjects: 
- kind: ServiceAccount 
  name: myservice
  namespace: default
  apiGroup: ""
roleRef: 
  kind: Role
  name: system:controller:token-cleaner
  namespace: kube-system
  apiGroup: "" 
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时,kubectl apply -f MyRoleBinding.yaml我得到:

错误:验证“MyRoleBinding.yaml”时出错:验证数据时出错:ValidationError(RoleBinding.roleRef):io.k8s.api.rbac.v1.RoleRef 中的未知字段“命名空间”;如果您选择忽略这些错误,请使用 --validate=false 关闭验证

我在default命名空间中运行,是因为这个吗?
我试图运行:
kubectl apply -f MyRoleBinding.yaml --namespace=kube-system但我遇到了同样的错误。

我还尝试defaul使用以下方法在命名空间中添加现有角色:

roleRef: 
  kind: Role
  name: read-pods
  namespace: default
  apiGroup: "" 
Run Code Online (Sandbox Code Playgroud)

我得到了同样的错误。

Jak*_*kub 6

roleRef字段不支持命名空间。您可以roleRef与没有命名空间的 ClusterRoles 一起使用,也可以与必须始终与 RoleBinding 位于同一命名空间中的角色一起使用。另请参阅参考资料