8.2. MicroShift での Operator Lifecycle Manager の使用
Operator Lifecycle Manager (OLM) パッケージマネージャーは、MicroShift でオプションの アドオン Operator をインストールおよび実行するために使用されます。
8.2.1. MicroShift で OLM を使用する際の考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Container Platform で適用されるクラスター Operator は、MicroShift では使用されません。
アプリケーションで使用するアドオン Operator 用に、独自のカタログを作成する必要があります。カタログはデフォルトでは提供されません。
-
OLM カタログ Operator がカタログをコンテンツに使用できるように、各カタログにはアクセス可能な
CatalogSource
がクラスターに追加されている必要があります。
-
OLM カタログ Operator がカタログをコンテンツに使用できるように、各カタログにはアクセス可能な
MicroShift で OLM アクティビティーを実行するには、CLI を使用する必要があります。コンソールと OperatorHub GUI は使用できません。
-
Operator Package Manager
opm
CLI は、ネットワーク接続されたクラスターで使用するか、内部レジストリーを使用するカスタム Operator のカタログをビルドするために使用します。 - 非接続クラスターまたはオフラインのクラスターのカタログと Operator をミラーリングするには、oc-mirror OpenShift CLI プラグイン をインストールします。
-
Operator Package Manager
Operator を使用する前に、Operator が Red Hat build of MicroShift でサポートされていることをプロバイダーに確認してください。
8.2.2. OLM インストールタイプの決定 リンクのコピーリンクがクリップボードにコピーされました!
OLM パッケージマネージャーをインストールして、MicroShift 4.15 以降のバージョンで使用できます。MicroShift クラスター用の OLM をインストールするには、ユースケースに応じてさまざまな方法があります。
-
Red Hat Enterprise Linux (RHEL) に MicroShift RPM をインストールするときに、
microshift-olm
RPM を同時にインストールできます。 -
microshift-olm
は既存の MicroShift 4.16 にインストールできます。変更を適用するには、OLM をインストールした後、MicroShift サービスを再起動します。RPM パッケージからの Operator Lifecycle Manager (OLM) のインストール を参照してください。 - OLM を Red Hat Enterprise Linux for Edge (RHEL for Edge) イメージに埋め込むことができます。Operator Lifecycle Manager (OLM) サービスのブループリントへの追加 を参照してください。
8.2.3. MicroShift での namespace の使用 リンクのコピーリンクがクリップボードにコピーされました!
microshift-olm
RPM は 3 つのデフォルトの namespace を作成します。1 つは OLM の実行用で、2 つはカタログと Operator のインストール用です。ユースケースでの必要性に応じて、追加の namespace を作成できます。
8.2.3.1. デフォルトの namespace リンクのコピーリンクがクリップボードにコピーされました!
次の表に、デフォルトの namespace と、各 namespace の動作の簡単な説明が示されています。
デフォルトの namespace | 詳細 |
| OLM パッケージマネージャーは、この namespace で実行されます。 |
|
グローバル namespace。デフォルトでは空です。カタログソースをすべての namespace のユーザーがグローバルに利用できるようにするには、カタログソース YAML で |
|
MicroShift で Operator が実行されるデフォルトの namespace。 |
8.2.3.2. カスタム namespace リンクのコピーリンクがクリップボードにコピーされました!
単一の namespace でカタログと Operator を一緒に使用する場合は、カスタム namespace を作成する必要があります。namespace を作成した後、その namespace にカタログを作成する必要があります。カスタム namespace で実行されているすべての Operator は、同じ単一 namespace の監視スコープを持つ必要があります。
8.2.4. Operator カタログのビルドについて リンクのコピーリンクがクリップボードにコピーされました!
MicroShift で Operator Lifecycle Manager (OLM) を使用するには、OLM で管理できるカスタム Operator カタログをビルドする必要があります。OpenShift Container Platform に含まれる標準カタログは、MicroShift には含まれません。
8.2.4.1. ファイルベースの Operator カタログ リンクのコピーリンクがクリップボードにコピーされました!
カスタム Operator のカタログを作成したり、広く利用可能な Operator のカタログをフィルターしたりできます。両方の方法を組み合わせて、特定のユースケースに必要なカタログを作成できます。独自の Operator および OLM で MicroShift を実行するには、ファイルベースのカタログ構造を使用してカタログを作成します。
- 詳細は、カスタムカタログの管理 および サンプルカタログ を参照してください。
-
opm
CLI 参照 も参照してください。
-
カタログソースをクラスターに追加する ときは、
catalogSource.yaml
ファイルでsecurityContextConfig
値をrestricted
に設定します。カタログがrestricted
権限で実行できることを確認してください。
8.2.5. OLM を使用した Operator のデプロイ方法 リンクのコピーリンクがクリップボードにコピーされました!
カスタムカタログを作成してデプロイした後、カタログにアクセスし、選択した Operator をインストールできるサブスクリプションカスタムリソース (CR) を作成する必要があります。Operator が実行される場所は、Subscription CR を作成する namespace によって異なります。
OLM の Operator には監視スコープがあります。たとえば、一部の Operator は独自の namespace の監視のみをサポートしますが、他の Operator はクラスター内のすべての namespace の監視をサポートします。特定の namespace にインストールされているすべての Operator は、同じ監視スコープを持つ必要があります。
8.2.5.1. 接続性と OLM Operator のデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
Operator は、カタログが実行されている場所であればどこにでもデプロイできます。
- インターネットに接続されているクラスターの場合、イメージのミラーリングは必要ありません。イメージはネットワーク経由で取得できます。
- MicroShift が内部ネットワークのみにアクセスできる制限されたネットワークの場合、イメージを内部レジストリーにミラーリングする必要があります。
-
MicroShift クラスターが完全にオフラインであるユースケースでは、すべてのイメージを
osbuild
ブループリントに埋め込む必要があります。
8.2.5.2. グローバル namespace を使用したネットワーククラスターへの OLM ベースの Operator の追加 リンクのコピーリンクがクリップボードにコピーされました!
異なる Operator を異なる namespace にデプロイするには、次の手順を使用します。ネットワーク接続のある MicroShift クラスターの場合、Operator Lifecycle Manager (OLM) は、リモートレジストリーでホストされているソースにアクセスできます。次の手順では、設定ファイルを使用して、グローバル namespace を使用する Operator をインストールする基本的な手順を示します。
別の namespace または複数の namespace にインストールされた Operator を使用するには、カタログソースと Operator を参照する Subscription CR が openshift-marketplace
namespace で実行されていることを確認してください。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - Operator Lifecycle Manager (OLM) がインストールされている。
- グローバル namespace にカスタムカタログを作成している。
手順
次のコマンドを使用して、OLM が実行されていることを確認します。
oc -n openshift-operator-lifecycle-manager get pod -l app=olm-operator
$ oc -n openshift-operator-lifecycle-manager get pod -l app=olm-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE olm-operator-85b5c6786-n6kbc 1/1 Running 0 2m24s
NAME READY STATUS RESTARTS AGE olm-operator-85b5c6786-n6kbc 1/1 Running 0 2m24s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、OLM カタログ Operator が実行されていることを確認します。
oc -n openshift-operator-lifecycle-manager get pod -l app=catalog-operator
$ oc -n openshift-operator-lifecycle-manager get pod -l app=catalog-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE catalog-operator-5fc7f857b6-tj8cf 1/1 Running 0 2m33s
NAME READY STATUS RESTARTS AGE catalog-operator-5fc7f857b6-tj8cf 1/1 Running 0 2m33s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次の手順では、グローバル namespace openshift-marketplace
を使用していることを前提としています。カタログは Operator と同じ namespace で実行する必要があります。Operator は AllNamespaces モードをサポートする必要があります。
次のサンプル YAML を使用して、
CatalogSource
オブジェクトを作成します。カタログソース YAML の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- グローバル namespace。
metadata.namespace
をopenshift-marketplace
に設定すると、カタログがすべての namespace で実行できるようになります。どの namespace のサブスクリプションでも、openshift-marketplace
namespace で作成されたカタログを参照できます。 - 2
- コミュニティー Operator は、デフォルトでは MicroShift の OLM とともにインストールされません。ここには一例として記載されています。
- 3
securityContextConfig
の値は、MicroShift に対してrestricted
に設定する必要があります。
次のコマンドを実行して、
CatalogSource
設定を適用します。oc apply -f <my-catalog-source.yaml>
$ oc apply -f <my-catalog-source.yaml>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<my-catalog-source.yaml>
をカタログソース設定ファイル名に置き換えます。この例では、catalogsource.yaml
が使用されます。
出力例
catalogsource.operators.coreos.com/operatorhubio-catalog created
catalogsource.operators.coreos.com/operatorhubio-catalog created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow カタログソースが適用されていることを確認するには、次のコマンドを使用して
READY
状態を確認します。oc describe catalogsources.operators.coreos.com -n openshift-marketplace operatorhubio-catalog
$ oc describe catalogsources.operators.coreos.com -n openshift-marketplace operatorhubio-catalog
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ステータスは
READY
と報告されます。
次のコマンドを使用して、カタログソースが実行されていることを確認します。
oc get pods -n openshift-marketplace -l olm.catalogSource=operatorhubio-catalog
$ oc get pods -n openshift-marketplace -l olm.catalogSource=operatorhubio-catalog
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE operatorhubio-catalog-x24nh 1/1 Running 0 59s
NAME READY STATUS RESTARTS AGE operatorhubio-catalog-x24nh 1/1 Running 0 59s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の YAML 例を使用して、Subscription CR 設定ファイルを作成します。
サブスクリプションカスタムリソース YAML の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- グローバル namespace。
sourceNamespace
値をopenshift-marketplace
に設定すると、カタログもopenshift-marketplace
namespace で実行される場合に、Operator を複数の namespace で実行できるようになります。
次のコマンドを実行して、Subscription CR 設定を適用します。
oc apply -f <my-subscription-cr.yaml>
$ oc apply -f <my-subscription-cr.yaml>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<my-subscription-cr.yaml>
を Subscription CR ファイル名に置き換えます。この例では、sub.yaml
が使用されます。
出力例
subscription.operators.coreos.com/my-cert-manager created
subscription.operators.coreos.com/my-cert-manager created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用する特定のオペランドの設定ファイルを作成し、今すぐ適用できます。
検証
次のコマンドを使用して、Operator が実行されていることを確認します。
oc get pods -n openshift-operators
$ oc get pods -n openshift-operators
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Subscription CR の namespace が使用されます。
注記Operator が開始するまで 1 - 2 分ほどお待ちください。
出力例
NAME READY STATUS RESTARTS AGE cert-manager-7df8994ddb-4vrkr 1/1 Running 0 19s cert-manager-cainjector-5746db8fd7-69442 1/1 Running 0 18s cert-manager-webhook-f858bf58b-748nt 1/1 Running 0 18s
NAME READY STATUS RESTARTS AGE cert-manager-7df8994ddb-4vrkr 1/1 Running 0 19s cert-manager-cainjector-5746db8fd7-69442 1/1 Running 0 18s cert-manager-webhook-f858bf58b-748nt 1/1 Running 0 18s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2.5.3. 特定の namespace のネットワーククラスターに OLM ベースの Operator を追加する リンクのコピーリンクがクリップボードにコピーされました!
Operator の namespace (例: olm-microshift
) を指定する場合は、この手順を使用します。この例では、カタログのスコープが設定されており、グローバルな openshift-marketplace
namespace で使用できます。Operator はグローバル namespace のコンテンツを使用しますが、olm-microshift
namespace でのみ実行されます。ネットワーク接続のある MicroShift クラスターの場合、Operator Lifecycle Manager (OLM) は、リモートレジストリーでホストされているソースにアクセスできます。
特定の namespace にインストールされているすべての Operator は、同じ監視スコープを持つ必要があります。この場合、監視スコープは OwnNamespace です。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - Operator Lifecycle Manager (OLM) がインストールされている。
- グローバル namespace で実行中のカスタムカタログが作成されている。
手順
次のコマンドを使用して、OLM が実行されていることを確認します。
oc -n openshift-operator-lifecycle-manager get pod -l app=olm-operator
$ oc -n openshift-operator-lifecycle-manager get pod -l app=olm-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE olm-operator-85b5c6786-n6kbc 1/1 Running 0 16m
NAME READY STATUS RESTARTS AGE olm-operator-85b5c6786-n6kbc 1/1 Running 0 16m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、OLM カタログ Operator が実行されていることを確認します。
oc -n openshift-operator-lifecycle-manager get pod -l app=catalog-operator
$ oc -n openshift-operator-lifecycle-manager get pod -l app=catalog-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE catalog-operator-5fc7f857b6-tj8cf 1/1 Running 0 16m
NAME READY STATUS RESTARTS AGE catalog-operator-5fc7f857b6-tj8cf 1/1 Running 0 16m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の YAML 例を使用して、namespace を作成します。
namespace YAML の例
apiVersion: v1 kind: Namespace metadata: name: olm-microshift
apiVersion: v1 kind: Namespace metadata: name: olm-microshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、namespace 設定を適用します。
oc apply -f _<ns.yaml>_
$ oc apply -f _<ns.yaml>_
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <ns.yaml> を namespace 設定ファイルの名前に置き換えます。この例では、
olm-microshift
が使用されます。
出力例
namespace/olm-microshift created
namespace/olm-microshift created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の YAML 例を使用して、Operator グループ YAML を作成します。
Operator グループ YAML の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- グローバル namespace を使用する Operator の場合は、
spec.targetNamespaces
フィールドと値を省略します。
次のコマンドを実行して、Operator グループ設定を適用します。
oc apply -f _<og.yaml>_
$ oc apply -f _<og.yaml>_
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <og.yaml> を Operator グループ設定ファイルの名前に置き換えます。
出力例
operatorgroup.operators.coreos.com/og created
operatorgroup.operators.coreos.com/og created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のサンプル YAML を使用して、
CatalogSource
オブジェクトを作成します。カタログソース YAML の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- グローバル namespace。
metadata.namespace
をopenshift-marketplace
に設定すると、カタログがすべての namespace で実行できるようになります。任意の namespace の Subscription CR は、openshift-marketplace
namespace で作成されたカタログを参照できます。 - 2
- コミュニティー Operator は、デフォルトでは MicroShift の OLM とともにインストールされません。ここには一例として記載されています。
- 3
securityContextConfig
の値は、MicroShift に対してrestricted
に設定する必要があります。
次のコマンドを実行して、
CatalogSource
設定を適用します。oc apply -f _<my-catalog-source.yaml>_
$ oc apply -f _<my-catalog-source.yaml>_
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- <my-catalog-source.yaml> をカタログソース設定ファイル名に置き換えます。
カタログソースが適用されていることを確認するには、次のコマンドを使用して
READY
状態を確認します。oc describe catalogsources.operators.coreos.com -n openshift-marketplace operatorhubio-catalog
$ oc describe catalogsources.operators.coreos.com -n openshift-marketplace operatorhubio-catalog
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ステータスは
READY
と報告されます。
次のコマンドを使用して、カタログソースが実行されていることを確認します。
oc get pods -n openshift-marketplace -l olm.catalogSource=operatorhubio-catalog
$ oc get pods -n openshift-marketplace -l olm.catalogSource=operatorhubio-catalog
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE operatorhubio-catalog-j7sc8 1/1 Running 0 43s
NAME READY STATUS RESTARTS AGE operatorhubio-catalog-j7sc8 1/1 Running 0 43s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の YAML 例を使用して、Subscription CR 設定ファイルを作成します。
サブスクリプションカスタムリソース YAML の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Subscription CR 設定を適用します。
oc apply -f _<my-subscription-cr.yaml>_
$ oc apply -f _<my-subscription-cr.yaml>_
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
subscription.operators.coreos.com/my-gitlab-operator-kubernetes
subscription.operators.coreos.com/my-gitlab-operator-kubernetes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用する特定のオペランドの設定ファイルを作成し、今すぐ適用できます。
検証
次のコマンドを使用して、Operator が実行されていることを確認します。
oc get pods -n olm-microshift
$ oc get pods -n olm-microshift
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Subscription CR の namespace が使用されます。
注記Operator が開始するまで 1 - 2 分ほどお待ちください。
出力例
NAME READY STATUS RESTARTS AGE gitlab-controller-manager-69bb6df7d6-g7ntx 2/2 Running 0 3m24s
NAME READY STATUS RESTARTS AGE gitlab-controller-manager-69bb6df7d6-g7ntx 2/2 Running 0 3m24s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow