第2章 Operators について
2.1. Operators について リンクのコピーリンクがクリップボードにコピーされました!
Operator は、人間の運用知識を複雑なアプリケーションを管理するソフトウェアに組み込む。Operators を使用すると、ネイティブのクラスターリソースと同じ API とツールを使用して、Kubernetes アプリケーションをパッケージ化、デプロイ、管理できます。
Operator は、ソフトウェアの他の部分を実行する運用上の複雑さを軽減するソフトウェアの特定の部分で設定されます。Operator はソフトウェアベンダーのエンジニアリングチームの拡張機能のように動作し、(OpenShift Container Platform などの) Kubernetes 環境を監視し、その最新状態に基づいてリアルタイムの意思決定を行います。高度な Operator はアップグレードをシームレスに実行し、障害に自動的に対応するように設計されており、時間の節約のためにソフトウェアのバックアッププロセスを省略するなどのショートカットを実行することはありません。
Kubernetes アプリケーションは、Kubernetes にデプロイされ、Kubernetes API および kubectl または oc ツールを使用して管理されるアプリケーションです。Kubernetes を最大限に活用するには、Kubernetes 上で実行されるアプリケーションを提供し、管理するために拡張できるように一連の総合的な API が必要です。Operators は、Kubernetes 上でこのタイプのアプリケーションを管理するランタイムと見なすことができます。
2.1.1. Operators を使用する理由 リンクのコピーリンクがクリップボードにコピーされました!
Operator は、Kubernetes 上でアプリケーションライフサイクルタスクを自動化するために、運用に関する知識をパッケージ化します。Operator は、再現性のあるインストール、ヘルスチェック、無線によるアップデート、およびソフトウェアに組み込まれた共有された専門知識を提供します。
- Kubernetes にデプロイする理由
- Kubernetes (延長線上で考えると OpenShift Container Platform も含まれる) には、シークレットの処理、負荷分散、サービスの検出、自動スケーリングなどの、オンプレミスおよびクラウドプロバイダーで機能する、複雑な分散システムをビルドするために必要なすべてのプリミティブが含まれます。
- アプリケーションを Kubernetes API および
kubectlツールで管理する理由 -
これらの API は機能的に充実しており、すべてのプラットフォームのクライアントを持ち、クラスターのアクセス制御/監査機能にプラグインします。Operator は Kubernetes の拡張メカニズム、カスタムリソース定義 (CRD、Custom Resource Definition ) を使用するため、
MongoDBなど のカスタムオブジェクトは、ビルトインされたネイティブ Kubernetes オブジェクトのように表示され、機能します。 - Operators とサービスブローカーとの比較
- サービスブローカーは、アプリケーションのプログラムによる検出およびデプロイメントを行うための 1 つの手段です。ただし、これは長期的に実行されるプロセスではないため、アップグレード、フェイルオーバー、またはスケーリングなどの Day 2 オペレーションを実行できません。カスタマイズおよびチューニング可能なパラメーターはインストール時に提供されるのに対し、Operator はクラスターの最新の状態を常に監視します。クラスター外のサービスを使用する場合は、Operators もこれらのクラスター外のサービスに使用できますが、これらをサービスブローカーで使用できます。
2.1.2. Operator Framework リンクのコピーリンクがクリップボードにコピーされました!
Operator フレームワークは、Operator の構築、テスト、配信、および更新を行うためのオープンソースツール群です。これには、Operator Lifecycle Manager (OLM)、Operator レジストリー、およびソフトウェアカタログが含まれます。
- Operator Lifecycle Manager
- Operator Lifecycle Manager (OLM) は、クラスター内の Operators のインストール、アップグレード、ロールベースのアクセス制御 (RBAC) を制御します。OpenShift Container Platform 4.22 では、デフォルトでデプロイされます。
- Operator Registry
- Operator Registry は、クラスターで作成するためのクラスターサービスバージョン (Cluster Service Version、CSV) およびカスタムリソース定義 (CRD) を保存し、パッケージおよびチャネルに関する Operator メタデータを保存します。これは Kubernetes または OpenShift クラスターで実行され、この Operator カタログデータを OLM に指定します。
- ソフトウェアカタログ
- ソフトウェアカタログは、クラスター管理者がクラスターにインストールする Operator を検索して選択するための Web コンソールです。OpenShift Container Platform ではデフォルトでデプロイされます。
これらのツールは組み立て可能なツールとして設計されているため、役に立つと思われるツールを使用できます。
2.1.3. Operator 成熟度モデル リンクのコピーリンクがクリップボードにコピーされました!
Operator 成熟度モデルは、Operator がサポートできる一般的な Day 2 オペレーションの 5 つのフェーズを記述しています。
Operator 内にカプセル化されている管理ロジックの複雑さのレベルはさまざまです。また、このロジックは通常 Operator によって表されるサービスのタイプによって大きく変わります。
ただし、大半の Operators に含まれる特定の機能セットは、Operator のカプセル化された操作の成熟度の規模を一般化することができます。このため、以下の Operator 成熟度モデルは、Operator の一般的な Day 2 オペレーションに関する 5 つのフェーズの成熟度を定義しています。
図2.1 Operator 成熟度モデル