4.3. カタログの管理


重要

Operator Lifecycle Manager (OLM) v1 はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

クラスター管理者は、カタログ、つまり Operator と Kubernetes 拡張機能の厳選されたコレクションをクラスターに追加できます。Operator の作成者は、自社の製品をこれらのカタログに公開します。クラスターにカタログを追加すると、カタログに公開されている Operator と拡張機能のバージョン、パッチ、無線更新にアクセスできるようになります。

カスタムリソース (CR) を使用して、CLI からカタログと拡張機能を宣言的に管理できます。

ファイルベースのカタログは、Operator Lifecycle Manager(OLM) のカタログ形式の最新の反復になります。この形式は、プレーンテキストベース (JSON または YAML) であり、以前の SQLite データベース形式の宣言的な設定の進化であり、完全な下位互換性があります。

重要

Kubernetes は定期的に特定の API を非推奨とし、後続のリリースで削除します。その結果、Operator は API を削除した Kubernetes バージョンを使用する OpenShift Container Platform のバージョン以降、削除された API を使用できなくなります。

クラスターがカスタムカタログを使用している場合に、Operator の作成者がプロジェクトを更新してワークロードの問題や、互換性のないアップグレードを回避できるようにする方法は Operator の互換性の OpenShift Container Platform バージョンへの制御 を参照してください。

4.3.1. OLM v1 のカタログについて

catalogd コンポーネントを使用して、Operator やコントローラーなどの Kubernetes 拡張機能のカタログをクエリーすることで、インストール可能なコンテンツを検出できます。catalogd は、クラスター上のクライアント用にカタログコンテンツを展開する Kubernetes 機能拡張であり、マイクロサービスの Operator Lifecycle Manager (OLM) v1 スイートの一部です。現在、catalogd は、コンテナーイメージとしてパッケージ化および配布されているカタログコンテンツを解凍します。

重要

一意の名前を持たない Operator または拡張機能をインストールしようとすると、インストールが失敗するか、予期しない結果になる可能性があります。その原因は以下のとおりです。

  • クラスターに複数のカタログがインストールされている場合、Operator Lifecycle Manager (OLM) v1 には、Operator または拡張機能のインストール時にカタログを指定するメカニズムがありません。
  • OLM v1 では、クラスターにインストールできるすべての Operator および拡張機能のバンドルとパッケージに、一意の名前が使用されている必要があります。

4.3.2. OLM v1 で Red Hat が提供する Operator カタログ

Operator Lifecycle Manager (OLM) v1 には、Red Hat が提供する Operator カタログがデフォルトで含まれていません。Red Hat が提供するカタログをクラスターに追加する場合は、カタログのカスタムリソース (CR) を作成し、クラスターに適用します。次のカスタムリソース (CR) の例は、OLM v1 のカタログリソースを作成する方法を示しています。

重要
  • 現在、Operator Lifecycle Manager (OLM) v1 は、Red Hat が提供する Operator カタログなどのプライベートレジストリーを認証できません。これは既知の問題です。その結果、Red Hat Operators カタログがインストールされていることを前提とする OLM v1 の手順は機能しません。(OCPBUGS-36364)

  • registry.redhat.io からの Red Hat 提供 Operator カタログなど、プライベートレジストリーでホストされているカタログを使用する場合は、openshift-catalogd namespace にスコープ指定されたプルシークレットが必要です。

    詳細は、「セキュアなレジストリーでホストされるカタログのプルシークレットを作成する」を参照してください。

Red Hat Operator カタログの例

apiVersion: catalogd.operatorframework.io/v1alpha1
kind: ClusterCatalog
metadata:
  name: redhat-operators
spec:
  source:
    type: image
    image:
      ref: registry.redhat.io/redhat/redhat-operator-index:v4.17
      pullSecret: <pull_secret_name>
      pollInterval: <poll_interval_duration> 1

1
新しいイメージダイジェストを確認するためにリモートレジストリーをポーリングする間隔を指定します。デフォルト値は、24h です。有効な単位は、秒 (s)、分 (m)、および時間 (h) です。ポーリングを無効にするには、0s などのゼロ値を設定します。

認定 Operator カタログの例

apiVersion: catalogd.operatorframework.io/v1alpha1
kind: ClusterCatalog
metadata:
  name: certified-operators
spec:
  source:
    type: image
    image:
      ref: registry.redhat.io/redhat/certified-operator-index:v4.17
      pullSecret: <pull_secret_name>
      pollInterval: 24h

コミュニティー Operator カタログの例

apiVersion: catalogd.operatorframework.io/v1alpha1
kind: ClusterCatalog
metadata:
  name: community-operators
spec:
  source:
    type: image
    image:
      ref: registry.redhat.io/redhat/community-operator-index:v4.17
      pullSecret: <pull_secret_name>
      pollInterval: 24h

次のコマンドは、クラスターにカタログを追加します。

コマンド構文

$ oc apply -f <catalog_name>.yaml 1

1
redhat-operators.yaml などのカタログ CR を指定します。

4.3.3. プライベートレジストリーでホストされているカタログのプルシークレットを作成する

registry.redhat.io からの Red Hat 提供 Operator カタログなど、プライベートレジストリーでホストされているカタログを使用する場合は、openshift-catalogd namespace にスコープ指定されたプルシークレットが必要です。

catalogd は、OpenShift Container Platform クラスターからグローバルプルシークレットを読み取ることができません。Catalogd は、それがデプロイされている namespace でのみシークレットへの参照を読み取ることができます。

重要

現在、Operator Lifecycle Manager (OLM) v1 は、Red Hat が提供する Operator カタログなどのプライベートレジストリーを認証できません。これは既知の問題です。その結果、Red Hat Operators カタログがインストールされていることを前提とする OLM v1 の手順は機能しません。(OCPBUGS-36364)

前提条件

  • セキュアなレジストリーのログイン認証情報
  • Docker または Podman がワークステーションにインストールされている。

手順

  • セキュアなレジストリーのログイン認証情報を含む .dockercfg ファイルがすでにある場合は、次のコマンドを実行してプルシークレットを作成します。

    $ oc create secret generic <pull_secret_name> \
        --from-file=.dockercfg=<file_path>/.dockercfg \
        --type=kubernetes.io/dockercfg \
        --namespace=openshift-catalogd

    例4.9 コマンドの例

    $ oc create secret generic redhat-cred \
        --from-file=.dockercfg=/home/<username>/.dockercfg \
        --type=kubernetes.io/dockercfg \
        --namespace=openshift-catalogd
  • 保護されたレジストリーのログイン認証情報を含む $HOME/.docker/config.json ファイルがすでにある場合は、次のコマンドを実行してプルシークレットを作成します。

    $ oc create secret generic <pull_secret_name> \
        --from-file=.dockerconfigjson=<file_path>/.docker/config.json \
        --type=kubernetes.io/dockerconfigjson \
        --namespace=openshift-catalogd

    例4.10 コマンドの例

    $ oc create secret generic redhat-cred \
        --from-file=.dockerconfigjson=/home/<username>/.docker/config.json \
        --type=kubernetes.io/dockerconfigjson \
        --namespace=openshift-catalogd
  • セキュアなレジストリーのログイン認証情報を含む Docker 設定ファイルがない場合は、次のコマンドを実行してプルシークレットを作成します。

    $ oc create secret docker-registry <pull_secret_name> \
        --docker-server=<registry_server> \
        --docker-username=<username> \
        --docker-password=<password> \
        --docker-email=<email> \
        --namespace=openshift-catalogd

    例4.11 コマンドの例

    $ oc create secret docker-registry redhat-cred \
        --docker-server=registry.redhat.io \
        --docker-username=username \
        --docker-password=password \
        --docker-email=user@example.com \
        --namespace=openshift-catalogd

4.3.4. クラスターへのカタログの追加

カタログをクラスターに追加するには、カタログカスタムリソース (CR) を作成し、それをクラスターに適用します。

重要

現在、Operator Lifecycle Manager (OLM) v1 は、Red Hat が提供する Operator カタログなどのプライベートレジストリーを認証できません。これは既知の問題です。その結果、Red Hat Operators カタログがインストールされていることを前提とする OLM v1 の手順は機能しません。(OCPBUGS-36364)

前提条件

  • registry.redhat.io からの Red Hat 提供 Operator カタログなど、プライベートレジストリーでホストされているカタログを使用する場合は、openshift-catalogd namespace にスコープ指定されたプルシークレットが必要です。

    catalogd は、OpenShift Container Platform クラスターからグローバルプルシークレットを読み取ることができません。Catalogd は、それがデプロイされている namespace でのみシークレットへの参照を読み取ることができます。

手順

  1. 次の例のようなカタログカスタムリソース (CR) を作成します。

    redhat-operators.yaml の例

    apiVersion: catalogd.operatorframework.io/v1alpha1
    kind: ClusterCatalog
    metadata:
      name: redhat-operators
    spec:
      source:
        type: image
        image:
          ref: registry.redhat.io/redhat/redhat-operator-index:v4.17 1
          pullSecret: <pull_secret_name> 2
          pollInterval: <poll_interval_duration> 3

    1
    spec.source.image フィールドにカタログのイメージを指定します。
    2
    カタログが registry.redhat.io などのセキュアなレジストリーでホストされている場合は、スコープを openshift-catalog namespace に設定したプルシークレットを作成する必要があります。
    3
    新しいイメージダイジェストを確認するためにリモートレジストリーをポーリングする間隔を指定します。デフォルト値は、24h です。有効な単位は、秒 (s)、分 (m)、および時間 (h) です。ポーリングを無効にするには、0s などのゼロ値を設定します。
  2. 次のコマンドを実行して、カタログをクラスターに追加します。

    $ oc apply -f redhat-operators.yaml

    出力例

    catalog.catalogd.operatorframework.io/redhat-operators created

検証

  • 次のコマンドを実行して、カタログのステータスを確認します。

    1. 次のコマンドを実行して、カタログが利用可能かどうかを確認します。

      $ oc get clustercatalog

      出力例

      NAME                  AGE
      redhat-operators      20s

    2. 次のコマンドを実行して、カタログのステータスを確認します。

      $ oc describe clustercatalog

      出力例

      Name:         redhat-operators
      Namespace:
      Labels:       <none>
      Annotations:  <none>
      API Version:  catalogd.operatorframework.io/v1alpha1
      Kind:         ClusterCatalog
      Metadata:
        Creation Timestamp:  2024-06-10T17:34:53Z
        Finalizers:
          catalogd.operatorframework.io/delete-server-cache
        Generation:        1
        Resource Version:  46075
        UID:               83c0db3c-a553-41da-b279-9b3cddaa117d
      Spec:
        Source:
          Image:
            Pull Secret:  redhat-cred
            Ref:          registry.redhat.io/redhat/redhat-operator-index:v4.17
          Type:           image
      Status: 1
        Conditions:
          Last Transition Time:  2024-06-10T17:35:15Z
          Message:
          Reason:                UnpackSuccessful 2
          Status:                True
          Type:                  Unpacked
        Content URL:             https://catalogd-catalogserver.openshift-catalogd.svc/catalogs/redhat-operators/all.json
        Observed Generation:     1
        Phase:                   Unpacked 3
        Resolved Source:
          Image:
            Last Poll Attempt:  2024-06-10T17:35:10Z
            Ref:                registry.redhat.io/redhat/redhat-operator-index:v4.17
            Resolved Ref:       registry.redhat.io/redhat/redhat-operator-index@sha256:f2ccc079b5e490a50db532d1dc38fd659322594dcf3e653d650ead0e862029d9 4
          Type:                 image
      Events:                   <none>

      1
      カタログのステータスを記述します。
      2
      カタログが現在の状態になっている理由を表示します。
      3
      インストールプロセスのフェーズを表示します。
      4
      カタログのイメージ参照を表示します。

4.3.5. カタログの削除

カタログを削除するには、そのカスタムリソース (CR) を削除します。

前提条件

  • カタログがインストールされています。

手順

  • 次のコマンドを実行してカタログを削除します。

    $ oc delete clustercatalog <catalog_name>

    出力例

    catalog.catalogd.operatorframework.io "my-catalog" deleted

検証

  • 次のコマンドを実行して、カタログが削除されたことを確認します。

    $ oc get clustercatalog
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.