16.2. シングルノード OpenShift クラスターのイメージベースのインストールに向けた準備
シングルノード OpenShift クラスターのイメージベースのインストールを準備するには、次のタスクを完了する必要があります。
- Lifecycle Agent を使用してシードイメージを作成します。
- すべてのソフトウェアコンポーネントが必要なバージョンを満たしていることを確認します。詳細は、「イメージベースのインストールとデプロイのソフトウェアに関する前提条件」を参照してください。
16.2.1. Lifecycle Agent のインストール リンクのコピーリンクがクリップボードにコピーされました!
Lifecycle Agent を使用して、シードクラスターからシードイメージを生成します。Lifecycle Agent は、OpenShift CLI (oc) または Web コンソールを使用してインストールできます。
16.2.1.1. CLI を使用した Lifecycle Agent のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift CLI (oc) を使用して Lifecycle Agent をインストールできます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。
手順
Lifecycle Agent 用の
Namespaceオブジェクトの YAML ファイルを作成します。apiVersion: v1 kind: Namespace metadata: name: openshift-lifecycle-agent annotations: workload.openshift.io/allowed: management以下のコマンドを実行して
NamespaceCR を作成します。$ oc create -f <namespace_filename>.yaml
Lifecycle Agent 用の
OperatorGroupオブジェクトの YAML ファイルを作成します。apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-lifecycle-agent namespace: openshift-lifecycle-agent spec: targetNamespaces: - openshift-lifecycle-agent以下のコマンドを実行して
OperatorGroupCR を作成します。$ oc create -f <operatorgroup_filename>.yaml
Lifecycle Agent 用の
SubscriptionCR を作成します。apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: openshift-lifecycle-agent-subscription namespace: openshift-lifecycle-agent spec: channel: "stable" name: lifecycle-agent source: redhat-operators sourceNamespace: openshift-marketplace以下のコマンドを実行して
SubscriptionCR を作成します。$ oc create -f <subscription_filename>.yaml
検証
インストールが成功したことを確認するには、次のコマンドを実行して CSV リソースを調べます。
$ oc get csv -n openshift-lifecycle-agent出力例
NAME DISPLAY VERSION REPLACES PHASE lifecycle-agent.v4.18.0 Openshift Lifecycle Agent 4.18.0 Succeeded次のコマンドを実行して、Lifecycle Agent が起動して実行されていることを確認します。
$ oc get deploy -n openshift-lifecycle-agent出力例
NAME READY UP-TO-DATE AVAILABLE AGE lifecycle-agent-controller-manager 1/1 1 1 14s
16.2.1.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 のログを確認します。
16.2.3. シードイメージの設定 リンクのコピーリンクがクリップボードにコピーされました!
シードイメージは、ベアメタルホストと同じハードウェアを持ち、類似するターゲットクラスター設定を持つシングルノード OpenShift クラスターから作成できます。ただし、シードクラスターから生成されるシードイメージに、クラスター固有の設定を含めることはできません。
次の表は、シードイメージに含めるべき、および含めるべきでないコンポーネント、リソース、設定を示しています。
| Cluster configuration | シードイメージに含める |
|---|---|
| パフォーマンスプロファイル | はい |
|
ターゲットクラスターの | はい |
| IP バージョン [1] | はい |
| Lifecycle Agent と OADP Operator を含む Day 2 Operator のセット | はい |
| 切断されたレジストリー設定 [2] | はい |
| 有効なプロキシー設定 [3] | はい |
| FIPS 設定 | はい |
| ターゲットクラスターのサイズに一致する、コンテナーストレージ用のプライマリーディスク上の専用パーティション | はい |
| ローカルボリューム
| いいえ |
- このリリースではデュアルスタックネットワークはサポートされていません。
- シードクラスターが非接続環境にインストールされている場合は、ターゲットクラスターも非接続環境にインストールする必要があります。
- プロキシー設定は、シードクラスターとターゲットクラスターの両方で有効または無効にする必要があります。ただし、クラスター上で設定されている複数のプロキシーサーバーが同じである必要はありません。
16.2.3.1. RAN DU プロファイルを使用したシードイメージの設定 リンクのコピーリンクがクリップボードにコピーされました!
次の表は、RAN DU プロファイルを使用する際にシードイメージに含めるべき、および含めるべきでないコンポーネント、リソース、設定を示しています。
| リソース | シードイメージに含める |
|---|---|
| Day 0 インストールの一部として適用されるすべての追加マニフェスト | はい |
| すべての Day 2 Operator サブスクリプション | はい |
|
| はい |
|
| はい |
|
| はい |
|
| はい |
|
| はい |
|
|
☓ ( |
|
| いいえ |
|
| いいえ |
次のリソースと設定のリストは、追加のマニフェストとして、または RHACM ポリシーを使用して適用できます。
-
ClusterLogForwarder.yaml -
ReduceMonitoringFootprint.yaml -
SriovFecClusterConfig.yaml -
PtpOperatorConfigForEvent.yaml -
DefaultCatsrc.yaml -
PtpConfig.yaml -
SriovNetwork.yaml
GitOps ZTP を使用している場合は、RHACM ポリシーを使用してこれらのリソースを有効にし、クラスターのライフサイクル全体に設定の変更を適用できるようにします。
16.2.4. 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
- シードイメージの生成が完了しました。