16.2.3.2. Lifecycle Agent を使用したシードイメージの生成


Lifecycle Agent を使用して、マネージドクラスターからシードイメージを生成します。Operator は、必要なシステム設定を確認し、シードイメージを生成する前に必要なシステムクリーンアップを実行して、イメージ生成を開始します。シードイメージの生成には、次のタスクが含まれます。

  • クラスター Operator の停止
  • シードイメージ設定の準備
  • シードイメージの生成および SeedGenerator CR で指定されたイメージリポジトリーへのシードイメージのプッシュ
  • クラスター Operator の復元
  • 期限切れのシードクラスター証明書
  • シードクラスター用の新しい証明書の生成
  • シードクラスター上の SeedGenerator CR の復元と更新

前提条件

  • RHACM と multicluster engine for Kubernetes Operator はシードクラスターにインストールされていません。
  • シードクラスターに共有コンテナーディレクトリーを設定した。
  • シードクラスターに OADP Operator と Lifecycle Agent の最小バージョンをインストールした。
  • シードクラスターに永続ボリュームが設定されていないことを確認する。
  • Local Storage Operator が使用されている場合は、シードクラスターに LocalVolume CR が存在しないことを確認する。
  • LVM ストレージが使用されている場合は、シードクラスターに LVMCluster CR が存在しないことを確認する。
  • OADP が使用されている場合は、シードクラスターに DataProtectionApplication CR が存在しないことを確認する。

手順

  1. マネージドクラスターをハブからデタッチして、シードイメージに含まれてはならない RHACM 固有のリソースをシードクラスターから削除します。

    1. 次のコマンドを実行してシードクラスターを手動でデタッチします。

      $ oc delete managedcluster sno-worker-example
      1. マネージドクラスターが削除されるまで待機します。クラスターが削除されたら、適切な SeedGenerator CR を作成します。Lifecycle Agent は RHACM アーティファクトをクリーンアップします。
    2. GitOps ZTP を使用している場合は、シードクラスターの SiteConfig CR を kustomization.yaml から削除してクラスターをデタッチします。

      1. 複数の SiteConfig CR を参照する kustomization.yaml ファイルがある場合は、シードクラスターの SiteConfig CR を kustomization.yaml から削除します。

        apiVersion: kustomize.config.k8s.io/v1beta1
        kind: Kustomization
        
        generators:
        #- example-seed-sno1.yaml
        - example-target-sno2.yaml
        - example-target-sno3.yaml
      2. 1 つの SiteConfig CR を参照する kustomization.yaml がある場合は、シードクラスターの SiteConfig CR を kustomization.yaml から削除し、generators: {} 行を追加します。

        apiVersion: kustomize.config.k8s.io/v1beta1
        kind: Kustomization
        
        generators: {}
      3. Git リポジトリーで kustomization.yaml の変更をコミットし、変更をリポジトリーにプッシュします。

        ArgoCD パイプラインは変更を検出し、マネージドクラスターを削除します。

  2. シードイメージをレジストリーにプッシュできるように、Secret オブジェクトを作成します。

    1. 次のコマンドを実行して認証ファイルを作成します。

      $ MY_USER=myuserid
      $ AUTHFILE=/tmp/my-auth.json
      $ podman login --authfile ${AUTHFILE} -u ${MY_USER} quay.io/${MY_USER}
      $ base64 -w 0 ${AUTHFILE} ; echo
    2. 出力を、openshift-lifecycle-agent namespace の seedgen という名前の Secret YAML ファイルの seedAuth フィールドにコピーします。

      apiVersion: v1
      kind: Secret
      metadata:
        name: seedgen 
      1
      
        namespace: openshift-lifecycle-agent
      type: Opaque
      data:
        seedAuth: <encoded_AUTHFILE> 
      2
      1
      Secret リソースには、name: seedgen および namespace: openshift-lifecycle-agent フィールドが必要です。
      2
      生成されたシードイメージをプッシュするためのレジストリーへの書き込みアクセス用 base64 エンコードされた authfile を指定します。
    3. 以下のコマンドを実行して Secret を適用します。

      $ oc apply -f secretseedgenerator.yaml
  3. SeedGenerator CR を作成します。

    apiVersion: lca.openshift.io/v1
    kind: SeedGenerator
    metadata:
      name: seedimage 
    1
    
    spec:
      seedImage: <seed_container_image> 
    2
    1
    SeedGenerator CR の名前は seedimage にする必要があります。
    2
    コンテナーイメージの URL を指定します (例: quay.io/example/seed-container-image:<tag>)。<seed_cluster_name>:<ocp_version> 形式を使用することを推奨します。
  4. 次のコマンドを実行してシードイメージを生成します。

    $ oc apply -f seedgenerator.yaml
    重要

    Lifecycle Agent がシードイメージを生成している間、クラスターが再起動し、API 機能が失われます。SeedGenerator CR を適用すると、kubelet と CRI-O の操作が停止し、イメージ生成が開始されます。

より多くのシードイメージを生成する場合は、シードイメージを生成するバージョンで新しいシードクラスターをプロビジョニングする必要があります。

検証

  • クラスターが回復して使用可能になったら、次のコマンドを実行して SeedGenerator CR のステータスを確認できます。

    $ 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 
1

  observedGeneration: 1

1
シードイメージの生成が完了しました。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る