11.8. コンテナーイメージ事前キャッシュ機能の使用
シングルノード OpenShift クラスターでは、コンテナーイメージレジストリーにアクセスするための帯域幅が制限されている可能性があり、更新が完了する前に、タイムアウトが発生する可能性があります。
更新の時間は TALM によって設定されていません。手動アプリケーションまたは外部自動化により、更新の開始時に ClusterGroupUpgrade
CR を適用できます。
コンテナーイメージの事前キャッシュは、ClusterGroupUpgrade
CR で preCaching
フィールドが true
に設定されている場合に起動します。
TALM は PrecacheSpecValid
条件を使用して、次のようにステータス情報を報告します。
true
事前キャッシュの仕様は有効で一貫性があります。
false
事前キャッシュの仕様は不完全です。
TALM は PrecachingSucceeded
条件を使用して、次のようにステータス情報を報告します。
true
TALM は事前キャッシュプロセスを完了しました。いずれかのクラスターで事前キャッシュが失敗した場合、そのクラスターの更新は失敗しますが、他のすべてのクラスターの更新は続行されます。クラスターの事前キャッシュが失敗した場合は、メッセージで通知されます。
false
1 つ以上のクラスターで事前キャッシュがまだ進行中か、すべてのクラスターで失敗しました。
事前キャッシュプロセスに成功すると、ポリシーの修復を開始できます。修復アクションは、enable
フィールドが true
に設定されている場合に開始されます。クラスターで事前キャッシュエラーが発生した場合、そのクラスターのアップグレードは失敗します。アップグレードプロセスは、事前キャッシュが成功した他のすべてのクラスターに対して続行されます。
事前キャッシュプロセスは、以下のステータスにあります。
NotStarted
これは、すべてのクラスターが
ClusterGroupUpgrade
CR の最初の調整パスで自動的に割り当てられる初期状態です。この状態では、TALM は、以前の不完全な更新から残ったスポーククラスターの事前キャッシュの namespace およびハブビューリソースを削除します。次に TALM は、スポーク前の namespace の新規のManagedClusterView
リソースを作成し、PrecachePreparing
状態の削除を確認します。PreparingToStart
以前の不完全な更新からの残りのリソースを消去すると進行中です。
Starting
キャッシュ前のジョブの前提条件およびジョブが作成されます。
Active
ジョブは "Active" の状態です。
Succeeded
事前キャッシュジョブが成功しました。
PrecacheTimeout
アーティファクトの事前キャッシュは部分的に行われます。
UnrecoverableError
ジョブはゼロ以外の終了コードで終了します。
11.8.1. コンテナーイメージの事前キャッシュフィルターの使用 リンクのコピーリンクがクリップボードにコピーされました!
通常、事前キャッシュ機能は、クラスターが更新に必要とするよりも多くのイメージをダウンロードします。どの事前キャッシュイメージをクラスターにダウンロードするかを制御できます。これにより、ダウンロード時間が短縮され、帯域幅とストレージが節約されます。
次のコマンドを使用して、ダウンロードするすべてのイメージのリストを表示できます。
oc adm release info <ocp-version>
$ oc adm release info <ocp-version>
次の ConfigMap
の例は、excludePrecachePatterns
フィールドを使用してイメージを除外する方法を示しています。
- 1
- TALM は、ここにリストされているパターンのいずれかを含む名前を持つすべてのイメージを除外します。
11.8.2. 事前キャッシュでの ClusterGroupUpgrade CR の作成 リンクのコピーリンクがクリップボードにコピーされました!
シングルノード OpenShift の場合は、事前キャッシュ機能により、更新が開始する前に、必要なコンテナーイメージをスポーククラスターに配置できます。
事前キャッシュの場合、TALM は ClusterGroupUpgrade
CR の spec.remediationStrategy.timeout
値を使用します。事前キャッシュジョブが完了するのに十分な時間を与える timeout
値を設定する必要があります。事前キャッシュの完了後に ClusterGroupUpgrade
CR を有効にすると、timeout
値を更新に適した期間に変更できます。
前提条件
- Topology Aware Lifecycle Manager (TALM) をインストールしている。
- 1 つ以上のマネージドクラスターをプロビジョニングします。
-
cluster-admin
権限を持つユーザーとしてログインしている。
手順
clustergroupupgrades-group-du.yaml
ファイルでpreCaching
フィールドをtrue
に設定してClusterGroupUpgrade
CR の内容を保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
preCaching
フィールドはtrue
に設定されています。これにより、更新を開始する前に TALM がコンテナーイメージをプルできます。
事前キャッシュを開始する場合は、次のコマンドを実行して
ClusterGroupUpgrade
CR を適用します。oc apply -f clustergroupupgrades-group-du.yaml
$ oc apply -f clustergroupupgrades-group-du.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
以下のコマンドを実行して、
ClusterGroupUpgrade
CR がハブクラスターに存在するかどうかを確認します。oc get cgu -A
$ oc get cgu -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAMESPACE NAME AGE STATE DETAILS ztp-group-du-sno du-upgrade-4918 10s InProgress Precaching is required and not done
NAMESPACE NAME AGE STATE DETAILS ztp-group-du-sno du-upgrade-4918 10s InProgress Precaching is required and not done
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- CR が作成されます。
以下のコマンドを実行して、事前キャッシュタスクのステータスを確認します。
oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
$ oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 特定されたクラスターの一覧を表示します。
スポーククラスターで以下のコマンドを実行して、事前キャッシュジョブのステータスを確認します。
oc get jobs,pods -n openshift-talo-pre-cache
$ oc get jobs,pods -n openshift-talo-pre-cache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME COMPLETIONS DURATION AGE job.batch/pre-cache 0/1 3m10s 3m10s NAME READY STATUS RESTARTS AGE pod/pre-cache--1-9bmlr 1/1 Running 0 3m10s
NAME COMPLETIONS DURATION AGE job.batch/pre-cache 0/1 3m10s 3m10s NAME READY STATUS RESTARTS AGE pod/pre-cache--1-9bmlr 1/1 Running 0 3m10s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して
ClusterGroupUpgrade
CR のステータスを確認します。oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
$ oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- キャッシュ前のタスクが実行されます。