6.3.7. コンテナーイメージの並列プルの設定について


帯域幅の問題を制御するために、同時にプルできるワークロードイメージの数を設定できます。

デフォルトでは、クラスターはイメージを並列でプルするため、複数のワークロードが同時にイメージをプルできます。複数のイメージを並列でプルすると、ワークロードが互いを待たずに必要なイメージをプルできるため、ワークロードの起動時間が改善されます。ただし、同時にプルするイメージが多すぎると、ネットワーク帯域幅が過剰に使用され、クラスター全体で遅延の問題が発生する可能性があります。

デフォルト設定では、無制限の同時イメージプルが許可されます。ただし、並列でプルできるイメージの最大数を設定できます。イメージの逐次プルを強制することもできます。逐次プルの場合、一度にプルできるイメージは 1 つだけです。

同時にプルできるイメージの数を制御するには、kubelet 設定を使用して maxParallelImagePulls を設定し、制限を指定します。この制限を超える追加のイメージプルは、現在のいずれかのプルが完了するまで保留されます。

イメージの逐次プルを強制するには、kubelet 設定を使用して serializeImagePulls フィールドを true に設定します。

6.3.7.1. コンテナーイメージの並列プルの設定

kubelet 設定を使用すると、ワークロードで同時にプルできるイメージの数を制御できます。プルできるイメージの最大数を設定することも、イメージを 1 つずつプルするようワークロードに強制することもできます。

前提条件

  • OpenShift Container Platform クラスターが実行中である。
  • 管理者権限を持つユーザーとしてクラスターにログインしている。

手順

  1. 次のようなコマンドを実行して、並列プルを設定するマシン設定プールにカスタムラベルを適用します。

    $ oc label machineconfigpool <mcp_name> parallel-pulls=set
  2. イメージの並列プルを設定するためのカスタムリソース (CR) を作成します。

    apiVersion: machineconfiguration.openshift.io/v1
    kind: KubeletConfig
    metadata:
      name: parallel-image-pulls
    # ...
    spec:
      machineConfigPoolSelector:
        matchLabels:
          parallel-pulls: set
      kubeletConfig:
        serializeImagePulls: false
        maxParallelImagePulls: 3
    # ...

    各項目の説明:

    serializeImagePulls
    関連付けられたマシン設定プール内のノードに対して、並列プルが有効になっているかどうかを指定します。イメージの並列プルを有効にするには false に設定します。イメージの逐次プルを強制するには true に設定します。デフォルトは false です。
    maxParallelImagePulls
    同時に取得できるイメージの最大数を指定します。数値を入力するか、無制限に指定するには nil に設定します。SerializeImagePullstrue の場合、このフィールドは設定できません。デフォルトは nil です。
  3. 次のようなコマンドを実行して、新しいマシン設定を作成します。

    $ oc create -f <file_name>.yaml

検証

  1. 次のコマンドを実行して、マシン設定をチェックし、新しい設定が追加されたことを確認します。

    $ oc get MachineConfig
    NAME                                                GENERATEDBYCONTROLLER                        IGNITIONVERSION   AGE
    00-master                                           70025364a114fc3067b2e82ce47fdb0149630e4b     3.5.0             133m
    00-worker                                           70025364a114fc3067b2e82ce47fdb0149630e4b     3.5.0             133m
    # ...
    99-parallel-generated-kubelet                       70025364a114fc3067b2e82ce47fdb0149630e4b     3.5.0             15s
    # ...
    rendered-parallel-c634a80f644740974ceb40c054c79e50  70025364a114fc3067b2e82ce47fdb0149630e4b     3.5.0             10s

    各項目の説明:

    99-parallel-generated-kubelet
    新しいマシン設定を指定します。この例では、マシン設定は parallel カスタムマシン設定プール用です。
    rendered-parallel-<sha_numnber>
    レンダリングされた新しいマシン設定を指定します。この例では、マシン設定は parallel カスタムマシン設定プール用です。
  2. 次のコマンドを実行して、parallel マシン設定プール内のノードが更新されていることを確認します。

    $ oc get machineconfigpool
    NAME       CONFIG                                               UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
    parallel   rendered-parallel-3904f0e69130d125b3b5ef0e981b1ce1   False     True       False      1              0                   0                     0                      65m
    master     rendered-master-7536834c197384f3734c348c1d957c18     True      False      False      3              3                   3                     0                      140m
    worker     rendered-worker-c634a80f644740974ceb40c054c79e50     True      False      False      2              2                   2                     0                      140m
  3. ノードが更新されたら、並列プルの最大値が設定されていることを確認します。

    1. 次のようなコマンドを実行して、ノードへの oc debug セッションを開きます。

      $ oc debug node/<node_name>
    2. 次のコマンドを実行して、デバッグシェル内のルートディレクトリーとして /host を設定します。

      sh-5.1# chroot /host
    3. 次のコマンドを実行して、kubelet.conf ファイルを調べます。

      sh-5.1# cat /etc/kubernetes/kubelet.conf | grep -i maxParallelImagePulls
      maxParallelImagePulls: 3
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る