我正在使用 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