Kubernetes RBAC 权限 - 尝试授予权限时未知'clusterrole'标志?



我正在使用 Mirantis kubeadm-dind-cluster repository (https://github.com/Mirantis/kubeadm-dind-cluster) 作为我的 Kubernetes 安装;我在尝试运行容器时遇到了此错误 -

panic: customresourcedefinitions.apiextensions.k8s.io is forbidden: User "system:serviceaccount:default:default" cannot create customresourcedefinitions.apiextensions.k8s.io at the cluster scope

所以我尝试向我的帐户添加群集管理员权限:

kubectl create clusterrolebinding serviceaccounts-cluster-admin --clusterrole=cluster-admin  --group=system:serviceaccounts

并得到以下错误:

Error: unknown flag: --clusterrole

这是为什么呢?我该如何修复或绕过它?我不确定如何将命令转换为 YAML 文件以"kubectl create -f",但似乎这可能是要走的路。

所有三个节点都在 1.8.6 版上。

你使用的是哪个版本的 kubectl?确保您使用的版本包含kubectl create clusterrolebinding命令

如果您的 kubectl 版本不支持该命令,您可以尝试直接通过 yaml 文件创建它(尽管我不确定 1.5.x kubectl 是否愿意提交它不知道的 API 对象版本):

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: serviceaccounts-cluster-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:serviceaccounts

最新更新