9.3. パーミッションに関する失敗のトラブルシューティング

パーミッションがないために Operator のインストールが失敗する場合は、以下の手順を使用してエラーを特定します。

手順

  1. Subscription オブジェクトを確認します。このステータスには、Operator の必要な ClusterRole、 ClusterRoleBinding、Role、および RoleBinding の作成を試行した InstallPlan オブジェクトをポイントするオブジェクト参照 installPlanRef があります。

    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
  2. 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 は、ユーザーに操作を実行するための十分なパーミッションがないことを示します。
    • リソースの作成または更新を試みたユーザーの名前。この場合、これは OperatorGroup で指定されたサービスアカウントを参照します。
    • 操作の範囲が cluster scope かどうか。

      ユーザーは、不足しているパーミッションをサービスアカウントに追加してから、繰り返すことができます。

      注記

      現在、OLM は最初の試行でエラーの詳細の一覧を提供しませんが、今後のリリースで追加される可能性があります。