11.2. MicroShift での Operator Lifecycle Manager の使用
Operator Lifecycle Manager (OLM)は、オプションのアドオン Operator をインストールし、実行するために MicroShift で使用されます。詳細は以下のリンクを参照してください。
11.2.1. MicroShift で OLM を使用する際の考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
- OpenShift Container Platform で適用されるクラスター Operator は、MicroShift では使用されません。
アプリケーションで使用するアドオン Operator 用に、独自のカタログを作成する必要があります。カタログはデフォルトでは提供されません。
-
各カタログには、OLM カタログ Operator がコンテンツにカタログを使用できるように、アクセス可能な
CatalogSourceがノードに追加されている必要があります。
-
各カタログには、OLM カタログ Operator がコンテンツにカタログを使用できるように、アクセス可能な
MicroShift で OLM アクティビティーを実行するには、CLI を使用する必要があります。コンソールと OperatorHub GUI は使用できません。
-
ネットワーク接続されたノードで Operator Package Manager
opmCLI を使用するか、内部レジストリーを使用するカスタム Operator のカタログをビルドするために使用します。 - 切断されたノードまたはオフラインノードのカタログと Operator をミラーリングするには、oc-mirror OpenShift CLI プラグイン をインストールします。
-
ネットワーク接続されたノードで Operator Package Manager
Operator を使用する前に、Operator が Red Hat build of MicroShift でサポートされていることをプロバイダーに確認してください。
11.2.2. OLM インストールタイプの決定 リンクのコピーリンクがクリップボードにコピーされました!
OLM パッケージマネージャーをインストールして、MicroShift 4.15 以降のバージョンで使用できます。MicroShift ノードの OLM をインストールするには、ユースケースに応じてさまざまな方法があります。
-
Red Hat Enterprise Linux (RHEL) に MicroShift RPM をインストールするときに、
microshift-olmRPM を同時にインストールできます。 -
既存の MicroShift 4.20 に
microshift-olmをインストールできます。変更を適用するには、OLM をインストールした後、MicroShift サービスを再起動します。RPM パッケージからの Operator Lifecycle Manager (OLM)のインストール を参照し てください。 - OLM を Red Hat Enterprise Linux for Edge (RHEL for Edge) イメージに埋め込むことができます。ブループリントへの Operator Lifecycle Manager (OLM)サービスの追加 を参照し てください。
11.2.3. MicroShift での namespace の使用 リンクのコピーリンクがクリップボードにコピーされました!
microshift-olm RPM は 3 つのデフォルトの namespace を作成します。1 つは OLM の実行用で、2 つはカタログと Operator のインストール用です。ユースケースでの必要性に応じて、追加の namespace を作成できます。
11.2.3.1. デフォルトの namespace リンクのコピーリンクがクリップボードにコピーされました!
次の表に、デフォルトの namespace と、各 namespace の動作の簡単な説明が示されています。
| デフォルトの namespace | 詳細 |
|
| OLM パッケージマネージャーは、この namespace で実行されます。 |
|
|
グローバル namespace。デフォルトでは空です。カタログソースをすべての namespace のユーザーがグローバルに利用できるようにするには、カタログソース YAML で |
|
|
MicroShift で Operator が実行されるデフォルトの namespace。 |
11.2.3.2. カスタム namespace リンクのコピーリンクがクリップボードにコピーされました!
単一の namespace でカタログと Operator を一緒に使用する場合は、カスタム namespace を作成する必要があります。namespace を作成した後、その namespace にカタログを作成する必要があります。カスタム namespace で実行されているすべての Operator は、同じ単一 namespace の監視スコープを持つ必要があります。
11.2.4. Operator カタログのビルドについて リンクのコピーリンクがクリップボードにコピーされました!
MicroShift で Operator Lifecycle Manager (OLM) を使用するには、OLM で管理できるカスタム Operator カタログをビルドする必要があります。OpenShift Container Platform に含まれる標準カタログは、MicroShift には含まれません。
11.2.4.1. ファイルベースの Operator カタログ リンクのコピーリンクがクリップボードにコピーされました!
カスタム Operator のカタログを作成したり、広く利用可能な Operator のカタログをフィルターしたりできます。両方の方法を組み合わせて、特定のユースケースに必要なカタログを作成できます。独自の Operator および OLM で MicroShift を実行するには、ファイルベースのカタログ構造を使用してカタログを作成します。
- 詳細は、カスタムカタログの管理 および カタログ の 例 を参照してください。
-
opmCLI リファレンス を参照してください。
-
カタログソースをクラスターに追加する 際に、
catalogSource.yamlファイルでsecurityContextConfigの値をrestrictedに設定します。カタログがrestricted権限で実行できることを確認してください。
11.2.5. OLM を使用した Operator のデプロイ方法 リンクのコピーリンクがクリップボードにコピーされました!
カスタムカタログを作成してデプロイした後、カタログにアクセスし、選択した Operator をインストールできるサブスクリプションカスタムリソース (CR) を作成する必要があります。Operator が実行される場所は、Subscription CR を作成する namespace によって異なります。
OLM の Operator には監視スコープがあります。たとえば、一部の Operator は独自の namespace の監視のみをサポートし、その他はノード内のすべての namespace の監視をサポートします。特定の namespace にインストールされているすべての Operator は、同じ監視スコープを持つ必要があります。
11.2.5.1. 接続性と OLM Operator のデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
Operator は、カタログが実行されている場所であればどこにでもデプロイできます。
- インターネットに接続されているノードの場合、イメージのミラーリングは必要ありません。イメージはネットワーク経由で取得できます。
- MicroShift が内部ネットワークのみにアクセスできる制限されたネットワークの場合、イメージを内部レジストリーにミラーリングする必要があります。
-
MicroShift ノードが完全にオフラインであるユースケースでは、すべてのイメージを
osbuildブループリントに組み込む必要があります。
11.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-operatorCopy 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 2m24sCopy 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-operatorCopy 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 2m33sCopy 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-marketplacenamespace で作成されたカタログを参照できます。 - 2
- コミュニティー Operator は、デフォルトでは MicroShift の OLM とともにインストールされません。ここには一例として記載されています。
- 3
securityContextConfigの値は、MicroShift に対してrestrictedに設定する必要があります。
次のコマンドを実行して、
CatalogSource設定を適用します。oc apply -f <catalog_source.yaml>
$ oc apply -f <catalog_source.yaml>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<catalog-source.yaml>をカタログソース設定ファイル名に置き換えます。この例では、catalogsource.yamlが使用されます。
出力例
catalogsource.operators.coreos.com/operatorhubio-catalog created
catalogsource.operators.coreos.com/operatorhubio-catalog createdCopy 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-catalogCopy 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-catalogCopy 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 59sCopy 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-marketplacenamespace で実行される場合に、Operator を複数の namespace で実行できるようになります。
次のコマンドを実行して、Subscription CR 設定を適用します。
oc apply -f <subscription_cr.yaml>
$ oc apply -f <subscription_cr.yaml>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<subscription_cr.yaml>を Subscription CR ファイル名に置き換えます。
出力例
subscription.operators.coreos.com/my-cert-manager created
subscription.operators.coreos.com/my-cert-manager createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用する特定のオペランドの設定ファイルを作成し、今すぐ適用できます。
検証
次のコマンドを使用して、Operator が実行されていることを確認します。
oc get pods -n openshift-operators
$ oc get pods -n openshift-operators1 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 18sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
11.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-operatorCopy 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 16mCopy 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-operatorCopy 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 16mCopy 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-microshiftCopy 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 createdCopy 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 createdCopy 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-marketplacenamespace で作成されたカタログを参照できます。 - 2
- コミュニティー Operator は、デフォルトでは MicroShift の OLM とともにインストールされません。ここには一例として記載されています。
- 3
securityContextConfigの値は、MicroShift に対してrestrictedに設定する必要があります。
次のコマンドを実行して、
CatalogSource設定を適用します。oc apply -f <catalog_source.yaml>
$ oc apply -f <catalog_source.yaml>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<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-catalogCopy 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-catalogCopy 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 43sCopy 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 <subscription_cr.yaml>
$ oc apply -f <subscription_cr.yaml>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<subscription_cr.yaml>を Subscription CR 設定ファイルの名前に置き換えます。
出力例
subscription.operators.coreos.com/my-gitlab-operator-kubernetes
subscription.operators.coreos.com/my-gitlab-operator-kubernetesCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 使用する特定のオペランドの設定ファイルを作成し、今すぐ適用できます。
検証
次のコマンドを使用して、Operator が実行されていることを確認します。
oc get pods -n olm-microshift
$ oc get pods -n olm-microshift1 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 3m24sCopy to Clipboard Copied! Toggle word wrap Toggle overflow