15.2. シングルノード OpenShift クラスターのイメージベースアップグレードの準備
15.2.2. イメージベースアップグレード用の Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Lifecycle Agent と OADP Operator をインストールして、アップグレードに向けてクラスターを準備します。
GitOps 以外の方法で OADP Operator をインストールするには、「OADP Operator のインストール」を参照してください。
15.2.2.1. CLI を使用した Lifecycle Agent のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI (oc) を使用して Lifecycle Agent をインストールできます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。
手順
Lifecycle Agent 用の
Namespaceオブジェクトの YAML ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して
NamespaceCR を作成します。oc create -f <namespace_filename>.yaml
$ oc create -f <namespace_filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Lifecycle Agent 用の
OperatorGroupオブジェクトの YAML ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して
OperatorGroupCR を作成します。oc create -f <operatorgroup_filename>.yaml
$ oc create -f <operatorgroup_filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Lifecycle Agent 用の
SubscriptionCR を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して
SubscriptionCR を作成します。oc create -f <subscription_filename>.yaml
$ oc create -f <subscription_filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
インストールが成功したことを確認するには、次のコマンドを実行して CSV リソースを調べます。
oc get csv -n openshift-lifecycle-agent
$ oc get csv -n openshift-lifecycle-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME DISPLAY VERSION REPLACES PHASE lifecycle-agent.v4.18.0 Openshift Lifecycle Agent 4.18.0 Succeeded
NAME DISPLAY VERSION REPLACES PHASE lifecycle-agent.v4.18.0 Openshift Lifecycle Agent 4.18.0 SucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Lifecycle Agent が起動して実行されていることを確認します。
oc get deploy -n openshift-lifecycle-agent
$ oc get deploy -n openshift-lifecycle-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY UP-TO-DATE AVAILABLE AGE lifecycle-agent-controller-manager 1/1 1 1 14s
NAME READY UP-TO-DATE AVAILABLE AGE lifecycle-agent-controller-manager 1/1 1 1 14sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.2.2. Web コンソールを使用した Lifecycle Agent のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用して、Lifecycle Agent をインストールできます。
前提条件
-
cluster-admin権限を持つユーザーとしてログインしている。
手順
-
OpenShift Container Platform Web コンソールで、Operators
OperatorHub ページに移動します。 - 利用可能な Operator のリストから Lifecycle Agent を検索し、Install をクリックします。
- Install Operator ページの A specific namespace on the cluster の下で openshift-lifecycle-agent を選択します。
- Install をクリックします。
検証
インストールが正常に行われたことを確認するには、以下を実行します。
-
Operators
Installed Operators をクリックします。 Lifecycle Agent が、InstallSucceeded ステータス で openshift-lifecycle-agent プロジェクトにリストされていることを確認します。
注記インストール時に、Operator は Failed ステータスを表示する可能性があります。インストールが後に InstallSucceeded メッセージを出して正常に実行される場合は、Failed メッセージを無視できます。
-
Operators
Operator が正常にインストールされていない場合、以下を実行します。
-
Operators
Installed Operators をクリックし、Operator Subscriptions タブおよび Install Plans タブの ステータス で障害やエラーがないか検査します。 -
Workloads
Pods をクリックし、openshift-lifecycle-agent プロジェクト内の Pod のログを確認します。
15.2.2.3. GitOps ZTP を使用した Lifecycle Agent のインストール リンクのコピーリンクがクリップボードにコピーされました!
イメージベースアップグレードを実行するには、GitOps Zero Touch Provisioning (ZTP) を使用して Lifecycle Agent をインストールします。
手順
ztp-site-generateコンテナーイメージから次の CR を抽出し、source-crディレクトリーにプッシュします。LcaSubscriptionNS.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow LcaSubscriptionOperGroup.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow LcaSubscription.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow ディレクトリー構造の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 共通の
PolicyGenTemplateに CR を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.2.4. GitOps ZTP を使用した OADP Operator のインストールと設定 リンクのコピーリンクがクリップボードにコピーされました!
アップグレードを開始する前に、GitOps ZTP を使用して OADP Operator をインストールして設定します。
手順
ztp-site-generateコンテナーイメージから次の CR を抽出し、source-crディレクトリーにプッシュします。OadpSubscriptionNS.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow OadpSubscriptionOperGroup.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow OadpSubscription.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow OadpOperatorStatus.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow ディレクトリー構造の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 共通の
PolicyGenTemplateに CR を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ターゲットクラスター専用の
DataProtectionApplicationCR と S3 シークレットを作成します。ztp-site-generateコンテナーイメージから次の CR を抽出し、source-crディレクトリーにプッシュします。OadpDataProtectionApplication.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 永続ボリュームの内容はアップグレード後に保持され、再利用されるため、イメージベースアップグレードでは
spec.configuration.restic.enableフィールドをfalseに設定する必要があります。 - 2 3
- バケットは、S3 バックエンドで作成されるバケット名を定義します。接頭辞は、バケット内に自動的に作成されるサブディレクトリーの名前を定義します。バケットと接頭辞の組み合わせは、それらの間の干渉を避けるために、各ターゲットクラスターごとに一意である必要があります。各ターゲットクラスターに一意のストレージディレクトリーを確保するには、Red Hat Advanced Cluster Management のハブテンプレート機能を使用できます (例:
prefix: {{hub .ManagedClusterName hub}})。
OadpSecret.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow OadpBackupStorageLocationStatus.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
BackupStorageLocationリソースのnameの値は、<DataProtectionApplication.metadata.name>-<index>というパターンに従う必要があります。<index>は、DataProtectionApplicationリソースのspec.backupLocationsフィールド内の対応するbackupLocationsエントリーの位置を表します。位置は1から始まります。OadpDataProtectionApplication.yamlファイルでDataProtectionApplicationリソースのmetadata.name値が変更された場合は、それに応じてBackupStorageLocationリソースのmetadata.nameフィールドを更新します。
OadpBackupStorageLocationStatus.yamlCR は、OADP によって作成されたバックアップストレージの場所の可用性を確認します。オーバーライドを使用して、サイトの
PolicyGenTemplateに CR を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- S3 ストレージバックエンドの認証情報を指定します。
- 2
OadpDataProtectionApplicationCR に複数のbackupLocationsエントリーが定義されている場合は、ステータス追跡のために、対応するOadpBackupStorageLocationCR がそれぞれの場所に追加されていることを確認します。追加の各OadpBackupStorageLocationCR の名前が、OadpBackupStorageLocationStatus.yamlファイルの例で説明されている正しいインデックスでオーバーライドされていることを確認してください。- 3
- S3 互換バケットの URL を指定します。
- 4 5
bucketは、S3 バックエンドで作成されるバケット名を定義します。prefixは、bucket内に自動的に作成されるサブディレクトリーの名前を定義します。bucketとprefixの組み合わせは、それらの間の干渉を避けるために、各ターゲットクラスターごとに一意である必要があります。各ターゲットクラスターに一意のストレージディレクトリーを確保するには、Red Hat Advanced Cluster Management のハブテンプレート機能を使用できます (例:prefix: {{hub .ManagedClusterName hub}})。
15.2.3. Lifecycle Agent を使用したイメージベースアップグレード用のシードイメージの生成 リンクのコピーリンクがクリップボードにコピーされました!
Lifecycle Agent を使用して、SeedGenerator カスタムリソース (CR) でシードイメージを生成します。
15.2.3.1. シードイメージの設定 リンクのコピーリンクがクリップボードにコピーされました!
シードイメージは、同じハードウェアと同様の設定を持つシングルノードの OpenShift クラスターのセットを対象とします。つまり、シードイメージには、シードクラスターがターゲットクラスターと共有するすべてのコンポーネントと設定が含まれている必要があります。したがって、シードクラスターから生成されたシードイメージには、クラスター固有の設定を含めることはできません。
次の表は、シードイメージに含めるべき、および含めるべきでないコンポーネント、リソース、設定を示しています。
| Cluster configuration | シードイメージに含める |
|---|---|
| パフォーマンスプロファイル | はい |
|
ターゲットクラスターの | はい |
| IP バージョン [1] | はい |
| Lifecycle Agent と OADP Operator を含む Day 2 Operator のセット | はい |
| 切断されたレジストリー設定 [2] | はい |
| 有効なプロキシー設定 [3] | はい |
| FIPS 設定 | はい |
| ターゲットクラスターのサイズに一致する、コンテナーストレージ用のプライマリーディスク上の専用パーティション | はい |
| ローカルボリューム
| いいえ |
|
OADP | いいえ |
- このリリースではデュアルスタックネットワークはサポートされていません。
- シードクラスターが非接続環境にインストールされている場合は、ターゲットクラスターも非接続環境にインストールする必要があります。
- プロキシー設定は、シードクラスターとターゲットクラスターの両方で有効または無効にする必要があります。ただし、クラスター上で設定されている複数のプロキシーサーバーが同じである必要はありません。
15.2.3.1.1. RAN DU プロファイルを使用したシードイメージの設定 リンクのコピーリンクがクリップボードにコピーされました!
次の表は、RAN DU プロファイルを使用する際にシードイメージに含めるべき、および含めるべきでないコンポーネント、リソース、設定を示しています。
| リソース | シードイメージに含める |
|---|---|
| Day 0 インストールの一部として適用されるすべての追加マニフェスト | はい |
| すべての Day 2 Operator サブスクリプション | はい |
|
| はい |
|
| はい |
|
| はい |
|
| はい |
|
| はい |
|
|
☓ ( |
|
| いいえ |
|
| いいえ |
| リソース | 追加マニフェストとして適用 |
|---|---|
|
| はい 注記
DU プロファイルには Cluster Logging Operator が含まれますが、このプロファイルでは Cluster Logging Operator CR は設定または適用されません。ログ転送を有効にするには、追加のマニフェストとして |
|
| はい |
|
| はい |
|
| はい |
|
| はい |
|
| ターゲットクラスターのインターフェイスがシードクラスターと共通である場合は、それらをシードイメージに含めることができます。それ以外の場合は、追加のマニフェストとして適用します。 |
|
| namespace を含む設定がシードクラスターとターゲットクラスターの両方でまったく同じである場合は、それらをシードイメージに含めることができます。それ以外の場合は、追加のマニフェストとして適用します。 |
15.2.3.2. Lifecycle Agent を使用したシードイメージの生成 リンクのコピーリンクがクリップボードにコピーされました!
Lifecycle Agent を使用して、マネージドクラスターからシードイメージを生成します。Operator は、必要なシステム設定を確認し、シードイメージを生成する前に必要なシステムクリーンアップを実行して、イメージ生成を開始します。シードイメージの生成には、次のタスクが含まれます。
- クラスター Operator の停止
- シードイメージ設定の準備
-
シードイメージの生成および
SeedGeneratorCR で指定されたイメージリポジトリーへのシードイメージのプッシュ - クラスター Operator の復元
- 期限切れのシードクラスター証明書
- シードクラスター用の新しい証明書の生成
-
シードクラスター上の
SeedGeneratorCR の復元と更新
前提条件
- RHACM と multicluster engine for Kubernetes Operator はシードクラスターにインストールされていません。
- シードクラスターに共有コンテナーディレクトリーを設定した。
- シードクラスターに OADP Operator と Lifecycle Agent の最小バージョンをインストールした。
- シードクラスターに永続ボリュームが設定されていないことを確認する。
-
Local Storage Operator が使用されている場合は、シードクラスターに
LocalVolumeCR が存在しないことを確認する。 -
LVM ストレージが使用されている場合は、シードクラスターに
LVMClusterCR が存在しないことを確認する。 -
OADP が使用されている場合は、シードクラスターに
DataProtectionApplicationCR が存在しないことを確認する。
手順
マネージドクラスターをハブからデタッチして、シードイメージに含まれてはならない RHACM 固有のリソースをシードクラスターから削除します。
次のコマンドを実行してシードクラスターを手動でデタッチします。
oc delete managedcluster sno-worker-example
$ oc delete managedcluster sno-worker-exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
マネージドクラスターが削除されるまで待機します。クラスターが削除されたら、適切な
SeedGeneratorCR を作成します。Lifecycle Agent は RHACM アーティファクトをクリーンアップします。
-
マネージドクラスターが削除されるまで待機します。クラスターが削除されたら、適切な
GitOps ZTP を使用している場合は、シードクラスターの
SiteConfigCR をkustomization.yamlから削除してクラスターをデタッチします。複数の
SiteConfigCR を参照するkustomization.yamlファイルがある場合は、シードクラスターのSiteConfigCR をkustomization.yamlから削除します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 1 つの
SiteConfigCR を参照するkustomization.yamlがある場合は、シードクラスターのSiteConfigCR をkustomization.yamlから削除し、generators: {}行を追加します。apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization generators: {}apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization generators: {}Copy to Clipboard Copied! Toggle word wrap Toggle overflow Git リポジトリーで
kustomization.yamlの変更をコミットし、変更をリポジトリーにプッシュします。ArgoCD パイプラインは変更を検出し、マネージドクラスターを削除します。
シードイメージをレジストリーにプッシュできるように、
Secretオブジェクトを作成します。次のコマンドを実行して認証ファイルを作成します。
MY_USER=myuserid AUTHFILE=/tmp/my-auth.json podman login --authfile ${AUTHFILE} -u ${MY_USER} quay.io/${MY_USER}$ MY_USER=myuserid $ AUTHFILE=/tmp/my-auth.json $ podman login --authfile ${AUTHFILE} -u ${MY_USER} quay.io/${MY_USER}Copy to Clipboard Copied! Toggle word wrap Toggle overflow base64 -w 0 ${AUTHFILE} ; echo$ base64 -w 0 ${AUTHFILE} ; echoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力を、
openshift-lifecycle-agentnamespace のseedgenという名前のSecretYAML ファイルのseedAuthフィールドにコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して
Secretを適用します。oc apply -f secretseedgenerator.yaml
$ oc apply -f secretseedgenerator.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
SeedGeneratorCR を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してシードイメージを生成します。
oc apply -f seedgenerator.yaml
$ oc apply -f seedgenerator.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要Lifecycle Agent がシードイメージを生成している間、クラスターが再起動し、API 機能が失われます。
SeedGeneratorCR を適用すると、kubeletと CRI-O の操作が停止し、イメージ生成が開始されます。
より多くのシードイメージを生成する場合は、シードイメージを生成するバージョンで新しいシードクラスターをプロビジョニングする必要があります。
検証
クラスターが回復して使用可能になったら、次のコマンドを実行して
SeedGeneratorCR のステータスを確認できます。oc get seedgenerator -o yaml
$ oc get seedgenerator -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- シードイメージの生成が完了しました。
15.2.4. Lifecycle Agent を使用したイメージベースアップグレード用の ConfigMap オブジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
Lifecycle Agent では、イメージベースアップグレード用に処理するために、すべての OADP リソース、追加のマニフェスト、およびカスタムカタログソースが ConfigMap オブジェクトにラップされている必要があります。
15.2.4.1. Lifecycle Agent を使用したイメージベースアップグレード用の OADP ConfigMap オブジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
アップグレード中にリソースをバックアップおよび復元するために使用される OADP リソースを作成します。
前提条件
- 互換性のあるシードクラスターからシードイメージを生成した。
- OADP のバックアップおよび復元リソースを作成した。
- stateroot 間で共有されるコンテナーイメージ用に、ターゲットクラスターに個別のパーティションを作成した。詳細は、「イメージベースアップグレード用の共有コンテナーパーティションの設定」を参照してください。
- シードイメージで使用されるバージョンと互換性のあるバージョンの Lifecycle Agent をデプロイした。
-
OADP Operator、
DataProtectionApplicationCR、およびそのシークレットをターゲットクラスターにインストールした。 - S3 互換のストレージソリューションとすぐに使用できるバケットを作成し、適切な認証情報を設定した。詳細は、「OADP のインストールについて」を参照してください。
手順
OADP Operator がインストールされているのと同じ namespace (
openshift-adp) に、プラットフォームアーティファクトの OADPBackupCR およびRestoreCR を作成します。ターゲットクラスターが RHACM によって管理されている場合は、RHACM アーティファクトをバックアップおよび復元するために次の YAML ファイルを追加します。
RHACM 用の PlatformBackupRestore.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
multiclusterHubCR に.spec.imagePullSecretが定義されておらず、ハブクラスターのopen-cluster-management-agentnamespace にシークレットが存在しない場合は、v1/secrets/open-cluster-management-agent/open-cluster-management-image-pull-credentialsを削除します。
LVM Storage を介してクラスター上に永続ボリュームを作成した場合は、LVM Storage アーティファクトに次の YAML ファイルを追加します。
LVM Storage 用の PlatformBackupRestoreLvms.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
lca.openshift.io/apply-waveの値は、アプリケーションのRestoreCR で指定された値よりも低くする必要があります。
アップグレード後にアプリケーションを復元する必要がある場合は、
openshift-adpnamespace にアプリケーションの OADPBackupCR およびRestoreCR を作成します。openshift-adpnamespace にクラスタースコープのアプリケーションアーティファクト用の OADP CR を作成します。LSO および LVM Storage のクラスタースコープアプリケーションアーティファクトの OADP CR の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespace スコープのアプリケーションアーティファクト用の OADP CR を作成します。
LSO が使用される場合の OADP CR の namespace スコープのアプリケーションアーティファクトの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- アプリケーションのカスタムリソースを定義します。
LVM Storage が使用されている場合の OADP CR namespace スコープのアプリケーションアーティファクトの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要アプリケーションの同じバージョンが、OpenShift Container Platform の現在のリリースとターゲットリリースの両方で機能する必要があります。
次のコマンドを実行して、OADP CR の
ConfigMapオブジェクトを作成します。oc create configmap oadp-cm-example --from-file=example-oadp-resources.yaml=<path_to_oadp_crs> -n openshift-adp
$ oc create configmap oadp-cm-example --from-file=example-oadp-resources.yaml=<path_to_oadp_crs> -n openshift-adpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
ImageBasedUpgradeCR にパッチを適用します。oc patch imagebasedupgrades.lca.openshift.io upgrade \ -p='{"spec": {"oadpContent": [{"name": "oadp-cm-example", "namespace": "openshift-adp"}]}}' \ --type=merge -n openshift-lifecycle-agent$ oc patch imagebasedupgrades.lca.openshift.io upgrade \ -p='{"spec": {"oadpContent": [{"name": "oadp-cm-example", "namespace": "openshift-adp"}]}}' \ --type=merge -n openshift-lifecycle-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.4.2. Lifecycle Agent を使用したイメージベースアップグレード用の追加マニフェストの ConfigMap オブジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
ターゲットクラスターに適用する追加のマニフェストを作成します。
複数のマニフェストを追加し、マニフェストを特定の順序で適用する必要がある場合は、マニフェストのファイル名の前に、必要な順序を表す数字を付ける必要があります。たとえば、00-namespace.yaml、01-sriov-extra-manifest.yaml などです。
手順
SR-IOV などの追加マニフェストを含む YAML ファイルを作成します。
SR-IOV リソースの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して
ConfigMapオブジェクトを作成します。oc create configmap example-extra-manifests-cm --from-file=example-extra-manifests.yaml=<path_to_extramanifest> -n openshift-lifecycle-agent
$ oc create configmap example-extra-manifests-cm --from-file=example-extra-manifests.yaml=<path_to_extramanifest> -n openshift-lifecycle-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
ImageBasedUpgradeCR にパッチを適用します。oc patch imagebasedupgrades.lca.openshift.io upgrade \ -p='{"spec": {"extraManifests": [{"name": "example-extra-manifests-cm", "namespace": "openshift-lifecycle-agent"}]}}' \ --type=merge -n openshift-lifecycle-agent$ oc patch imagebasedupgrades.lca.openshift.io upgrade \ -p='{"spec": {"extraManifests": [{"name": "example-extra-manifests-cm", "namespace": "openshift-lifecycle-agent"}]}}' \ --type=merge -n openshift-lifecycle-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.4.3. Lifecycle Agent を使用したイメージベースのアップグレード用のカスタムカタログソースの ConfigMap オブジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
カタログソースの ConfigMap オブジェクトを生成し、それを ImageBasedUpgrade CR の spec.extraManifest フィールドに追加することで、アップグレード後もカスタムカタログソースを保持できます。カタログソースの詳細は、「カタログソース」を参照してください。
手順
CatalogSourceCR を含む YAML ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して
ConfigMapオブジェクトを作成します。oc create configmap example-catalogsources-cm --from-file=example-catalogsources.yaml=<path_to_catalogsource_cr> -n openshift-lifecycle-agent
$ oc create configmap example-catalogsources-cm --from-file=example-catalogsources.yaml=<path_to_catalogsource_cr> -n openshift-lifecycle-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
ImageBasedUpgradeCR にパッチを適用します。oc patch imagebasedupgrades.lca.openshift.io upgrade \ -p='{"spec": {"extraManifests": [{"name": "example-catalogsources-cm", "namespace": "openshift-lifecycle-agent"}]}}' \ --type=merge -n openshift-lifecycle-agent$ oc patch imagebasedupgrades.lca.openshift.io upgrade \ -p='{"spec": {"extraManifests": [{"name": "example-catalogsources-cm", "namespace": "openshift-lifecycle-agent"}]}}' \ --type=merge -n openshift-lifecycle-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.5. GitOps ZTP を使用した Lifecycle Agent によるイメージベースアップグレード用の ConfigMap オブジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
イメージベースアップグレードに備えて、ConfigMap オブジェクトにラップされた OADP リソース、追加のマニフェスト、カスタムカタログソースを作成します。
15.2.5.1. GitOps ZTP を使用したイメージベースアップグレード用の OADP リソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
アップグレード後にアプリケーションを復元できるように OADP リソースを準備します。
前提条件
- GitOps ZTP を使用して 1 つ以上のマネージドクラスターをプロビジョニングした。
-
cluster-admin権限を持つユーザーとしてログインしている。 - 互換性のあるシードクラスターからシードイメージを生成した。
- stateroot 間で共有されるコンテナーイメージ用に、ターゲットクラスターに個別のパーティションを作成した。詳細は、「GitOps ZTP を使用した場合の ostree stateroot 間の共有コンテナーパーティションの設定」を参照してください。
- シードイメージで使用されるバージョンと互換性のあるバージョンの Lifecycle Agent をデプロイした。
-
OADP Operator、
DataProtectionApplicationCR、およびそのシークレットをターゲットクラスターにインストールした。 - S3 互換のストレージソリューションとすぐに使用できるバケットを作成し、適切な認証情報を設定した。詳細は、「GitOps ZTP を使用した OADP Operator のインストールと設定」を参照してください。
-
OADP
ConfigMapを生成してクラスターにコピーできるように、OADPConfigMapオブジェクト用のopenshift-adpnamespace が、すべてのマネージドクラスターとハブに存在する。
手順
ArgoCD ポリシーアプリケーションで使用する Git リポジトリーに次のディレクトリー構造が含まれていることを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow source-crs/ibu/PlatformBackupRestoreWithIBGU.yamlファイルは、ZTP コンテナーイメージで提供されます。PlatformBackupRestoreWithIBGU.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
multiclusterHubCR に.spec.imagePullSecretが定義されておらず、ハブクラスターのopen-cluster-management-agentnamespace にシークレットが存在しない場合は、v1/secrets/open-cluster-management-agent/open-cluster-management-image-pull-credentialsを削除します。
注記マネージドクラスターでイメージベースのアップグレードを直接実行する場合は、
PlatformBackupRestore.yamlファイルを使用します。LVM Storage を使用して永続ボリュームを作成する場合は、ZTP コンテナーイメージで提供される
source-crs/ibu/PlatformBackupRestoreLvms.yamlを使用して、LVM Storage リソースをバックアップできます。PlatformBackupRestoreLvms.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
lca.openshift.io/apply-waveの値は、アプリケーションのRestoreCR で指定された値よりも低くする必要があります。
アップグレード後にアプリケーションを復元する必要がある場合は、
openshift-adpnamespace にアプリケーションの OADPBackupCR およびRestoreCR を作成します。openshift-adpnamespace にクラスタースコープのアプリケーションアーティファクト用の OADP CR を作成します。LSO および LVM Storage のクラスタースコープアプリケーションアーティファクトの OADP CR の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespace スコープのアプリケーションアーティファクト用の OADP CR を
source-crs/custom-crsディレクトリーに作成します。LSO が使用される場合の OADP CR の namespace スコープのアプリケーションアーティファクトの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- アプリケーションのカスタムリソースを定義します。
LVM Storage が使用されている場合の OADP CR namespace スコープのアプリケーションアーティファクトの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要アプリケーションの同じバージョンが、OpenShift Container Platform の現在のリリースとターゲットリリースの両方で機能する必要があります。
次の内容を含む
kustomization.yamlを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を Git リポジトリーにプッシュします。
15.2.5.2. GitOps ZTP を使用したイメージベースアップグレード用の追加マニフェストのラベル付け リンクのコピーリンクがクリップボードにコピーされました!
追加のマニフェストにラベルを付けて、Lifecycle Agent が lca.openshift.io/target-ocp-version: <target_version> ラベルでラベル付けされたリソースを抽出できるようにします。
前提条件
- GitOps ZTP を使用して 1 つ以上のマネージドクラスターをプロビジョニングした。
-
cluster-admin権限を持つユーザーとしてログインしている。 - 互換性のあるシードクラスターからシードイメージを生成した。
- stateroot 間で共有されるコンテナーイメージ用に、ターゲットクラスターに個別のパーティションを作成した。詳細は、「GitOps ZTP を使用する場合の ostree stateroot 間の共有コンテナーディレクトリーの設定」を参照してください。
- シードイメージで使用されるバージョンと互換性のあるバージョンの Lifecycle Agent をデプロイした。
手順
既存のサイトの
PolicyGenTemplateCR で、必要な追加マニフェストにlca.openshift.io/target-ocp-version: <target_version>ラベルを付けます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を Git リポジトリーにプッシュします。
15.2.6. コンテナーストレージディスクの自動イメージクリーンアップの設定 リンクのコピーリンクがクリップボードにコピーされました!
使用可能なストレージ領域の最小しきい値をアノテーションによって設定することで、Prep ステージにおいて Lifecycle Agent が固定されていないイメージをクリーンアップするときの条件を設定します。デフォルトのコンテナーストレージディスク使用量のしきい値は 50% です。
Lifecycle Agent は、CRI-O に固定されているイメージや現在使用されているイメージを削除しません。Operator は、まずダングリング (dangling) 状態のイメージから削除するイメージを選択します。さらに、イメージの Created タイムスタンプに基づいて最も古いイメージから新しいイメージの順に並べ替えることで、削除するイメージを選択します。
15.2.6.1. コンテナーストレージディスクの自動イメージクリーンアップの設定 リンクのコピーリンクがクリップボードにコピーされました!
アノテーションにより、使用可能なストレージ領域の最小しきい値を設定します。
前提条件
-
ImageBasedUpgradeCR を作成した。
手順
次のコマンドを実行して、しきい値を 65% に増やします。
oc -n openshift-lifecycle-agent annotate ibu upgrade image-cleanup.lca.openshift.io/disk-usage-threshold-percent='65'
$ oc -n openshift-lifecycle-agent annotate ibu upgrade image-cleanup.lca.openshift.io/disk-usage-threshold-percent='65'Copy to Clipboard Copied! Toggle word wrap Toggle overflow (オプション) 次のコマンドを実行して、しきい値のオーバーライドを削除します。
oc -n openshift-lifecycle-agent annotate ibu upgrade image-cleanup.lca.openshift.io/disk-usage-threshold-percent-
$ oc -n openshift-lifecycle-agent annotate ibu upgrade image-cleanup.lca.openshift.io/disk-usage-threshold-percent-Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.2.6.2. コンテナーストレージディスクの自動イメージクリーンアップの無効化 リンクのコピーリンクがクリップボードにコピーされました!
自動イメージクリーンアップのしきい値を無効にします。
手順
次のコマンドを実行して、自動イメージクリーンアップを無効にします。
oc -n openshift-lifecycle-agent annotate ibu upgrade image-cleanup.lca.openshift.io/on-prep='Disabled'
$ oc -n openshift-lifecycle-agent annotate ibu upgrade image-cleanup.lca.openshift.io/on-prep='Disabled'Copy to Clipboard Copied! Toggle word wrap Toggle overflow (オプション) 次のコマンドを実行して、自動イメージクリーンアップを再度有効にします。
oc -n openshift-lifecycle-agent annotate ibu upgrade image-cleanup.lca.openshift.io/on-prep-
$ oc -n openshift-lifecycle-agent annotate ibu upgrade image-cleanup.lca.openshift.io/on-prep-Copy to Clipboard Copied! Toggle word wrap Toggle overflow