4.7.3. 故障排除权限失败
如果因为缺少权限而导致 Operator 安装失败,请按照以下流程找出错误。
流程
查看
Subscription
对象。其状态中有一个指向InstallPlan
对象的对象引用installPlanRef
,该对象试图为 Operator 创建需要的[Cluster]Role[Binding]
:apiVersion: operators.coreos.com/v1 kind: Subscription metadata: name: etcd namespace: scoped status: installPlanRef: apiVersion: operators.coreos.com/v1 kind: InstallPlan name: install-4plp8 namespace: scoped resourceVersion: "117359" uid: 2c1df80e-afea-11e9-bce3-5254009c9c23
检查
InstallPlan
对象的状态中的任何错误:apiVersion: operators.coreos.com/v1 kind: InstallPlan status: conditions: - lastTransitionTime: "2019-07-26T21:13:10Z" lastUpdateTime: "2019-07-26T21:13:10Z" message: 'error creating clusterrole etcdoperator.v0.9.4-clusterwide-dsfx4: clusterroles.rbac.authorization.k8s.io is forbidden: User "system:serviceaccount:scoped:scoped" cannot create resource "clusterroles" in API group "rbac.authorization.k8s.io" at the cluster scope' reason: InstallComponentFailed status: "False" type: Installed phase: Failed
错误信息中会显示:
-
创建失败的资源类型,包括资源的 API 组。本例中为
rbac.authorization.k8s.io
组中的clusterroles
。 - 资源名称。
-
错误类型:
is forbidden
表明相应用户没有足够权限来执行这一操作。 - 试图创建或更新资源的用户名称。本例中指的是 Operator 组中指定的服务账户。
操作范围:
集群范围内
或范围外。用户可在服务账户中增加所缺权限,然后迭代操作。
注意Operator Lifecycle Manager(OLM)目前未提供第一次尝试的完整错误列表。
-
创建失败的资源类型,包括资源的 API 组。本例中为