Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

16.3.2. クラスターロールの作成

Descheduler が Pod で機能するために必要なパーミッションを設定するには、以下を実行します。

  1. 以下のルールで クラスターロール を作成します。

    kind: ClusterRole
    apiVersion: rbac.authorization.k8s.io/v1beta1
    metadata:
      name: descheduler-cluster-role
    rules:
    - apiGroups: [""]
      resources: ["nodes"]
      verbs: ["get", "watch", "list"] 1
    - apiGroups: [""]
      resources: ["pods"]
      verbs: ["get", "watch", "list", "delete"] 2
    - apiGroups: [""]
      resources: ["pods/eviction"] 3
      verbs: ["create"]
    1
    ノードの表示を許可するようにロールを設定します
    2
    Pod の表示および削除を許可するようにロールを設定します。
    3
    ノードがノードにバインドされた Pod をエビクトできるようにします。
  2. ジョブを実行するために使用される サービスアカウント を作成します。

    # oc create sa <file-name>.yaml -n kube-system

    以下に例を示します。

    # oc create sa descheduler-sa.yaml -n kube-system
  3. クラスターロールをサービスアカウントにバインドします。

    # oc create clusterrolebinding descheduler-cluster-role-binding \
        --clusterrole=<cluster-role-name> \
        --serviceaccount=kube-system:<service-account-name>

    以下に例を示します。

    # oc create clusterrolebinding descheduler-cluster-role-binding \
        --clusterrole=descheduler-cluster-role \
        --serviceaccount=kube-system:descheduler-sa