6.3. ノードの管理
OpenShift Container Platform は、KubeletConfig カスタムリソース (CR) を使用してノードの設定を管理します。KubeletConfig オブジェクトのインスタンスを作成すると、マネージドのマシン設定がノードの設定をオーバーライドするために作成されます。
リモートマシンにログインして設定を変更する方法はサポートされていません。
6.3.1. ノードの変更 リンクのコピーリンクがクリップボードにコピーされました!
クラスターまたはマシンプールの設定を変更するには、カスタムリソース定義 (CRD) または kubeletConfig オブジェクトを作成する必要があります。OpenShift Container Platform は、Machine Config Controller を使用して、変更をクラスターに適用するために CRD を使用して導入された変更を監視します。
ほとんどの Kubelet 設定オプション はユーザーが設定できます。ただし、以下のオプションは上書きできません。
- CgroupDriver
- ClusterDNS
- ClusterDomain
- StaticPodPath
単一ノードに 50 を超えるイメージが含まれている場合、Pod のスケジューリングがノード間で不均衡になる可能性があります。これは、ノード上のイメージのリストがデフォルトで 50 に短縮されているためです。KubeletConfig オブジェクトを編集し、nodeStatusMaxImages の値を -1 に設定して、イメージの制限を無効にすることができます。
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
次の
custom-configCR のサンプル設定に示すように、設定変更用のkubeletconfigカスタムリソース (CR) を作成します。apiVersion: machineconfiguration.openshift.io/v1 kind: KubeletConfig metadata: name: custom-config spec: machineConfigPoolSelector: matchLabels: custom-kubelet: enabled kubeletConfig: podsPerCore: 10 maxPods: 250 systemReserved: cpu: 2000m memory: 1Gi #...各項目の説明:
name- CR に名前を割り当てます。
custom-kubelet- 設定変更を適用するラベルを指定します。これは、マシン設定プールに追加するラベルになります。
kubeletConfig- 変更する必要のある新しい値を指定します。
CR オブジェクトを作成します。
$ oc create -f <file-name>以下に例を示します。
$ oc create -f master-kube-config.yaml