6.4. OpenShift Update Service を使用しない非接続環境でのクラスターの更新
以下の手順を使用して、OpenShift Update Service にアクセスせずに非接続環境でクラスターを更新します。
6.4.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
-
ocコマンドツールインターフェイス (CLI) ツールがインストールされている。 - OpenShift Container Platform イメージのミラーリング で説明されているように、更新用のコンテナーイメージを使用してローカルのコンテナーイメージレジストリーをプロビジョニングしている。
-
admin権限を持つユーザーとしてクラスターにアクセスできる。RBAC の使用によるパーミッションの定義および適用 を参照してください。 - 更新が失敗し、クラスターを以前の状態に復元する 必要がある場合に備えて、最新の etcd バックアップ を用意している。
- Operator Lifecycle Manager (OLM) を通じて以前にインストールされたすべての Operator を、ターゲットリリースと互換性のあるバージョンに更新している。Operator を更新することで、デフォルトの OperatorHub カタログが、クラスターの更新時に現行のマイナーバージョンから次のマイナーバージョンに切り替わる際、確実に有効な更新パスがあるようにします。インストール済み Operator の更新 を参照し、互換性を確認する方法の詳細を確認して、インストール済みの Operator を必要に応じて更新してください。
- すべてのマシン設定プール (MCP) が実行中であり、一時停止していないことを確認する。一時停止した MCP に関連付けられたノードは、更新プロセス中にスキップされます。カナリアロールアウト更新ストラテジーを実行している場合は、MCP を一時停止できます。
- クラスターが手動で維持された認証情報を使用している場合は、新しいリリース用にクラウドプロバイダーリソースを更新します。これがクラスターの要件かどうかを判断する方法などの詳細は、手動で維持された認証情報でクラスターを更新する準備 を参照してください。
-
Operator を実行している場合、または Pod 中断バジェットを使用してアプリケーションを設定している場合は、更新プロセス中に中断が発生する可能性があります。
PodDisruptionBudgetでminAvailableが 1 に設定されている場合、保留中のマシン設定を適用するために、ノードの drain (Pod の退避) が実行され、退避プロセスがブロックされる可能性があります。複数のノードが再起動された場合に、すべての Pod が 1 つのノードでのみ実行される可能性があり、PodDisruptionBudgetフィールドはノードの drain (Pod の退避) の実行を防ぐことができます。
Operator を実行している場合、または Pod 中断バジェットを使用してアプリケーションを設定している場合は、更新プロセス中に中断が発生する可能性があります。PodDisruptionBudget で minAvailable が 1 に設定されている場合、保留中のマシン設定を適用するために、ノードの drain (Pod の退避) が実行され、退避プロセスがブロックされる可能性があります。複数のノードが再起動された場合に、すべての Pod が 1 つのノードでのみ実行される可能性があり、PodDisruptionBudget フィールドはノードの drain (Pod の退避) の実行を防ぐことができます。
6.4.2. MachineHealthCheck リソースの一時停止 リンクのコピーリンクがクリップボードにコピーされました!
更新プロセスで、クラスター内のノードが一時的に利用できなくなる可能性があります。ワーカーノードの場合、MachineHealthCheck リソースにより、このようなノードは正常ではないと識別され、それらが再起動される場合があります。このようなノードの再起動を回避するには、クラスターを更新する前にすべての MachineHealthCheck リソースを一時停止します。
一部の MachineHealthCheck リソースは一時停止する必要がない場合があります。MachineHealthCheck リソースが回復不可能な条件に依存している場合は、その MHC を一時停止する必要はありません。
前提条件
-
OpenShift CLI (
oc) がインストールされている。
手順
一時停止する利用可能なすべての
MachineHealthCheckリソースをリスト表示するには、以下のコマンドを実行します。oc get machinehealthcheck -n openshift-machine-api
$ oc get machinehealthcheck -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow マシンヘルスチェックを一時停止するには、
cluster.x-k8s.io/paused=""アノテーションをMachineHealthCheckリソースに追加します。以下のコマンドを実行します。oc -n openshift-machine-api annotate mhc <mhc-name> cluster.x-k8s.io/paused=""
$ oc -n openshift-machine-api annotate mhc <mhc-name> cluster.x-k8s.io/paused=""Copy to Clipboard Copied! Toggle word wrap Toggle overflow アノテーション付きの
MachineHealthCheckリソースは以下の YAML ファイルのようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要クラスターの更新後にマシンヘルスチェックを再開します。チェックを再開するには、以下のコマンドを実行して
MachineHealthCheckリソースから pause アノテーションを削除します。oc -n openshift-machine-api annotate mhc <mhc-name> cluster.x-k8s.io/paused-
$ oc -n openshift-machine-api annotate mhc <mhc-name> cluster.x-k8s.io/paused-Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.4.3. リリースイメージダイジェストの取得 リンクのコピーリンクがクリップボードにコピーされました!
--to-image オプションを指定して oc adm upgrade コマンドを使用することで非接続環境でクラスターを更新する場合、ターゲットリリースイメージに対応する sha256 ダイジェストを参照する必要があります。
手順
インターネットに接続されているデバイスで、以下のコマンドを実行します。
oc adm release info -o 'jsonpath={.digest}{"\n"}' quay.io/openshift-release-dev/ocp-release:${OCP_RELEASE_VERSION}-${ARCHITECTURE}$ oc adm release info -o 'jsonpath={.digest}{"\n"}' quay.io/openshift-release-dev/ocp-release:${OCP_RELEASE_VERSION}-${ARCHITECTURE}Copy to Clipboard Copied! Toggle word wrap Toggle overflow {OCP_RELEASE_VERSION}では、更新する OpenShift Container Platform のバージョン (例:4.10.16) を指定します。{ARCHITECTURE}では、クラスターアーキテクチャー (例:x86_64、aarch64、s390x、ppc64le) を指定します。出力例
sha256:a8bfba3b6dddd1a2fbbead7dac65fe4fb8335089e4e7cae327f3bad334add31d
sha256:a8bfba3b6dddd1a2fbbead7dac65fe4fb8335089e4e7cae327f3bad334add31dCopy to Clipboard Copied! Toggle word wrap Toggle overflow - クラスターの更新時に使用する sha256 ダイジェストをコピーします。
6.4.4. 切断されたクラスターの更新 リンクのコピーリンクがクリップボードにコピーされました!
切断されたクラスターを、リリースイメージをダウンロードした OpenShift Container Platform バージョンに更新します。
ローカルの OpenShift Update Service がある場合は、この手順ではなく、接続された Web コンソールまたは CLI の手順を使用して更新できます。
前提条件
- 新規リリースのイメージをレジストリーに対してミラーリングしている。
新規リリースのリリースイメージ署名 ConfigMap をクラスターに適用している。
注記リリースイメージ署名 config map を使用すると、Cluster Version Operator (CVO) は、実際のイメージ署名が想定された署名と一致するか検証し、リリースイメージの整合性を確保できます。
- ターゲットリリースイメージの sha256 ダイジェストを取得している。
-
OpenShift CLI (
oc) がインストールされている。 -
すべての
MachineHealthCheckリソースを一時停止している。
手順
クラスターを更新します。
oc adm upgrade --allow-explicit-upgrade --to-image <defined_registry>/<defined_repository>@<digest>
$ oc adm upgrade --allow-explicit-upgrade --to-image <defined_registry>/<defined_repository>@<digest>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
<defined_registry>- イメージのミラーリング先であるミラーレジストリーの名前を指定します。
<defined_repository>- ミラーレジストリーで使用するイメージリポジトリーの名前を指定します。
<digest>-
ターゲットリリースイメージの sha256 ダイジェストを指定します (例:
sha256:81154f5c03294534e1eaf0319bef7a601134f891689ccede5d705ef659aa8c92)。
注記- ミラーレジストリーとリポジトリー名の定義を確認するには、「OpenShift Container Platform イメージのミラーリング」を参照してください。
-
ImageContentSourcePolicyまたはImageDigestMirrorSetを使用した場合は、定義した名前の代わりに標準的なレジストリー名とリポジトリー名を使用できます。標準的なレジストリー名はquay.io、標準的なリポジトリー名はopenshift-release-dev/ocp-releaseです。 -
ImageContentSourcePolicy、ImageDigestMirrorSet、またはImageTagMirrorSetオブジェクトを持つクラスターのグローバルプルシークレットのみを設定できます。プロジェクトにプルシークレットを追加することはできません。
6.4.5. イメージレジストリーリポジトリーのミラーリングについて リンクのコピーリンクがクリップボードにコピーされました!
コンテナーレジストリーのリポジトリーのミラーリングを設定すると、次のタスクを実行できます。
- ソースイメージのレジストリーのリポジトリーからイメージをプルする要求をリダイレクトするように OpenShift Container Platform クラスターを設定し、これをミラーリングされたイメージレジストリーのリポジトリーで解決できるようにします。
- 各ターゲットリポジトリーに対して複数のミラーリングされたリポジトリーを特定し、1 つのミラーがダウンした場合に別のミラーを使用できるようにします。
OpenShift Container Platform のリポジトリーミラーリングには、以下の属性が含まれます。
- イメージプルには、レジストリーのダウンタイムに対する回復性があります。
-
切断された環境のクラスターは、
quay.ioなどの重要な場所からイメージをプルし、会社のファイアウォールの背後にあるレジストリーに要求されたイメージを提供することができます。 - イメージのプル要求時にレジストリーへの接続が特定の順序で試行され、通常は永続レジストリーが最後に試行されます。
-
入力したミラー情報は、OpenShift Container Platform クラスターの全ノードの
/etc/containers/registries.confファイルに追加されます。 - ノードがソースリポジトリーからイメージの要求を行うと、要求されたコンテンツを見つけるまで、ミラーリングされた各リポジトリーに対する接続を順番に試行します。すべてのミラーで障害が発生した場合、クラスターはソースリポジトリーに対して試行する。成功すると、イメージはノードにプルされる。
次の方法でリポジトリーミラーリングを設定できます。
OpenShift Container Platform のインストール時:
OpenShift Container Platform に必要なコンテナーイメージをプルし、それらのイメージを会社のファイアウォールの背後に配置することで、非接続環境にあるデータセンターに OpenShift Container Platform をインストールできます。
OpenShift Container Platform の新規インストール後:
OpenShift Container Platform のインストール中にミラーリングを設定しなかった場合は、以下のカスタムリソース (CR) オブジェクトのいずれかを使用して、インストール後に設定できます。
-
ImageDigestMirrorSet(IDMS)。このオブジェクトを使用すると、ダイジェスト仕様を使用して、ミラーリングされたレジストリーからイメージを取得できます。IDMS CR を使用すると、イメージのプルが失敗した場合に、ソースレジストリーからのプルの継続的な試行を許可または停止するフォールバックポリシーを設定できます。 -
ImageTagMirrorSet(ITMS)。このオブジェクトを使用すると、イメージタグを使用して、ミラーリングされたレジストリーからイメージをプルできます。ITMS CR を使用すると、イメージのプルが失敗した場合に、ソースレジストリーからのプルの継続的な試行を許可または停止するフォールバックポリシーを設定できます。 ImageContentSourcePolicy(ICSP)。このオブジェクトを使用すると、ダイジェスト仕様を使用して、ミラーリングされたレジストリーからイメージを取得できます。ミラーが機能しない場合、ICSP CR は必ずソースレジストリーにフォールバックします。重要ImageContentSourcePolicy(ICSP) オブジェクトを使用してリポジトリーミラーリングを設定することは、非推奨の機能です。非推奨の機能は OpenShift Container Platform に引き続き含まれており、サポートが継続されます。これは今後のリリースで削除されるため、新しいデプロイメントには推奨されません。ImageContentSourcePolicyオブジェクトの作成に使用した既存の YAML ファイルがある場合は、oc adm migrate icspコマンドを使用して、それらのファイルをImageDigestMirrorSetYAML ファイルに変換できます。詳細については、イメージレジストリーリポジトリーミラーリング用の ImageContentSourcePolicy (ICSP)ファイルの変換を参照してください。
-
これらのカスタムリソースオブジェクトはそれぞれ、次の情報を識別します。
- ミラーリングするコンテナーイメージリポジトリーのソース
- コンテンツを提供する各ミラーリポジトリーの個別のエントリー
次のアクションと、それがノードの drain 動作にどのように影響するかに注意してください。
- IDMS または ICSP CR オブジェクトを作成すると、MCO はノードの drain またはリブートを実行しません。
- ITMS CR オブジェクトを作成すると、MCO はノードの drain とリブートを実行します。
- ITMS、IDMS、または ICSP CR オブジェクトを削除すると、MCO はノードの drain とリブートを実行します。
ITMS、IDMS、または ICSP CR オブジェクトを変更すると、MCO はノードの drain とリブートを実行します。
重要MCO が以下の変更のいずれかを検出すると、ノードの drain (Pod の退避) の実行または再起動を行わずに更新を適用します。
-
マシン設定の
spec.config.passwd.users.sshAuthorizedKeysパラメーターの SSH キーの変更。 -
openshift-confignamespace でのグローバルプルシークレットまたはプルシークレットへの変更。 -
Kubernetes API Server Operator による
/etc/kubernetes/kubelet-ca.crt認証局 (CA) の自動ローテーション。
-
マシン設定の
MCO は、
/etc/containers/registries.confファイルへの変更 (ImageDigestMirrorSet、ImageTagMirrorSet、またはImageContentSourcePolicyオブジェクトの編集など) を検出すると、対応するノードの drain (Pod の退避) を実行し、変更を適用して、ノードをスケジューリング対象に戻します。次の変更ではノードの drain (Pod の退避) の実行は発生しません。-
pull-from-mirror = "digest-only"パラメーターがミラーごとに設定されたレジストリーの追加。 -
pull-from-mirror = "digest-only"パラメーターがレジストリーに設定されたミラーの追加。 -
unqualified-search-registriesへのアイテムの追加。
-
新規クラスターの場合、必要に応じて IDMS、ITMS、および ICSP CR オブジェクトを使用できます。ただし、IDMS と ITMS の使用を推奨します。
クラスターをアップグレードした場合、既存の ICSP オブジェクトは安定を維持し、IDMS オブジェクトと ICSP オブジェクトの両方がサポートされるようになります。ICSP オブジェクトを使用するワークロードは引き続き想定どおりに機能します。一方、IDMS CR で導入されたフォールバックポリシーを利用する場合は、oc adm migrate icsp コマンドを使用して、現在のワークロードを IDMS オブジェクトに移行できます。これは、後述の イメージレジストリーリポジトリーミラーリング用の ImageContentSourcePolicy (ICSP) ファイルの変換 セクションで説明しています。IDMS オブジェクトへの移行に、クラスターの再起動は必要ありません。
クラスターで ImageDigestMirrorSet、ImageTagMirrorSet、または ImageContentSourcePolicy オブジェクトを使用してリポジトリーミラーリングを設定する場合、ミラーリングされたレジストリーにはグローバルプルシークレットのみを使用できます。プロジェクトにプルシークレットを追加することはできません。
6.4.5.1. イメージレジストリーのリポジトリーミラーリングの設定 リンクのコピーリンクがクリップボードにコピーされました!
インストール後のミラー設定カスタムリソース (CR) を作成して、ソースイメージレジストリーからミラーリングされたイメージレジストリーにイメージプル要求をリダイレクトできます。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。
手順
ミラーリングされたリポジトリーを設定します。以下のいずれかを実行します。
Red Hat Quay でミラーリングされたリポジトリーのセットアップRed Hat Quay を使用して、あるリポジトリーから別のリポジトリーにイメージをコピーでき、それらのリポジトリーを時間の経過とともに繰り返し同期することもできます。
skopeoなどのツールを使用して、ソースリポジトリーからミラーリングされたリポジトリーにイメージを手動でコピーします。たとえば、{op-system-base-full システム} に skopeo RPM パッケージをインストールした後、以下の例に示すように
skopeoコマンドを使用します。skopeo copy --all \ docker://registry.access.redhat.com/ubi9/ubi-minimal:latest@sha256:5cf... \ docker://example.io/example/ubi-minimal
$ skopeo copy --all \ docker://registry.access.redhat.com/ubi9/ubi-minimal:latest@sha256:5cf... \ docker://example.io/example/ubi-minimalCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
example.ioという名前のコンテナーイメージレジストリーと、exampleという名前のイメージリポジトリーがあります。ubi9/ubi-minimalイメージをregistry.access.redhat.comからexample.ioにコピーします。ミラーリングされたレジストリーを作成した後、OpenShift Container Platform クラスターを設定して、ソースリポジトリーに送信された要求をミラーリングされたリポジトリーにリダイレクトできます。
次の例のいずれかを使用して、インストール後のミラー設定のカスタムリソース(CR)を作成します。
必要に応じて
ImageDigestMirrorSetまたはImageTagMirrorSetCR を作成し、ソースとミラーを独自のレジストリーとリポジトリーのペアとイメージに置き換えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ImageContentSourcePolicyカスタムリソースを作成し、ソースとミラーを独自のレジストリーとリポジトリーのペアとイメージに置き換えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
- mirror.registry.com:443/ocp/release- ミラーイメージレジストリーおよびリポジトリーの名前を指定します。
ソース:quay.io/openshift-release-dev/ocp-release- ミラーリングされるコンテンツが含まれるオンラインレジストリーおよびリポジトリーを指定します。
次のコマンドを実行して、新しいオブジェクトを作成します。
oc create -f registryrepomirror.yaml
$ oc create -f registryrepomirror.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトの作成後、Machine Config Operator (MCO) は
ImageTagMirrorSetオブジェクトのみのノードの drain (Pod の退避) を実行します。MCO は、ImageDigestMirrorSetオブジェクトとImageContentSourcePolicyオブジェクトのノードの drain (Pod の退避) を実行しません。ミラーリングされた設定が適用されていることを確認するには、ノードのいずれかで以下を実行します。
ノードの一覧を表示します。
oc get node
$ oc get nodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デバッグプロセスを開始し、ノードにアクセスします。
oc debug node/ip-10-0-147-35.ec2.internal
$ oc debug node/ip-10-0-147-35.ec2.internalCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Starting pod/ip-10-0-147-35ec2internal-debug ... To use host binaries, run `chroot /host`
Starting pod/ip-10-0-147-35ec2internal-debug ... To use host binaries, run `chroot /host`Copy to Clipboard Copied! Toggle word wrap Toggle overflow ルートディレクトリーを
/hostに変更します。chroot /host
sh-4.2# chroot /hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/containers/registries.confファイルをチェックして、変更が行われたことを確認します。cat /etc/containers/registries.conf
sh-4.2# cat /etc/containers/registries.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次の出力は、インストール後のミラー設定 CR が適用される
registries.confファイルを示しています。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [[registry]].location = "registry.access.redhat.com/ubi9/ubi-minimal":: プル仕様にリストされているリポジトリー。[[registry.mirror]].location = "example.io/example/ubi-minimal":: そのリポジトリーのミラーを示します。[[registry.mirror]].pull-from-mirror = "digest-only":: ミラーからイメージがダイジェスト参照イメージであることを示しています。[[registry]].blocked = true:: このリポジトリーにNeverContactSourceパラメーターが設定されていることを示します。[[registry.mirror]].pull-from-mirror = "tag-only":: ミラーからのイメージプルがタグ参照イメージであることを示します。ソースからノードにイメージをプルし、ミラーによって解決されるかどうかを確認します。
podman pull --log-level=debug registry.access.redhat.com/ubi9/ubi-minimal@sha256:5cf...
sh-4.2# podman pull --log-level=debug registry.access.redhat.com/ubi9/ubi-minimal@sha256:5cf...Copy to Clipboard Copied! Toggle word wrap Toggle overflow
トラブルシューティング
リポジトリーのミラーリング手順が説明どおりに機能しない場合は、リポジトリーミラーリングの仕組みに関する以下の情報を使用して、問題のトラブルシューティングを行うことができます。
- 最初に機能するミラーは、プルされるイメージを指定するために使用されます。
- メインレジストリーは、他のミラーが機能していない場合にのみ使用されます。
-
システムコンテキストによって、
Insecureフラグがフォールバックとして使用されます。 -
/etc/containers/registries.confファイルの形式が最近変更されました。現在のバージョンはバージョン 2 で、TOML 形式です。
6.4.5.2. イメージレジストリーリポジトリーミラーリング用の ImageContentSourcePolicy (ICSP) ファイルの変換 リンクのコピーリンクがクリップボードにコピーされました!
ImageContentSourcePolicy (ICSP) オブジェクトを使用してリポジトリーミラーリングを設定することは、非推奨の機能です。
この機能は引き続き OpenShift Container Platform に含まれており、引き続きサポートされます。ただし、この製品の将来のリリースでは削除される予定であり、新しいデプロイメントには推奨されません。
ICSP オブジェクトは、リポジトリーミラーリングを設定するために ImageDigestMirrorSet および ImageTagMirrorSet オブジェクトに置き換えられています。ImageContentSourcePolicy オブジェクトの作成に使用した既存の YAML ファイルがある場合は、oc adm migrate icsp コマンドを使用して、それらのファイルを ImageDigestMirrorSet YAML ファイルに変換できます。このコマンドは、API を現在のバージョンに更新し、kind 値を ImageDigestMirrorSet に変更し、spec.repositoryDigestMirrors を spec.imageDigestMirrors に変更します。ファイルの残りの部分は変更されません。
移行によって registries.conf ファイルは変更されないため、クラスターを再起動する必要はありません。
ImageDigestMirrorSet または ImageTagMirrorSet オブジェクトの詳細は、前のセクションの「イメージレジストリーリポジトリーミラーリングの設定」を参照してください。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 -
クラスターに
ImageContentSourcePolicyオブジェクトがあることを確認します。
手順
次のコマンドを使用して、1 つ以上の
ImageContentSourcePolicyYAML ファイルをImageDigestMirrorSetYAML ファイルに変換します。oc adm migrate icsp <file_name>.yaml <file_name>.yaml <file_name>.yaml --dest-dir <path_to_the_directory>
$ oc adm migrate icsp <file_name>.yaml <file_name>.yaml <file_name>.yaml --dest-dir <path_to_the_directory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
<file_name>-
ソース
ImageContentSourcePolicyYAML の名前を指定します。複数のファイル名をリストできます。 --dest-dirオプション: 出力
ImageDigestMirrorSetYAML のディレクトリーを指定します。設定されていない場合、ファイルは現在のディレクトリーに書き込まれます。たとえば、次のコマンドは
icsp.yamlおよびicsp-2.yamlファイルを変換し、新しい YAML ファイルをidms-filesディレクトリーに保存します。oc adm migrate icsp icsp.yaml icsp-2.yaml --dest-dir idms-files
$ oc adm migrate icsp icsp.yaml icsp-2.yaml --dest-dir idms-filesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
wrote ImageDigestMirrorSet to idms-files/imagedigestmirrorset_ubi8repo.5911620242173376087.yaml wrote ImageDigestMirrorSet to idms-files/imagedigestmirrorset_ubi9repo.6456931852378115011.yaml
wrote ImageDigestMirrorSet to idms-files/imagedigestmirrorset_ubi8repo.5911620242173376087.yaml wrote ImageDigestMirrorSet to idms-files/imagedigestmirrorset_ubi9repo.6456931852378115011.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して CR オブジェクトを作成します。
oc create -f <path_to_the_directory>/<file-name>.yaml
$ oc create -f <path_to_the_directory>/<file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
<path_to_the_directory>-
--dest-dirフラグを使用した場合は、ディレクトリーへのパスを指定します。 <file_name>-
ImageDigestMirrorSetYAML の名前を指定します。
- IDMS オブジェクトがロールアウトされた後、ICSP オブジェクトを削除します。
6.4.6. クラスターノードの再起動の頻度を減らすために、ミラーイメージカタログの範囲を拡大 リンクのコピーリンクがクリップボードにコピーされました!
リポジトリーレベルまたはより幅広いレジストリーレベルでミラーリングされたイメージカタログのスコープを設定できます。幅広いスコープの ImageContentSourcePolicy リソースにより、リソースの変更に対応するためにノードが再起動する必要のある回数が減ります。
ImageContentSourcePolicy リソースのミラーイメージカタログの範囲を拡大するには、以下の手順を実行します。
前提条件
-
OpenShift Container Platform CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。 - 非接続クラスターで使用するようにミラーリングされたイメージカタログを設定する。
手順
<local_registry>、<pull_spec>、および<pull_secret_file>の値を指定して、次のコマンドを実行します。oc adm catalog mirror <local_registry>/<pull_spec> <local_registry> -a <pull_secret_file> --icsp-scope=registry
$ oc adm catalog mirror <local_registry>/<pull_spec> <local_registry> -a <pull_secret_file> --icsp-scope=registryCopy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
- <local_registry>
-
非接続クラスター (例:
local.registry:5000) 用に設定したローカルレジストリーです。 - <pull_spec>
-
非接続レジストリーで設定されるプル仕様です (例:
redhat/redhat-operator-index:v4.17)。 - <pull_secret_file>
-
.jsonファイル形式のregistry.redhat.ioプルシークレットです。プルシークレットは、Red Hat OpenShift Cluster Manager からダウンロードできます。
oc adm catalog mirrorコマンドは、/redhat-operator-index-manifestsディレクトリーを作成し、imageContentSourcePolicy.yaml、catalogSource.yaml、およびmapping.txtファイルを生成します。新しい
ImageContentSourcePolicyリソースをクラスターに適用します。oc apply -f imageContentSourcePolicy.yaml
$ oc apply -f imageContentSourcePolicy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
oc applyがImageContentSourcePolicyに変更を正常に適用していることを確認します。oc get ImageContentSourcePolicy -o yaml
$ oc get ImageContentSourcePolicy -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ImageContentSourcePolicy リソースを更新した後に、OpenShift Container Platform は新しい設定を各ノードにデプロイし、クラスターはソースリポジトリーへの要求のためにミラーリングされたリポジトリーの使用を開始します。