概要
Kubernetes Operator は、Kubernetes アプリケーションをパッケージ、デプロイ、管理する手段です。Kubernetes アプリケーションは Kubernetes にデプロイされ、Kubernetes API (アプリケーション・プログラミング・インタフェース) と kubectl ツールを使用して管理されます。
Kubernetes Operator は、Kubernetes API の機能を拡張したアプリケーション固有のコントローラーで、Kubernetes ユーザーに代わって複雑なアプリケーションのインスタンスを作成、設定、管理します。
Kubernetes のリソースとコントローラーの基本コンセプトをベースに構築されていますが、ドメインまたはアプリケーション固有の知識を含み、管理対象のソフトウェアのライフサイクル全体を自動化します。
Kubernetes では、コントロールプレーンのコントローラーがコントロールループを実装し、クラスタの目的の状態と実際の状態を繰り返し比較します。クラスタの実際の状態が目的の状態と一致しない場合、コントローラーは問題を修復するアクションを実施します。
Operator はカスタム Kubernetes コントローラーで、カスタムリソース (CR) を使用してアプリケーションとそのコンポーネントを管理します。ユーザーにより、高レベルの構成と設定がCR 内に提供されます。Kubernetes Operator は、Operator のロジックに埋め込まれたベストプラクティスに基づいて、高レベルのディレクティブを低レベルのアクションに変換します。
カスタムリソースは Kubernetes の API 拡張メカニズムです。カスタムリソース定義 (CRD) は CR を定義し、Operator のユーザーが使用できるすべての構成を一覧します。
Kubernetes Operator は CR タイプを監視してアプリケーション固有のアクションを実行し、現在の状態をそのリソースでの目的の状態に一致させます。
Kubernetes Operator はカスタムリソース定義を通じて新しいオブジェクトタイプを導入します。カスタムリソース定義は組み込みオブジェクトと同様に、kubectl による操作やロールベースのアクセス制御 (RBAC) ポリシーへの登録など、Kubernetes API で処理できます。
Kubernetes Operator はアプリケーションの実行状態をモニターし続けます。また、データをバックアップして障害から復旧し、時間が経てばアプリケーションをアップグレードでき、これらの動作は自動化されます。
Kubernetes Operator が実行するアクションには、複雑なアプリケーションのスケーリング、アプリケーションバージョンのアップグレード、さらには特殊なハードウェアによるコンピュートクラスタ内のノードのカーネルモジュールの管理まで、ほぼあらゆる処理を含められます。
Operator Framework
Operator Framework は、開発者およびランタイム Kubernetes ツールを提供するオープンソースプロジェクトで、Operator の開発をスピードアップできます。
Operator Framework には以下のものが含まれています。
- Operator SDK:Kubernetes API の複雑性に関する知識がなくても、開発者が自分の専門知識をベースに Operator を構築できます。
- Operator Lifecycle Management:Kubernetes クラスタ上で実行されるすべての Operator のインストール、アップデート、ライフサイクル管理を監視します。
- Operator Metering:専用サービスを提供する Operator の使用状況のレポートを作成できます。
Red Hat OpenShift での Operator の使用
Red Hat® OpenShift® はエンタープライズ対応の Kubernetes コンテナプラットフォームで、ハイブリッドクラウドやマルチクラウドのデプロイメントを管理するフルスタックの自動運用機能を備えています。
Red Hat OpenShift は Kubernetes Operator を使用してプラットフォーム全体を自律的に実行し、Kubernetes オブジェクトを通じて構成をネイティブに公開します。これにより、インストールを迅速に実行でき、アップデートを頻繁かつ確実に行います。
Red Hat OpenShift には組み込み OperatorHub が含まれています。これはソフトウェアベンダーやオープンソースプロジェクトからの認定済みの Operator のレジストリです。OperatorHub では、Red Hat OpenShift で動作することが検証済みで、ライフサイクル管理が容易になるようにパッケージされている Operator のライブラリを参照してインストールできます。