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
以下のコマンドを実行して
Namespace
CR を作成します。$ 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
以下のコマンドを実行して
OperatorGroup
CR を作成します。$ oc create -f <operatorgroup_filename>.yaml
Lifecycle Agent 用の
Subscription
CR を作成します。apiVersion: operators.coreos.com/v1 kind: Subscription metadata: name: openshift-lifecycle-agent-subscription namespace: openshift-lifecycle-agent spec: channel: "stable" name: lifecycle-agent source: redhat-operators sourceNamespace: openshift-marketplace
以下のコマンドを実行して
Subscription
CR を作成します。$ oc create -f <subscription_filename>.yaml
検証
インストールが成功したことを確認するには、次のコマンドを実行して CSV リソースを調べます。
$ oc get csv -n openshift-lifecycle-agent
出力例
NAME DISPLAY VERSION REPLACES PHASE lifecycle-agent.v4.17.0 Openshift Lifecycle Agent 4.17.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 の停止
- シードイメージ設定の準備
-
シードイメージの生成および
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 が存在しないことを確認する。
手順
マネージドクラスターをハブからデタッチして、シードイメージに含まれてはならない RHACM 固有のリソースをシードクラスターから削除します。
次のコマンドを実行してシードクラスターを手動でデタッチします。
$ oc delete managedcluster sno-worker-example
-
マネージドクラスターが削除されるまで待機します。クラスターが削除されたら、適切な
SeedGenerator
CR を作成します。Lifecycle Agent は RHACM アーティファクトをクリーンアップします。
-
マネージドクラスターが削除されるまで待機します。クラスターが削除されたら、適切な
GitOps ZTP を使用している場合は、シードクラスターの
SiteConfig
CR をkustomization.yaml
から削除してクラスターをデタッチします。複数の
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
1 つの
SiteConfig
CR を参照するkustomization.yaml
がある場合は、シードクラスターのSiteConfig
CR を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-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
以下のコマンドを実行して
Secret
を適用します。$ oc apply -f secretseedgenerator.yaml
SeedGenerator
CR を作成します。apiVersion: lca.openshift.io/v1 kind: SeedGenerator metadata: name: seedimage 1 spec: seedImage: <seed_container_image> 2
次のコマンドを実行してシードイメージを生成します。
$ 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
- シードイメージの生成が完了しました。