Jump to section

Kubernetes Operator とは

URL をコピー

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 が実行するアクションには、複雑なアプリケーションのスケーリング、アプリケーションバージョンのアップグレード、さらには特殊なハードウェアによるコンピュートクラスタ内のノードのカーネルモジュールの管理まで、ほぼあらゆる処理を含められます。

Kubernetes Operator の動作を実例を交えて説明し、Operator Framework とソフトウェア開発キットで Operator を構築する方法を紹介します。

Operator Framework は、開発者およびランタイム Kubernetes ツールを提供するオープンソースプロジェクトで、Operator の開発をスピードアップできます。

Operator Framework には以下のものが含まれています。

  • Operator SDK:Kubernetes API の複雑性に関する知識がなくても、開発者が自分の専門知識をベースに Operator を構築できます。
  • Operator Lifecycle Management:Kubernetes クラスタ上で実行されるすべての Operator のインストール、アップデート、ライフサイクル管理を監視します。
  • Operator Metering:専用サービスを提供する Operator の使用状況のレポートを作成できます。

Red Hat® OpenShift® はエンタープライズ対応の Kubernetes コンテナプラットフォームで、ハイブリッドクラウドマルチクラウドのデプロイメントを管理するフルスタックの自動運用機能を備えています。

Red Hat OpenShift は Kubernetes Operator を使用してプラットフォーム全体を自律的に実行し、Kubernetes オブジェクトを通じて構成をネイティブに公開します。これにより、インストールを迅速に実行でき、アップデートを頻繁かつ確実に行います。 

Red Hat OpenShift には組み込み OperatorHub が含まれています。これはソフトウェアベンダーやオープンソースプロジェクトからの認定済みの Operator のレジストリです。OperatorHub では、Red Hat OpenShift で動作することが検証済みで、ライフサイクル管理が容易になるようにパッケージされている Operator のライブラリを参照してインストールできます。

関連資料

記事

コンテナと VM

Linux コンテナと仮想マシン (VM) は、さまざまな IT コンポーネントが組み合わさってシステムの他の部分から分離している、パッケージ化されたコンピューティング環境です。

記事

コンテナ・オーケストレーションとは

コンテナ・オーケストレーションは、コンテナのデプロイメント、管理、スケーリング、ネットワーキングを自動化します。

記事

Linux コンテナとは

Linux コンテナとは、システムから分離された一連のプロセスであり、そのプロセスのサポートに必要なすべてのファイルを提供する個別のイメージから実行されます。

コンテナの詳細はこちら

製品

統合されたテスト済みのサービス一式を備えたエンタープライズ・アプリケーション・プラットフォームであり、ユーザーの選ぶインフラストラクチャを使ってアプリケーションを市場に投入するために活用できます。

リソース

トレーニング

無料のトレーニングコース

Running Containers with Red Hat Technical Overview

無料のトレーニングコース

Containers, Kubernetes and Red Hat OpenShift Technical Overview

無料のトレーニングコース

Developing Cloud-Native Applications with Microservices Architectures