1.19.2. 問題の解決: マネージドクラスターとして選択されていないローカルクラスターのトラブルシューティング

この問題を解決するには、local-cluster namespace に managedcluster 管理パーミッションを付与する必要があります。以下の手順を実行します。

  1. マネージドクラスターの一覧に local-cluster が含まれていること、配置ルールの decisions リストで local-cluster が表示されていないことを確認します。以下のコマンドを実行して結果を表示します。

    % oc get managedclusters

    出力例を確認すると、local-cluster が結合されているものの、PlacementRule の YAML にないことが分かります。

    NAME            HUB ACCEPTED   MANAGED CLUSTER URLS   JOINED   AVAILABLE   AGE
    local-cluster   true                                  True     True        56d
    cluster1        true                                  True     True        16h
    apiVersion: apps.open-cluster-management.io/v1
    kind: PlacementRule
    metadata:
      name: all-ready-clusters
      namespace: default
    spec:
      clusterSelector: {}
    status:
      decisions:
      - clusterName: cluster1
        clusterNamespace: cluster1
  2. YAML ファイルに Role を作成し、local-cluster namespace に managedcluster 管理パーミッションを付与します。以下の例を参照してください。

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: managedcluster-admin-user-zisis
      namespace: local-cluster
    rules:
    - apiGroups:
      - cluster.open-cluster-management.io
      resources:
      - managedclusters
      verbs:
      - get
  3. RoleBinding リソースを作成し、配置ルールユーザーに local-cluster namespace へのアクセスを許可します。以下の例を参照してください。

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: managedcluster-admin-user-zisis
      namespace: local-cluster
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: managedcluster-admin-user-zisis
      namespace: local-cluster
    subjects:
    - kind: User
      name: zisis
      apiGroup: rbac.authorization.k8s.io