Menu Close
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