This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.4. ノードあたりの Pod の最大数の管理
OpenShift Container Platform では、ノードのプロセッサーコアの数に基づいて、ノードで実行可能な Pod の数、ハード制限、またはその両方を設定できます。両方のオプションを使用した場合、より低い値の方がノード上の Pod の数を制限します。
これらの値を超えると、以下の状態が生じる可能性があります。
- OpenShift Container Platform の CPU 使用率が増加
- Pod のスケジューリングの速度が遅くなる。
- (ノードのメモリー量によって) メモリー不足のシナリオが生じる可能性。
- IP アドレスプールが使い切られる。
- リソースのオーバーコミット、およびこれによるアプリケーションのパフォーマンスの低下。
単一コンテナーを保持する Pod は実際には 2 つのコンテナーを使用します。2 つ目のコンテナーは実際のコンテナーの起動前にネットワークを設定します。その結果、10 の Pod を実行しているノードでは、実際には 20 のコンテナーが実行されていることになります。
podsPerCore
パラメーターは、ノードのプロセッサーコア数に基づいてノードが実行できる Pod 数を制限します。たとえば、4 プロセッサーコアを搭載したノードで podsPerCore
が 10
に設定されている場合、このノードで許可される Pod の最大数は 40 になります。
maxPods
パラメーターは、ノードのプロパティーにかかわらず、ノードが実行できる Pod 数を固定値に制限します。
5.4.1. ノードあたりの Pod の最大数の設定
podsPerCore
および maxPods
の 2 つのパラメーターはノードに対してスケジュールできる Pod の最大数を制御します。両方のオプションを使用した場合、より低い値の方がノード上の Pod の数を制限します。
たとえば、podsPerCore
が 4 つのプロセッサーコアを持つノード上で、10
に設定されていると、ノード上で許容される Pod の最大数は 40 になります。
前提条件
設定するノードタイプの静的な
MachineConfigPool
CRD に関連付けられたラベルを取得します。以下のいずれかの手順を実行します。マシン設定プールを表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc describe machineconfigpool <name>
$ oc describe machineconfigpool <name>
以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc describe machineconfigpool worker
$ oc describe machineconfigpool worker
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfigPool metadata: creationTimestamp: 2019-02-08T14:52:39Z generation: 1 labels: custom-kubelet: small-pods
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfigPool metadata: creationTimestamp: 2019-02-08T14:52:39Z generation: 1 labels: custom-kubelet: small-pods
1 - 1
- ラベルが追加されると、
labels
の下に表示されます。
ラベルが存在しない場合は、キー/値のペアを追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc label machineconfigpool worker custom-kubelet=small-pods
$ oc label machineconfigpool worker custom-kubelet=small-pods
手順
設定変更のためのカスタムリソース (CR) を作成します。
max-pods
CR の設定例Copy to Clipboard Copied! Toggle word wrap Toggle overflow apiVersion: machineconfiguration.openshift.io/v1 kind: KubeletConfig metadata: name: set-max-pods spec: machineConfigPoolSelector: matchLabels: custom-kubelet: small-pods kubeletConfig: podsPerCore: 10 maxPods: 250
apiVersion: machineconfiguration.openshift.io/v1 kind: KubeletConfig metadata: name: set-max-pods
1 spec: machineConfigPoolSelector: matchLabels: custom-kubelet: small-pods
2 kubeletConfig: podsPerCore: 10
3 maxPods: 250
4 注記podsPerCore
を0
に設定すると、この制限が無効になります。上記の例では、
podsPerCore
のデフォルト値は10
であり、maxPods
のデフォルト値は250
です。つまり、ノードのコア数が 25 以上でない限り、デフォルトによりpodsPerCore
が制限要素になります。変更が適用されるかどうかを確認するために、
MachineConfigPool
CRD を一覧表示します。変更が Machine Config Controller によって取得されると、UPDATING
列でTrue
と報告されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get machineconfigpools
$ oc get machineconfigpools
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NAME CONFIG UPDATED UPDATING DEGRADED master master-9cc2c72f205e103bb534 False False False worker worker-8cecd1236b33ee3f8a5e False True False
NAME CONFIG UPDATED UPDATING DEGRADED master master-9cc2c72f205e103bb534 False False False worker worker-8cecd1236b33ee3f8a5e False True False
変更が完了すると、
UPDATED
列でTrue
と報告されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get machineconfigpools
$ oc get machineconfigpools
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NAME CONFIG UPDATED UPDATING DEGRADED master master-9cc2c72f205e103bb534 False True False worker worker-8cecd1236b33ee3f8a5e True False False
NAME CONFIG UPDATED UPDATING DEGRADED master master-9cc2c72f205e103bb534 False True False worker worker-8cecd1236b33ee3f8a5e True False False