概要
Red Hat® OpenShift® Operator は、Kubernetes ネイティブ・アプリケーションの作成、構成、管理を自動化します。カスタムリソース定義、自動修正、継続的ループを使用して YAML ファイルを構成します。Red Hat OpenShift は Operator を使用してアプリケーション・プラットフォームを自律的に実行するとともに、Kubernetes オブジェクトを通じてネイティブに構成を公開することで、迅速なインストールと定期的かつ堅牢なアップデートを可能にします。
Operator は、プラットフォームを構成する要素の管理から、マネージドサービスとして提供されるアプリケーションに至るまで、スタックのあらゆるレベルで自動化を実現します。プラットフォームの管理が Operator によって自動化されるメリットに加えて、Red Hat OpenShift により、クラスタで実行されている Operator の検索、インストール、管理が容易になります。
Red Hat OpenShift には、ソフトウェアベンダーおよびオープンソース・プロジェクトが提供する認定済み Operator のレジストリである、OperatorHub が組み込まれています。組み込み OperatorHub では、Operator のライブラリを参照してインストールできます。これらの Operator は Red Hat OpenShift での動作が検証済みであり、ライフサイクル管理を容易にするためにパッケージ化されています。
Kubernetes Operator とは
Kubernetes Operator は、Kubernetes ネイティブ・アプリケーションをパッケージ化、デプロイ、管理する手法の 1 つです。Kubernetes ネイティブ・アプリケーションとは、Kubernetes にデプロイされ、かつ Kubernetes API と kubectl ツールを使用して管理されるアプリケーションのことです。
Operator は基本的にはカスタムコントローラーです。
コントローラーは Kubernetes の中心的な概念であり、Kubernetes マスターノードで継続的に実行されるソフトウェアループとして実装され、オブジェクトについて指定されたあるべき状態と現在の状態とを比較して、必要に応じて調整します。オブジェクトは、Pod、サービス、ConfigMap、PersistentVolume などのよく知られたリソースです。Operator はこのモデルをアプリケーション全体のレベルで適用し、事実上、アプリケーション固有のコントローラーです。
Operator は、クラスタ上の Pod で実行されているソフトウェアであり、Kubernetes API サーバーとやり取りします。Kubernetes の拡張メカニズムであるカスタムリソース定義を使用して、新しいオブジェクトタイプを導入します。これらのカスタムオブジェクトは、ユーザーのプライマリーインタフェースであり、Kubernetes クラスタのリソースベースのインタラクションモデルと一貫性があります。
Operator はこれらのカスタムリソースタイプを監視し、その存在や変更についての通知を受け取ります。Operator はこの通知を受け取ると、ループの実行を開始して、これらのオブジェクトが示すアプリケーションサービスに必要なすべての接続が実際に利用可能であり、ユーザーがオブジェクトの仕様で指定した方法で設定されていることを確認します。
Red Hat のリソース
Operator Framework とは
Operator Framework は、開発者やクラスタ管理者に、Operator の開発とデプロイを迅速化するためのツールを提供するオープンソース・プロジェクトです。
このプロジェクトには、Kubernetes アプリケーションを構築するための Operator ソフトウェア開発キット (SDK)、Operator を使用して Kubernetes を拡張するための管理フレームワーク、Kubernetes コミュニティの既存の Operator カタログが含まれています。
ビルド済み Operator
コミュニティ Operator
コミュニティの Operator にアクセスすると、開発者やクラスタ管理者は、任意の Kubernetes で使用できるさまざまな成熟度の Operator を試すことができます。OperatorHub.io でコミュニティ Operator をご確認ください。
認定 Operator
組み込み OperatorHub にある Red Hat OpenShift 認定 Operator を使用すると、開発者やクラスタ管理者は、Red Hat OpenShift で検証済みで、Red Hat とそのパートナーによってサポートされている「as-a-Service」ワークロードのライブラリにアクセスできます。
Operator SDK を使用したビルド
Operator SDK は、Operator をビルド、テスト、パッケージ化するためのツールを提供します。SDK が、Kubernetes API との統合に通常必要とされる多くの定型コードを代わりに処理し、便利なテンプレートも提供します。そのため、開発者はビジネスロジック (管理するアプリケーションをスケーリング、アップグレード、バックアップする方法など) の追加に注力できます。作業の重複を防ぐために、Operator 間で共有された主要なプラクティスとコードパターンが SDK に組み込まれています。また、SDK は、Operator の基本的な検証を可能にするツールと、Operator Lifecycle Manager を使用してデプロイの自動パッケージ化を可能にするツールを使用して、短期間の反復的な開発およびテストサイクルを促進します。

Operator Lifecycle Manager を使用したパッケージ化
Operator Lifecycle Manager (OLM) は、Kubernetes クラスタでの Operator の管理を容易にするバックプレーンです。主要なアプリケーションをサービスとして提供する Operator は、長期間にわたって稼働するワークロードとなり、クラスタ上で多くの権限を持つ可能性があります。
管理者は OLM を使用して、どの namespace でどの Operator を利用できるかや、どのユーザーが実行中の Operator を操作できるかを制御できます。Operator の権限は、最小特権のアプローチに従って自動的かつ正確に設定されます。OLM は、他の Operator への依存関係の解決、Operator と Operator が管理するアプリケーションの両方へのアップデートのトリガー、クラスタのスライスに対する Operator へのアクセス権の付与などを行うことで、Operator とそのリソースのライフサイクル全体を管理します。
シンプルなステートレス・アプリケーションでは、汎用 Operator (Helm Operator など) を使用して、コードを作成することなく、Operator Framework のライフサイクル管理機能を使用できます。しかし、Operator が特に役立つのは、複雑なステートフル・アプリケーションです。Operator コードにエンコードされているマネージドサービス機能は、高度なユーザーエクスペリエンスを実現でき、アップデート、バックアップ、スケーリングなどの機能が自動化されます。
Operator と Helm の仕組みを説明する概要動画を見る

Operator Metering を使用した測定
測定の拡張機能により、IT チームは予算をより適切に制御できるようになり、ソフトウェアベンダーは商用ソフトウェアの使用状況をより簡単に追跡できるようになります。Operator Metering は、クラスタの CPU およびメモリーのレポートと連携し、IaaS のコストやカスタマイズされたメトリクス (ライセンスなど) を算出するように設計されています。
Red Hat OpenShift でアプリケーション開発を加速する
Red Hat OpenShift により、組織はセキュリティとコンプライアンスを確保しながら、従来のワークロードと AI を活用したワークロードを構築、加速、スケーリングすることができます。その詳細をご覧ください。