7.2.2. Operator Controller (テクノロジープレビュー)


Operator Controller は、Operator Lifecycle Manager (OLM) 1.0 の中心的なコンポーネントであり、他の OLM 1.0 コンポーネント (RukPak および catalogd) を使用します。Operator Controller は API で Kubernetes を拡張し、これを通してユーザーは Operator や機能拡張をインストールできます。

重要

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

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

7.2.2.1. Operator API

Operator Controller は、インストールされている Operator のインスタンスを表すシングルリソースである新しい Operator API オブジェクトを提供します。この Operator.operators.operatorframework.io API は、ユーザー向け API をシングルオブジェクトに統合することで、インストールされた Operator の管理を合理化します。

重要

OLM 1.0 では、Operator オブジェクトはクラスタースコープです。これは、関連する Subscription オブジェクトと OperatorGroup オブジェクトの設定に応じて、Operator が namespace スコープまたはクラスタースコープになる以前の OLM バージョンとは異なります。

以前の動作について、詳細はマルチテナント対応と Operator のコロケーション を参照してください。

Operator オブジェクトの例

apiVersion: operators.operatorframework.io/v1alpha1
kind: Operator
metadata:
  name: <operator_name>
spec:
  packageName: <package_name>
  channel: <channel_name>
  version: <version_number>

注記

OpenShift CLI (oc) を使用する場合、このテクノロジープレビューフェーズで OLM 1.0 が提供する Operator リソースでは、完全な <resource>.<group> 形式 (operator.operators.operatorframework.io) を指定する必要があります。以下に例を示します。

$ oc get operator.operators.operatorframework.io

API グループを指定せずに Operator リソースのみを指定すると、CLI は OLM 1.0 に関連付けられていない以前の API (operator.operators.coreos.com) の結果を返します。

7.2.2.1.1. OLM 1.0 のターゲットバージョンについて

Operator Lifecycle Manager (OLM) 1.0 では、クラスター管理者は Operator のターゲットバージョンを Operator のカスタムリソース (CR) で宣言的に設定します。

Operator の CR でチャネルを指定すると、OLM 1.0 は指定されたチャネルから最新リリースをインストールします。更新が指定されたチャネルに公開されると、OLM 1.0 はそのチャネルからの最新リリースに自動的に更新します。

チャネルを指定した CR の例

apiVersion: operators.operatorframework.io/v1alpha1
kind: Operator
metadata:
  name: quay-example
spec:
  packageName: quay-operator
  channel: stable-3.8 
1

1
指定されたチャネルに公開された最新リリースをインストールします。チャネルへの更新は自動的にインストールされます。

CR で Operator のターゲットバージョンを指定すると、OLM 1.0 は指定されたバージョンをインストールします。ターゲットバージョンが Operator の CR で指定されている場合、OLM 1.0 は更新がカタログに公開されるときにターゲットバージョンを変更しません。

クラスターにインストールされている Operator のバージョンを更新する場合は、Operator の CR を手動で更新する必要があります。Operator のターゲットバージョンを指定すると、Operator のバージョンが指定されたリリースに固定されます。

ターゲットバージョンを指定した CR の例

apiVersion: operators.operatorframework.io/v1alpha1
kind: Operator
metadata:
  name: quay-example
spec:
  packageName: quay-operator
  version: 3.8.12 
1

1
ターゲットのバージョンを指定します。クラスターにインストールされている Operator のバージョンを更新する場合は、Operator の CR のこのフィールドを目的のターゲットバージョンに手動で更新する必要があります。

Operator のインストールされているバージョンを変更する場合は、Operator の CR を編集して目的のターゲットバージョンにします。

警告

OLM の以前のバージョンでは、Operator の作成者は、サポートされていないバージョンへの更新を防ぐためにアップグレードエッジを定義できました。現在の開発状態では、OLM 1.0 はエッジ定義のアップグレードを強制しません。Operator の任意のバージョンを指定でき、OLM 1.0 は更新の適用を試みます。

次のコマンドを実行すると、使用可能なバージョンやチャネルを含む Operator のカタログの内容を検査できます。

コマンド構文

$ oc get package <catalog_name>-<package_name> -o yaml

CR を作成または更新した後、次のコマンドを実行して Operator を作成または設定します。

コマンド構文

$ oc apply -f <extension_name>.yaml

トラブルシューティング

  • 存在しないターゲットバージョンまたはチャネルを指定した場合は、次のコマンドを実行して Operator のステータスを確認できます。

    $ oc get operator.operators.operatorframework.io <operator_name> -o yaml

    出力例

    apiVersion: operators.operatorframework.io/v1alpha1
    kind: Operator
    metadata:
      annotations:
        kubectl.kubernetes.io/last-applied-configuration: |
          {"apiVersion":"operators.operatorframework.io/v1alpha1","kind":"Operator","metadata":{"annotations":{},"name":"quay-example"},"spec":{"packageName":"quay-operator","version":"999.99.9"}}
      creationTimestamp: "2023-10-19T18:39:37Z"
      generation: 3
      name: quay-example
      resourceVersion: "51505"
      uid: 2558623b-8689-421c-8ed5-7b14234af166
    spec:
      packageName: quay-operator
      version: 999.99.9
    status:
      conditions:
      - lastTransitionTime: "2023-10-19T18:50:34Z"
        message: package 'quay-operator' at version '999.99.9' not found
        observedGeneration: 3
        reason: ResolutionFailed
        status: "False"
        type: Resolved
      - lastTransitionTime: "2023-10-19T18:50:34Z"
        message: installation has not been attempted as resolution failed
        observedGeneration: 3
        reason: InstallationStatusUnknown
        status: Unknown
        type: Installed

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る