16.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-
マネージドクラスターが削除されるまで待機します。クラスターが削除されたら、適切な
SeedGeneratorCR を作成します。Lifecycle Agent は RHACM アーティファクトをクリーンアップします。
-
マネージドクラスターが削除されるまで待機します。クラスターが削除されたら、適切な
GitOps ZTP を使用している場合は、シードクラスターの
SiteConfigCR をkustomization.yamlから削除してクラスターをデタッチします。複数の
SiteConfigCR を参照するkustomization.yamlファイルがある場合は、シードクラスターのSiteConfigCR をkustomization.yamlから削除します。apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization generators: #- example-seed-sno1.yaml - example-target-sno2.yaml - example-target-sno3.yaml1 つの
SiteConfigCR を参照するkustomization.yamlがある場合は、シードクラスターのSiteConfigCR をkustomization.yamlから削除し、generators: {}行を追加します。apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization generators: {}Git リポジトリーで
kustomization.yamlの変更をコミットし、変更をリポジトリーにプッシュします。ArgoCD パイプラインは変更を検出し、マネージドクラスターを削除します。
シードイメージをレジストリーにプッシュできるように、
Secretオブジェクトを作成します。次のコマンドを実行して認証ファイルを作成します。
$ MY_USER=myuserid$ AUTHFILE=/tmp/my-auth.json$ podman login --authfile ${AUTHFILE} -u ${MY_USER} quay.io/${MY_USER}$ base64 -w 0 ${AUTHFILE} ; echo出力を、
openshift-lifecycle-agentnamespace のseedgenという名前のSecretYAML ファイルのseedAuthフィールドにコピーします。apiVersion: v1 kind: Secret metadata: name: seedgen1 namespace: openshift-lifecycle-agent type: Opaque data: seedAuth: <encoded_AUTHFILE>2 以下のコマンドを実行して
Secretを適用します。$ oc apply -f secretseedgenerator.yaml
SeedGeneratorCR を作成します。apiVersion: lca.openshift.io/v1 kind: SeedGenerator metadata: name: seedimage1 spec: seedImage: <seed_container_image>2 次のコマンドを実行してシードイメージを生成します。
$ oc apply -f seedgenerator.yaml重要Lifecycle Agent がシードイメージを生成している間、クラスターが再起動し、API 機能が失われます。
SeedGeneratorCR を適用すると、kubeletと CRI-O の操作が停止し、イメージ生成が開始されます。
より多くのシードイメージを生成する場合は、シードイメージを生成するバージョンで新しいシードクラスターをプロビジョニングする必要があります。
検証
クラスターが回復して使用可能になったら、次のコマンドを実行して
SeedGeneratorCR のステータスを確認できます。$ oc get seedgenerator -o yaml
出力例
status:
conditions:
- lastTransitionTime: "2024-02-13T21:24:26Z"
message: Seed Generation completed
observedGeneration: 1
reason: Completed
status: "False"
type: SeedGenInProgress
- lastTransitionTime: "2024-02-13T21:24:26Z"
message: Seed Generation completed
observedGeneration: 1
reason: Completed
status: "True"
type: SeedGenCompleted
observedGeneration: 1
- 1
- シードイメージの生成が完了しました。