6.3.5. ノード上でのスワップメモリー使用の許可
クラスターノード上のワークロードにスワップメモリーの使用を許可できます。
ノード上のスワップメモリーのサポートは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
スワップメモリーのサポートを利用できるのは、Container-native Virtualization (CNV) のユーザーまたはユースケースだけです。
ノード上でスワップメモリーの使用を許可するには、kubeletconfig カスタムリソース (CR) を作成し、failSwapOn パラメーターを false に設定します。
必要に応じて、swapBehavior パラメーターを次のいずれかの値に設定することで、対象ノード上の OpenShift Container Platform ワークロードによるスワップメモリーの使用を制御できます。
-
NoSwapは、OpenShift Container Platform ワークロードによるスワップメモリーの使用を防止します。 -
LimitedSwapは、Burstable QoS クラスに該当する OpenShift Container Platform ワークロードにスワップメモリーの使用を許可します。
swapBehavior 設定に関係なく、failSwapOn パラメーターが false の場合、OpenShift Container Platform によって管理されていない対象ノード上のワークロードは、引き続きスワップメモリーを使用できます。
この設定がないと、スワップメモリーが存在する場合に kubelet が起動しません。そのため、ノードでスワップメモリーを有効にする前に、OpenShift Container Platform でスワップメモリーを許可する必要があります。ノードにスワップメモリーが存在しない場合、OpenShift Container Platform でスワップメモリーを有効にしても効果はありません。
スワップメモリーを使用すると、ワークロードのパフォーマンスとリソース不足の処理に悪影響が及ぶ可能性があります。コントロールプレーンノードでスワップメモリーを有効化しないでください。
前提条件
- バージョン 4.10 以降を使用する OpenShift Container Platform クラスターが実行中である。
- クラスターが cgroup v2 を使用するように設定されている。スワップメモリーは、cgroup v1 を使用するクラスターのノードではサポートされていません。
- 管理者権限を持つユーザーとしてクラスターにログインしている。
クラスターで
TechPreviewNoUpgrade機能セットを有効にしている (ノードクラスターの操作 フィーチャーゲートを使用した機能の有効化 を参照)。 注記TechPreviewNoUpgrade機能セットを有効にすると元に戻すことができなくなり、マイナーバージョンの更新ができなくなります。これらの機能セットは、実稼働クラスターでは推奨されません。
手順
スワップメモリーを許可するマシン設定プールにカスタムラベルを適用します。
$ oc label machineconfigpool worker kubelet-swap=enabledカスタムリソース (CR) を作成し、スワップ設定を有効にして設定します。
apiVersion: machineconfiguration.openshift.io/v1 kind: KubeletConfig metadata: name: swap-config spec: machineConfigPoolSelector: matchLabels: kubelet-swap: enabled kubeletConfig: failSwapOn: false memorySwap: swapBehavior: LimitedSwap #...ここでは、以下のようになります。
failSwapOn-
falseに設定すると、関連付けられたノードでスワップメモリーを使用できるようになります。スワップメモリーの使用を無効にするには、trueに設定します。 swapBehaviorオプション: OpenShift Container Platform Pod のスワップメモリーの動作を指定します。
-
NoSwap: OpenShift Container Platform Pod はスワップを使用できません。これがデフォルトです。 -
LimitedSwap: Burstable QoS クラスの OpenShift Container Platform Pod にのみスワップの使用を許可します。
-
-
swapaccount=1カーネル引数を設定してノード上のスワップメモリーを有効にし、必要に応じてスワップメモリーを設定します。