5.3. ノードの管理
OpenShift Container Platform は、KubeletConfig カスタムリソース (CR) を使ってノードの設定を管理します。KubeletConfig
オブジェクトのインスタンスを作成すると、管理対象のマシン設定がノードの設定を上書きするために作成されます。
リモートマシンにログインして設定を変更する方法はサポートされていません。
5.3.1. ノードの変更
クラスターまたはマシンプールの設定を変更するには、カスタムリソース定義 (CRD) または kubeletConfig
オブジェクトを作成する必要があります。OpenShift Container Platform は、Machine Config Controller を使って、変更をクラスターに適用するために CRD を使用して導入された変更を監視します。
kubeletConfig
オブジェクトのフィールドは、アップストリームの Kubernetes から kubelet に直接渡されるため、これらのフィールドの検証は kubelet 自体によって直接処理されます。これらのフィールドの有効な値については、関連する Kubernetes のドキュメントを参照してください。kubeletConfig
オブジェクトの値が無効な場合、クラスターノードが使用できなくなる可能性があります。
手順
設定する必要のあるノードタイプの静的な CRD、Machine Config Pool に関連付けられたラベルを取得します。以下のいずれかの手順を実行します。
必要なマシン設定プールの現在のラベルをチェックします。
以下に例を示します。
$ 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
必要なマシン設定プールにカスタムラベルを追加します。
以下に例を示します。
$ oc label machineconfigpool worker custom-kubelet=enabled
設定の変更用に
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: 2000m memory: 1Gi
CR オブジェクトを作成します。
$ oc create -f <file-name>
以下に例を示します。
$ oc create -f master-kube-config.yaml
ほとんどの Kubelet 設定オプション はユーザーが設定できます。以下のオプションは上書きが許可されていません。
- CgroupDriver
- ClusterDNS
- ClusterDomain
- RuntimeRequestTimeout
- StaticPodPath