Operatorsを調査してみる

今日はOperatorsを調査しましたのでメモしました。

  • Operatorsとは
    • Operator Frameworkとは
      • Operator Lifecycle Managerとは
      • Operator SDKとは
      • Operator Meteringとは

Operatorsとは


Operatorsは、KubernetesアプリケーションをKubernetes APIやkubectlコマンドによってパッケージ化・デプロイ・管理する方法です。Kubernetesが提供していないリソースを自分で作成し、それをKubernetes APIやkubectlで操作することによってKubernetesアプリケーションを管理します。

参考元)https://coreos.com/operators/

運用のナレッジをソフトウェアに落とし込むことによって、運用の自動化を促進するだけでなく、他のユーザーと共有できることを目的としています。その象徴として、OperatorHubはKubernetes Communityで共有されたOperatorがアップロードされており、誰でも利用することができます。

参考元)https://www.redhat.com/en/blog/introducing-operator-framework-building-apps-kubernetes

Operator Frameworkとは


Operator Frameworkとは、OperatorのOSSツールキットです。Operator Frameworkには、以下の三つが備わっています。

  • Operator Lifecycle Manager
  • Operator SDK
  • Operator Metering

Operator Lifecycle Managerとは


Operator Lifecycle Managerとは、Operatorにおけるインストール・アップデート・管理などのライフサイクルを管理する機能を提供します。具体的には以下の機能があります。

  • Over-the-Air Updates and Catalogs・・・インストールして最新に保つためのカタログの概念で、メンテナーはアップデートパスをきめ細かくオーサリングできます。
  • Dependency Model・・・プラットフォームや他Operatorとの依存関係を表現します。
  • Discoverability・・・インストール可能なOperatorを検知し、管理者に表示します。
  • Cluster Stability・・・同じAPIを利用するOperator同士の衝突を防ぎ、クラスターの安定性を保ちます。
  • Declarative UI controls・・・コマンドラインがAPIであるため、GUIを使ってOperatorとの対話に豊富なインタフェースを付け加えることが可能です。

参考元)https://github.com/operator-framework/operator-lifecycle-manager/

Operator SDKとは


Operator SDKは、Kubernetes APIの知識が無くてもOperatorが開発できるようにするため、以下を提供しています。

  • より直感的に操作ロジックを作成するための高レベルAPIおよび抽象化
  • 新しいプロジェクトを素早くブートストラップするためのコード生成ツール
  • 一般的なオペレーターの使用例をカバーする拡張機能

SDKは、Golang、Ansible、Helmを利用することができます。

参考元)https://sdk.operatorframework.io/docs/

Operator Meteringとは


Operator Meteringとは、Kubernetesの使用量を観測しレポートする機能を提供します。CPUやメモリをレポートするだけでなく、AWSなどのCloudと連携することによってIaaSコストもレポートすることができるようになります。

参考元)https://www.redhat.com/en/blog/introducing-operator-framework-building-apps-kubernetes