今日はOperatorsを調査しましたのでメモしました。
- Operatorsとは
- Operator Frameworkとは
- Operator Lifecycle Managerとは
- Operator SDKとは
- Operator Meteringとは
- Operator Frameworkとは
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