第5章 ノードにイメージを固定する
イメージレジストリーへの接続が遅く、信頼性が低いと、クラスターの更新やアプリケーションのデプロイなど、イメージのプルを必要とする操作が妨げられる可能性があります。これには、帯域幅が低いクラスター、信頼できるインターネット接続がないクラスター、または非接続環境にあるクラスターが含まれる場合があります。たとえば、クラスターの更新では 100 を超えるイメージのプルが必要になる場合があります。これらのイメージをプルできないと再試行が発生し、更新プロセスが妨げられ、更新が失敗する可能性があります。
これを防ぐ 1 つの方法は、実際に必要になる前に必要なイメージを事前にプルし、それらのイメージを特定のマシン設定プール (MCP) に 固定 することです。これにより、必要なときにノードでイメージが利用できるようになります。固定されたイメージは、より一貫性のある更新を提供できます。これは、メンテナンスウィンドウに更新をスケジュールするときに重要です。
固定されたイメージにより、アプリケーションのデプロイ時にイメージが確実に使用可能になるため、より信頼性の高いデプロイが可能になります。
イメージを固定する で説明されているように、PinnedImageSet
カスタムリソース (CR) を使用して、イメージを特定のノードに固定できます。固定されたイメージは、ノード上の /etc/crio/crio.conf.d/50-pinned-images
ファイルに保存されます。ファイルの内容は次の例のようになります。
[crio] [crio.image] pinned_images = ["quay.io/openshift-release-dev/ocp-release@sha256:4198606580b69c8335ad7ae531c3a74e51aee25db5faaf368234e8c8dae5cbea", "quay.io/openshift-release-dev/ocp-release@sha256:513cf1028aa1a021fa73d0601427a0fbcf6d212b88aaf9d76d4e4841a061e44e", "quay.io/openshift-release-dev/ocp-release@sha256:61eae2d261e54d1b8a0e05f6b5326228b00468364563745eed88460af04f909b"]
[crio]
[crio.image]
pinned_images = ["quay.io/openshift-release-dev/ocp-release@sha256:4198606580b69c8335ad7ae531c3a74e51aee25db5faaf368234e8c8dae5cbea", "quay.io/openshift-release-dev/ocp-release@sha256:513cf1028aa1a021fa73d0601427a0fbcf6d212b88aaf9d76d4e4841a061e44e", "quay.io/openshift-release-dev/ocp-release@sha256:61eae2d261e54d1b8a0e05f6b5326228b00468364563745eed88460af04f909b"]
固定されたイメージのもう 1 つの利点は、イメージのガベージコレクションによって固定されたイメージが削除されないことです。
イメージをプルする前に、Machine Config Operator (MCO) は、影響を受ける各ノードに十分なストレージスペースがあることを確認します。ノードに十分なスペースがある場合、MCO は固定されたイメージファイルを作成し、イメージをプルして、CRI-O をリロードします。十分なスペースがない場合、MCO はイメージをプルせず、エラーメッセージを表示します。
5.1. イメージを固定する リンクのコピーリンクがクリップボードにコピーされました!
PinnedImageSet
カスタムリソース (CR) を使用して、イメージをノードに固定できます。固定イメージセットは、事前にロードするイメージのリストと、イメージを固定するマシン設定プールを定義します。
イメージは、ノード上の /etc/crio/crio.conf.d/50-pinned-images
ファイルに保存されます。
手順
次の例のように、
PinnedImageSet
オブジェクトを定義する YAML ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
labels
- オプションのノードセレクターを指定して、イメージを固定するマシン設定プールを指定します。指定しない場合は、イメージはクラスター内のすべてのノードに固定されます。
pinnedImages
- 事前に読み込む 1 つ以上のイメージのリストを指定します。
次のコマンドを実行して、
PinnedImageSet
オブジェクトを作成します。oc create -f <file_name>.yaml
$ oc create -f <file_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、影響を受けるマシン設定プールのマシン設定ノードオブジェクトに固定イメージセットが報告されていることを確認します。
oc describe machineconfignode <machine_config_node_name>
$ oc describe machineconfignode <machine_config_node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
oc describe machineconfignode ci-ln-25hlkvt-72292-jrs48-worker-a-2bdj
$ oc describe machineconfignode ci-ln-25hlkvt-72292-jrs48-worker-a-2bdj
Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージのプルと固定が成功した場合の出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、
MachineConfigNode
オブジェクトのステータスフィールドに、失敗またはエラーメッセージが表示されます。イメージのプルと固定が失敗した場合の出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 固定されたイメージファイルが作成され、正しいイメージが含まれていることを確認します。
次のコマンドを実行して、ノードのデバッグセッションを開始します。
oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、デバッグシェル内のルートディレクトリーとして
/host
を設定します。chroot /host
sh-5.1# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、固定されたイメージファイルの内容を確認します。
cat /etc/crio/crio.conf.d/50-pinned-images
$ cat /etc/crio/crio.conf.d/50-pinned-images
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
[crio] [crio.image] pinned_images = ["quay.io/openshift-release-dev/ocp-release@sha256:4198606580b69c8335ad7ae531c3a74e51aee25db5faaf368234e8c8dae5cbea", "quay.io/openshift-release-dev/ocp-release@sha256:513cf1028aa1a021fa73d0601427a0fbcf6d212b88aaf9d76d4e4841a061e44e", "quay.io/openshift-release-dev/ocp-release@sha256:61eae2d261e54d1b8a0e05f6b5326228b00468364563745eed88460af04f909b"]
[crio] [crio.image] pinned_images = ["quay.io/openshift-release-dev/ocp-release@sha256:4198606580b69c8335ad7ae531c3a74e51aee25db5faaf368234e8c8dae5cbea", "quay.io/openshift-release-dev/ocp-release@sha256:513cf1028aa1a021fa73d0601427a0fbcf6d212b88aaf9d76d4e4841a061e44e", "quay.io/openshift-release-dev/ocp-release@sha256:61eae2d261e54d1b8a0e05f6b5326228b00468364563745eed88460af04f909b"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
pinnedImages
- 影響を受けるマシン設定プールにプルされ、固定されたイメージを指定します。