4.3. ノードの管理

OpenShift Container Platform は、KubeletConfig Custom Resource を使ってノードの設定を管理します。KubeletConfig のインスタンスを作成すると、管理対象の MachineConfig がノードの設定を上書きするように作成されます。

注記

リモートマシンにログインして設定を変更する方法はサポートされていません。

4.3.1. ノードの変更

クラスターまたは MachinePool の設定を変更するには、クラスターリソース定義 (CRD、Cluster Resource Definition) または KubeletConfig インスタンスを作成する必要があります。OpenShift Container Platform は、Machine Config Controller を使って、変更をクラスターに適用している CRD を介して導入された変更を監視します。

手順

  1. 設定する必要のあるノードタイプの静的な CRD、Machine Config Pool に関連付けられたラベルを取得します。以下のいずれかの手順を実行します。

    1. 必要な machineconfigpool の現在のラベルをチェックします。

      例:

      $  oc get machineconfigpool  --show-labels
      NAME      CONFIG                                             UPDATED   UPDATING   DEGRADED   LABELS
      master    rendered-master-e05b81f5ca4db1d249a1bf32f9ec24fd   True      False      False      operator.machineconfiguration.openshift.io/required-for-upgrade=
      worker    rendered-worker-f50e78e1bc06d8e82327763145bfcf62   True      False      False
    2. 必要な machineconfigpool にカスタムラベルを追加します。

      例:

      $ oc label machineconfigpool worker custom-kubelet=enabled
  2. 設定の変更用に KubeletConfig カスタムリソース(CR) を作成します。

    例:

    custom-config CR の設定例

    apiVersion: machineconfiguration.openshift.io/v1
    kind: KubeletConfig
    metadata:
      name: custom-config 1
    spec:
      machineConfigPoolSelector:
        matchLabels:
          custom-kubelet: enabled 2
      kubeletConfig: 3
        podsPerCore: 10
        maxPods: 250
        systemReserved:
          cpu: 1000m
          memory: 500Mi
        kubeReserved:
          cpu: 1000m
          memory: 500Mi

    1
    CR に名前を割り当てます。
    2
    設定変更を適用するラベルを指定します。これは、machineconfigpool に追加するラベルになります。
    3
    変更する必要のある新しい値を指定します。
  3. CR オブジェクトを作成します。

    $ oc create -f <file-name>

    以下は例になります。

    $ oc create -f master-kube-config.yaml

ほとんどの KubeletConfig オプションはユーザーが設定できます。以下のオプションは上書きが許可されていません。

  • CgroupDriver
  • ClusterDNS
  • ClusterDomain
  • RuntimeRequestTimeout
  • StaticPodPath