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 がクラスターに追加されている必要があります。
  • MicroShift で OLM アクティビティーを実行するには、CLI を使用する必要があります。コンソールと OperatorHub GUI は使用できません。

    • Operator Package Manager opm CLI は、ネットワーク接続されたクラスターで使用するか、内部レジストリーを使用するカスタム Operator のカタログをビルドするために使用します。
    • 非接続クラスターまたはオフラインのクラスターのカタログと Operator をミラーリングするには、oc-mirror OpenShift CLI プラグイン をインストールします。
重要

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.15 にインストールできます。変更を適用するには、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 の動作の簡単な説明が示されています。

表8.1 OLM によって MicroShift 用に作成されたデフォルトの namespace

デフォルトの namespace

詳細

openshift-operator-lifecycle-manager

OLM パッケージマネージャーは、この namespace で実行されます。

openshift-marketplace

グローバル namespace。デフォルトでは空です。カタログソースをすべての namespace のユーザーがグローバルに利用できるようにするには、カタログソース YAML で openshift-marketplace namespace を設定します。

openshift-operators

MicroShift で Operator が実行されるデフォルトの namespace。openshift-operators namespace 内のカタログを参照する Operator には、AllNamespaces 監視スコープが必要です。

8.2.3.2. カスタム namespace

単一の namespace でカタログと Operator を一緒に使用する場合は、カスタム namespace を作成する必要があります。namespac を作成した後、その namespac にカタログを作成する必要があります。カスタム 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 を実行するには、ファイルベースのカタログ構造を使用してカタログを作成します。

重要

関連情報

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 にカスタムカタログを作成している。

手順

  1. 次のコマンドを使用して、OLM が実行されていることを確認します。

    $ oc -n openshift-operator-lifecycle-manager get pod -l app=olm-operator

    出力例

    NAME                            READY   STATUS    RESTARTS   AGE
    olm-operator-85b5c6786-n6kbc    1/1     Running   0          2m24s

  2. 次のコマンドを使用して、OLM カタログ Operator が実行されていることを確認します。

    $ oc -n openshift-operator-lifecycle-manager get pod -l app=catalog-operator

    出力例

    NAME                                READY   STATUS    RESTARTS   AGE
    catalog-operator-5fc7f857b6-tj8cf   1/1     Running   0          2m33s

注記

次の手順では、グローバル namespace openshift-marketplace を使用していることを前提としています。カタログは Operator と同じ namespace で実行する必要があります。Operator は AllNamespaces モードをサポートする必要があります。

  1. 次のサンプル YAML を使用して、CatalogSource オブジェクトを作成します。

    カタログソース YAML の例

    apiVersion: operators.coreos.com/v1alpha1
    kind: CatalogSource
    metadata:
      name: operatorhubio-catalog
      namespace: openshift-marketplace 1
    spec:
      sourceType: grpc
      image: quay.io/operatorhubio/catalog:latest
      displayName: Community Operators 2
      publisher: OperatorHub.io
      grpcPodConfig:
        securityContextConfig: restricted 3
      updateStrategy:
        registryPoll:
          interval: 60m

    1
    グローバル namespace。metadata.namespaceopenshift-marketplace に設定すると、カタログがすべての namespace で実行できるようになります。どの namespace のサブスクリプションでも、openshift-marketplace namespace で作成されたカタログを参照できます。
    2
    コミュニティー Operator は、デフォルトでは MicroShift の OLM とともにインストールされません。ここには一例として記載されています。
    3
    securityContextConfig の値は、MicroShift に対して restricted に設定する必要があります。
  2. 次のコマンドを実行して、CatalogSource 設定を適用します。

    $ oc apply -f <my-catalog-source.yaml> 1
    1
    <my-catalog-source.yaml> をカタログソース設定ファイル名に置き換えます。この例では、catalogsource.yaml が使用されます。

    出力例

    catalogsource.operators.coreos.com/operatorhubio-catalog created

  3. カタログソースが適用されていることを確認するには、次のコマンドを使用して READY 状態を確認します。

    $ oc describe catalogsources.operators.coreos.com -n openshift-marketplace operatorhubio-catalog

    出力例

    Name:         operatorhubio-catalog
    Namespace:    openshift-marketplace
    Labels:       <none>
    Annotations:  <none>
    API Version:  operators.coreos.com/v1alpha1
    Kind:         CatalogSource
    Metadata:
      Creation Timestamp:  2024-01-31T09:55:31Z
      Generation:          1
      Resource Version:    1212
      UID:                 4edc1a96-83cd-4de9-ac8c-c269ca895f3e
    Spec:
      Display Name:  Community Operators
      Grpc Pod Config:
        Security Context Config:  restricted
      Image:                      quay.io/operatorhubio/catalog:latest
      Publisher:                  OperatorHub.io
      Source Type:                grpc
      Update Strategy:
        Registry Poll:
          Interval:  60m
    Status:
      Connection State:
        Address:              operatorhubio-catalog.openshift-marketplace.svc:50051
        Last Connect:         2024-01-31T09:55:57Z
        Last Observed State:  READY 1
      Registry Service:
        Created At:         2024-01-31T09:55:31Z
        Port:               50051
        Protocol:           grpc
        Service Name:       operatorhubio-catalog
        Service Namespace:  openshift-marketplace
    Events:                 <none>

    1
    ステータスは READY と報告されます。
  4. 次のコマンドを使用して、カタログソースが実行されていることを確認します。

    $ oc get pods -n openshift-marketplace -l olm.catalogSource=operatorhubio-catalog

    出力例

    NAME                          READY   STATUS    RESTARTS   AGE
    operatorhubio-catalog-x24nh   1/1     Running   0          59s

  5. 次の YAML 例を使用して、Subscription CR 設定ファイルを作成します。

    サブスクリプションカスタムリソース YAML の例

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: my-cert-manager
      namespace: openshift-operators
    spec:
      channel: stable
      name: cert-manager
      source: operatorhubio-catalog
      sourceNamespace: openshift-marketplace 1

    1
    グローバル namespace。sourceNamespace 値を openshift-marketplace に設定すると、カタログも openshift-marketplace namespace で実行される場合に、Operator を複数の namespace で実行できるようになります。
  6. 次のコマンドを実行して、Subscription CR 設定を適用します。

    $ oc apply -f <my-subscription-cr.yaml> 1
    1
    <my-subscription-cr.yaml> を Subscription CR ファイル名に置き換えます。この例では、sub.yaml が使用されます。

    出力例

    subscription.operators.coreos.com/my-cert-manager created

  7. 使用する特定のオペランドの設定ファイルを作成し、今すぐ適用できます。

検証

  1. 次のコマンドを使用して、Operator が実行されていることを確認します。

    $ oc get pods -n openshift-operators 1
    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

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 で実行中のカスタムカタログが作成されている。

手順

  1. 次のコマンドを使用して、OLM が実行されていることを確認します。

    $ oc -n openshift-operator-lifecycle-manager get pod -l app=olm-operator

    出力例

    NAME                           READY   STATUS    RESTARTS   AGE
    olm-operator-85b5c6786-n6kbc   1/1     Running   0          16m

  2. 次のコマンドを使用して、OLM カタログ Operator が実行されていることを確認します。

    $ oc -n openshift-operator-lifecycle-manager get pod -l app=catalog-operator

    出力例

    NAME                                READY   STATUS    RESTARTS   AGE
    catalog-operator-5fc7f857b6-tj8cf   1/1     Running   0          16m

  3. 次の YAML 例を使用して、namespace を作成します。

    namespace YAML の例

    apiVersion: v1
    kind: Namespace
    metadata:
      name: olm-microshift

  4. 次のコマンドを使用して、namespace 設定を適用します。

    $ oc apply -f _<ns.yaml>_ 1
    1
    <ns.yaml> を namespace 設定ファイルの名前に置き換えます。この例では、olm-microshift が使用されます。

    出力例

    namespace/olm-microshift created

  5. 次の YAML 例を使用して、Operator グループ YAML を作成します。

    Operator グループ YAML の例

    kind: OperatorGroup
    apiVersion: operators.coreos.com/v1
    metadata:
      name: og
      namespace: olm-microshift
    spec: 1
      targetNamespaces:
      - olm-microshift

    1
    グローバル namespace を使用する Operator の場合は、spec.targetNamespaces フィールドと値を省略します。
  6. 次のコマンドを実行して、Operator グループ設定を適用します。

    $ oc apply -f _<og.yaml>_ 1
    1
    <og.yaml> を Operator グループ設定ファイルの名前に置き換えます。

    出力例

    operatorgroup.operators.coreos.com/og created

  7. 次のサンプル YAML を使用して、CatalogSource オブジェクトを作成します。

    カタログソース YAML の例

    apiVersion: operators.coreos.com/v1alpha1
    kind: CatalogSource
    metadata:
      name: operatorhubio-catalog
      namespace: openshift-marketplace 1
    spec:
      sourceType: grpc
      image: quay.io/operatorhubio/catalog:latest
      displayName: Community Operators 2
      publisher: OperatorHub.io
      grpcPodConfig:
        securityContextConfig: restricted 3
      updateStrategy:
        registryPoll:
          interval: 60m

    1
    グローバル namespace。metadata.namespaceopenshift-marketplace に設定すると、カタログがすべての namespace で実行できるようになります。任意の namespace の Subscription CR は、openshift-marketplace namespace で作成されたカタログを参照できます。
    2
    コミュニティー Operator は、デフォルトでは MicroShift の OLM とともにインストールされません。ここには一例として記載されています。
    3
    securityContextConfig の値は、MicroShift に対して restricted に設定する必要があります。
  8. 次のコマンドを実行して、CatalogSource 設定を適用します。

    $ oc apply -f _<my-catalog-source.yaml>_ 1
    1
    <my-catalog-source.yaml> をカタログソース設定ファイル名に置き換えます。
  9. カタログソースが適用されていることを確認するには、次のコマンドを使用して READY 状態を確認します。

    $ oc describe catalogsources.operators.coreos.com -n openshift-marketplace operatorhubio-catalog

    出力例

    Name:         operatorhubio-catalog
    Namespace:    openshift-marketplace
    Labels:       <none>
    Annotations:  <none>
    API Version:  operators.coreos.com/v1alpha1
    Kind:         CatalogSource
    Metadata:
      Creation Timestamp:  2024-01-31T10:09:46Z
      Generation:          1
      Resource Version:    2811
      UID:                 60ce4a36-86d3-4921-b9fc-84d67c28df48
    Spec:
      Display Name:  Community Operators
      Grpc Pod Config:
        Security Context Config:  restricted
      Image:                      quay.io/operatorhubio/catalog:latest
      Publisher:                  OperatorHub.io
      Source Type:                grpc
      Update Strategy:
        Registry Poll:
          Interval:  60m
    Status:
      Connection State:
        Address:              operatorhubio-catalog.openshift-marketplace.svc:50051
        Last Connect:         2024-01-31T10:10:04Z
        Last Observed State:  READY 1
      Registry Service:
        Created At:         2024-01-31T10:09:46Z
        Port:               50051
        Protocol:           grpc
        Service Name:       operatorhubio-catalog
        Service Namespace:  openshift-marketplace
    Events:                 <none>

    1
    ステータスは READY と報告されます。
  10. 次のコマンドを使用して、カタログソースが実行されていることを確認します。

    $ oc get pods -n openshift-marketplace -l olm.catalogSource=operatorhubio-catalog

    出力例

    NAME                          READY   STATUS    RESTARTS   AGE
    operatorhubio-catalog-j7sc8   1/1     Running   0          43s

  11. 次の YAML 例を使用して、Subscription CR 設定ファイルを作成します。

    サブスクリプションカスタムリソース YAML の例

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: my-gitlab-operator-kubernetes
      namespace: olm-microshift 1
    spec:
      channel: stable
      name: gitlab-operator-kubernetes
      source: operatorhubio-catalog
      sourceNamespace: openshift-marketplace 2

    1
    特定の namespace。Operator はコンテンツのグローバル namespace を参照しますが、olm-microshift namespace で実行されます。
    2
    グローバル namespace。任意の namespace の Subscription CR は、openshift-marketplace namespace で作成されたカタログを参照できます。
  12. 次のコマンドを実行して、Subscription CR 設定を適用します。

    $ oc apply -f _<my-subscription-cr.yaml>_

    出力例

    subscription.operators.coreos.com/my-gitlab-operator-kubernetes

  13. 使用する特定のオペランドの設定ファイルを作成し、今すぐ適用できます。

検証

  1. 次のコマンドを使用して、Operator が実行されていることを確認します。

    $ oc get pods -n olm-microshift 1
    1
    Subscription CR の namespace が使用されます。
    注記

    Operator が開始するまで 1 - 2 分ほどお待ちください。

    出力例

    NAME                                         READY   STATUS    RESTARTS   AGE
    gitlab-controller-manager-69bb6df7d6-g7ntx   2/2     Running   0          3m24s

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

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

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

会社概要

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

© 2024 Red Hat, Inc.