6.11.3. コンテナーおよびイメージのガベージコレクションの設定


管理者は、kubeletConfig オブジェクトを各マシン設定プール用に作成し、OpenShift Container Platform によるガベージコレクションの実行方法を設定できます。ガベージコレクションを実行することで、ノードが効率的に動作していることを確認できます。

注記

OpenShift Container Platform は、各マシン設定プールの kubeletConfig オブジェクトを 1 つのみサポートします。

次のいずれかの組み合わせを設定できます。

  • コンテナーのソフト退避
  • コンテナーのハード退避
  • イメージの退避

コンテナーのガベージコレクションは終了したコンテナーを削除します。イメージガベージコレクションは、実行中の Pod によって参照されていないイメージを削除します。

前提条件

  1. 次のコマンドを入力して、設定するノードタイプの静的な MachineConfigPool CRD に関連付けられたラベルを取得します。

    $ oc edit machineconfigpool <name>

    以下に例を示します。

    $ oc edit machineconfigpool worker

    出力例

    apiVersion: machineconfiguration.openshift.io/v1
    kind: MachineConfigPool
    metadata:
      creationTimestamp: "2022-11-16T15:34:25Z"
      generation: 4
      labels:
        pools.operator.machineconfiguration.openshift.io/worker: ""
      name: worker
    #...

    各項目の説明:

    metadata.labels

    kubelet の設定で使用するラベルを指定します。

    ヒント

    ラベルが存在しない場合は、次のようなキー/値のペアを追加します。

    $ oc label machineconfigpool worker custom-kubelet=small-pods

手順

  1. 設定変更のためのカスタムリソース (CR) を作成します。

    重要

    ファイルシステムが 1 つの場合、または /var/lib/kubelet/var/lib/containers/ が同じファイルシステムにある場合、最も大きな値の設定が満たされると退避がトリガーされます。ファイルシステムは退避をトリガーします。

    コンテナーのガベージコレクション CR のサンプル設定

    apiVersion: machineconfiguration.openshift.io/v1
    kind: KubeletConfig
    metadata:
      name: worker-kubeconfig
    spec:
      machineConfigPoolSelector:
        matchLabels:
          pools.operator.machineconfiguration.openshift.io/worker: ""
      kubeletConfig:
        evictionSoft:
          memory.available: "500Mi"
          nodefs.available: "10%"
          nodefs.inodesFree: "5%"
          imagefs.available: "15%"
          imagefs.inodesFree: "10%"
        evictionSoftGracePeriod:
          memory.available: "1m30s"
          nodefs.available: "1m30s"
          nodefs.inodesFree: "1m30s"
          imagefs.available: "1m30s"
          imagefs.inodesFree: "1m30s"
        evictionHard:
          memory.available: "200Mi"
          nodefs.available: "5%"
          nodefs.inodesFree: "4%"
          imagefs.available: "10%"
          imagefs.inodesFree: "5%"
        evictionPressureTransitionPeriod: 3m
        imageMinimumGCAge: 5m
        imageGCHighThresholdPercent: 80
        imageGCLowThresholdPercent: 75
    #...

    各項目の説明:

    metadata.name
    オブジェクトの名前を指定します。
    spec.machineConfigPoolSelector.matchLabels
    マシン設定プールからラベルを指定します。
    spec.kubeletConfig.evictionSoft
    コンテナーのガベージコレクションにおけるソフトエビクションと退避のしきい値を指定します。
    spec.kubeletConfig.evictionSoftGracePeriod
    コンテナーの段階的な退避のための猶予期間を規定する。このパラメーターは、eviction-hard には適用されません。
    spec.kubeletConfig.evictionHard
    コンテナーのガベージコレクションにおけるソフトエビクションと退避のしきい値を指定します。evictionHard の場合、これらのパラメーターをすべて指定する必要があります。すべてのパラメーターを指定しないと、指定したパラメーターのみが適用され、ガベージコレクションが正しく機能しません。
    spec.kubeletConfig.evictionPressureTransitionPeriod
    コンテナーごみ収集における退避圧力状態から脱するまでの待機時間を指定します。evictionPressureTransitionPeriod パラメーターを 0 に設定すると、デフォルト値の 5 分が設定されます。
    spec.kubeletConfig.imageMinimumGCAge
    未使用イメージがガベージコレクションによって削除されるまでの最小経過時間を指定します。
    spec.kubeletConfig.imageGCHighThresholdPercent
    イメージのガベージコレクションがトリガーされるディスク使用率の割合を整数で指定します。この値は imageGCLowThresholdPercent 値より大きくする必要があります。
    spec.kubeletConfig.imageGCHighThresholdPercent
    イメージのガベージコレクションが解放を試みるディスク使用率の割合を整数で指定します。この値は、imageGCHighThresholdPercent 値より小さくする必要があります。
  2. 以下のコマンドを実行して CR を作成します。

    $ oc create -f <file_name>.yaml

    以下に例を示します。

    $ oc create -f gc-container.yaml

    出力例

    kubeletconfig.machineconfiguration.openshift.io/gc-container created

検証

  • 次のコマンドを入力して、ガベージコレクションがアクティブであることを確認します。カスタムリソースで指定した Machine Config Pool では、変更が完全に実行されるまで UPDATING が 'true` と表示されます。

    $ oc get machineconfigpool

    出力例

    NAME     CONFIG                                   UPDATED   UPDATING
    master   rendered-master-546383f80705bd5aeaba93   True      False
    worker   rendered-worker-b4c51bb33ccaae6fc4a6a5   False     True

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る