10.3.7. シングルノード OpenShift クラスター上の TALM を使用したユーザー指定のイメージの事前キャッシュ
アプリケーションをアップグレードする前に、アプリケーション固有のワークロードイメージをシングルノード OpenShift クラスターに事前キャッシュできます。
次のカスタムリソース (CR) を使用して、事前キャッシュジョブの設定オプションを指定できます。
-
PreCachingConfigCR -
ClusterGroupUpgradeCR
PreCachingConfig CR のフィールドはすべてオプションです。
PreCachingConfig CR の例
apiVersion: ran.openshift.io/v1alpha1
kind: PreCachingConfig
metadata:
name: exampleconfig
namespace: exampleconfig-ns
spec:
overrides:
platformImage: quay.io/openshift-release-dev/ocp-release@sha256:3d5800990dee7cd4727d3fe238a97e2d2976d3808fc925ada29c559a47e2e1ef
operatorsIndexes:
- registry.example.com:5000/custom-redhat-operators:1.0.0
operatorsPackagesAndChannels:
- local-storage-operator: stable
- ptp-operator: stable
- sriov-network-operator: stable
spaceRequired: 30 Gi
excludePrecachePatterns:
- aws
- vsphere
additionalImages:
- quay.io/exampleconfig/application1@sha256:3d5800990dee7cd4727d3fe238a97e2d2976d3808fc925ada29c559a47e2e1ef
- quay.io/exampleconfig/application2@sha256:3d5800123dee7cd4727d3fe238a97e2d2976d3808fc925ada29c559a47adfaef
- quay.io/exampleconfig/applicationN@sha256:4fe1334adfafadsf987123adfffdaf1243340adfafdedga0991234afdadfsa09
- 1
- デフォルトでは、TALM は、マネージドクラスターのポリシーから
platformImage、operatorsIndexes、およびoperatorsPackagesAndChannelsフィールドに自動的に値を設定します。これらのフィールドのデフォルトの TALM 派生値をオーバーライドする値を指定できます。 - 2
- クラスター上で最低限必要なディスク容量を指定します。指定しない場合、TALM は OpenShift Container Platform イメージのデフォルト値を定義します。ディスク容量フィールドには、整数値とストレージユニットを含める必要があります。たとえば、
40 GiB、200 MB、1 TiBです。 - 3
- イメージ名の一致に基づいて事前キャッシュから除外するイメージを指定します。
- 4
- 事前キャッシュする追加イメージのリストを指定します。
PreCachingConfig CR 参照を使用した ClusterGroupUpgrade CR の例
apiVersion: ran.openshift.io/v1alpha1
kind: ClusterGroupUpgrade
metadata:
name: cgu
spec:
preCaching: true
preCachingConfigRef:
name: exampleconfig
namespace: exampleconfig-ns
10.3.7.1. 事前キャッシュ用のカスタムリソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
PreCachingConfig CR は、ClusterGroupUpgrade CR の前または同時に作成する必要があります。
事前キャッシュする追加イメージのリストを使用して
PreCachingConfigCR を作成します。apiVersion: ran.openshift.io/v1alpha1 kind: PreCachingConfig metadata: name: exampleconfig namespace: default1 spec: [...] spaceRequired: 30Gi2 additionalImages: - quay.io/exampleconfig/application1@sha256:3d5800990dee7cd4727d3fe238a97e2d2976d3808fc925ada29c559a47e2e1ef - quay.io/exampleconfig/application2@sha256:3d5800123dee7cd4727d3fe238a97e2d2976d3808fc925ada29c559a47adfaef - quay.io/exampleconfig/applicationN@sha256:4fe1334adfafadsf987123adfffdaf1243340adfafdedga0991234afdadfsa09preCachingフィールドをtrueに設定してClusterGroupUpgradeCR を作成し、前の手順で作成したPreCachingConfigCR を指定します。apiVersion: ran.openshift.io/v1alpha1 kind: ClusterGroupUpgrade metadata: name: cgu namespace: default spec: clusters: - sno1 - sno2 preCaching: true preCachingConfigRef: - name: exampleconfig namespace: default managedPolicies: - du-upgrade-platform-upgrade - du-upgrade-operator-catsrc-policy - common-subscriptions-policy remediationStrategy: timeout: 240警告クラスターにイメージをインストールすると、それらを変更したり削除したりすることはできません。
イメージを事前キャッシュを開始する場合は、次のコマンドを実行して
ClusterGroupUpgradeCR を適用します。$ oc apply -f cgu.yaml
TALM は ClusterGroupUpgrade CR を検証します。
この時点から、TALM 事前キャッシュワークフローを続行できます。
すべてのサイトが同時に事前キャッシュされます。
検証
次のコマンドを実行して、
ClusterUpgradeGroupCR が適用されているハブクラスターの事前キャッシュステータスを確認します。$ oc get cgu <cgu_name> -n <cgu_namespace> -oyaml出力例
precaching: spec: platformImage: quay.io/openshift-release-dev/ocp-release@sha256:3d5800990dee7cd4727d3fe238a97e2d2976d3808fc925ada29c559a47e2e1ef operatorsIndexes: - registry.example.com:5000/custom-redhat-operators:1.0.0 operatorsPackagesAndChannels: - local-storage-operator: stable - ptp-operator: stable - sriov-network-operator: stable excludePrecachePatterns: - aws - vsphere additionalImages: - quay.io/exampleconfig/application1@sha256:3d5800990dee7cd4727d3fe238a97e2d2976d3808fc925ada29c559a47e2e1ef - quay.io/exampleconfig/application2@sha256:3d5800123dee7cd4727d3fe238a97e2d2976d3808fc925ada29c559a47adfaef - quay.io/exampleconfig/applicationN@sha256:4fe1334adfafadsf987123adfffdaf1243340adfafdedga0991234afdadfsa09 spaceRequired: "30" status: sno1: Starting sno2: Starting事前キャッシュ設定は、管理ポリシーが存在するかどうかをチェックすることによって検証されます。
ClusterGroupUpgradeおよびPreCachingConfigCR の設定が有効であると、次のステータスになります。有効な CR の出力例
- lastTransitionTime: "2023-01-01T00:00:01Z" message: All selected clusters are valid reason: ClusterSelectionCompleted status: "True" type: ClusterSelected - lastTransitionTime: "2023-01-01T00:00:02Z" message: Completed validation reason: ValidationCompleted status: "True" type: Validated - lastTransitionTime: "2023-01-01T00:00:03Z" message: Precaching spec is valid and consistent reason: PrecacheSpecIsWellFormed status: "True" type: PrecacheSpecValid - lastTransitionTime: "2023-01-01T00:00:04Z" message: Precaching in progress for 1 clusters reason: InProgress status: "False" type: PrecachingSucceeded無効な PreCachingConfig CR の例
Type: "PrecacheSpecValid" Status: False, Reason: "PrecacheSpecIncomplete" Message: "Precaching spec is incomplete: failed to get PreCachingConfig resource due to PreCachingConfig.ran.openshift.io "<pre-caching_cr_name>" not found"マネージドクラスターで次のコマンドを実行すると、事前キャッシュジョブを見つけることができます。
$ oc get jobs -n openshift-talo-pre-cache進行中の事前キャッシュジョブの例
NAME COMPLETIONS DURATION AGE pre-cache 0/1 1s 1s次のコマンドを実行して、事前キャッシュジョブ用に作成された Pod のステータスを確認できます。
$ oc describe pod pre-cache -n openshift-talo-pre-cache進行中の事前キャッシュジョブの例
Type Reason Age From Message Normal SuccesfulCreate 19s job-controller Created pod: pre-cache-abcd1次のコマンドを実行すると、ジョブのステータスに関するライブ更新を取得できます。
$ oc logs -f pre-cache-abcd1 -n openshift-talo-pre-cache事前キャッシュジョブが正常に完了したことを確認するには、次のコマンドを実行します。
$ oc describe pod pre-cache -n openshift-talo-pre-cache完了した事前キャッシュジョブの例
Type Reason Age From Message Normal SuccesfulCreate 5m19s job-controller Created pod: pre-cache-abcd1 Normal Completed 19s job-controller Job completedイメージがシングルノード OpenShift で正常に事前キャッシュされていることを確認するには、次の手順を実行します。
デバッグモードでノードに入ります。
$ oc debug node/cnfdf00.example.labroot を
hostに変更します。$ chroot /host/目的のイメージを検索します。
$ sudo podman images | grep <operator_name>