【おぺれーたーぱたーん】

Operatorパターン とは?

💡 ベテラン運用者の知識をコードにした自動操縦士
📌 このページのポイント
Kubernetes Operator の Reconciliation Loop あるべき姿 (Custom Resource) replicas: 3 version: v2 Operator (Controller) Watch → 差分検出 → Reconcile 今の状態 (実際のリソース) Pods, Services... Reconcile Loop 1. 変更検知 2. 差分計算 3. 修正実行 4. 状態一致 あるべき姿と今の状態を常に一致させ続ける
Operatorパターンによる自動Reconciliationのイメージ
ひよこ ひよこ

Operatorパターンって、自動化のことなの?

ペンギン先生 ペンギン先生

ただの自動化じゃなくて、『運用のプロがやるような判断』まで自動化するのがポイントだよ。たとえばデータベースのレプリカが壊れたら、自動で新しいレプリカを作って、データを同期して、クラスタに参加させる、みたいな複雑な作業を全自動で行うんだ。

ひよこ ひよこ

どういう仕組みで動いているの?

ペンギン先生 ペンギン先生

Kubernetesの『Reconciliation Loop(調整ループ)』という仕組みを使っているよ。『あるべき状態』と『現在の状態』を常に比較して、差分があれば自動的に修正するんだ。

ひよこ ひよこ

自分でOperatorを作ることもできるの?

ペンギン先生 ペンギン先生

Operator SDKやkubebuilderというフレームワークを使えば作れるよ。Go言語で書くのが一般的だけど、AnsibleHelmベースのOperatorも作成できるんだ。

ひよこ ひよこ

有名なOperatorにはどんなものがあるの?

ペンギン先生 ペンギン先生

PostgreSQLのCloudNativePG、ElasticsearchのECK、PrometheusPrometheus Operatorなどが有名だよ。OperatorHubというカタログサイトに数百のOperatorが公開されていて、コミュニティがどんどん充実させているんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Operatorパターン」って出てきたら「Kubernetesの運用自動化のための設計パターン」と思えればだいたいOK!
📖 おまけ:英語の意味
「Operator Pattern」 = 運用者パターン
💬 人間のOperator(運用者)がやっていた作業をソフトウェアに任せるという発想から名付けられたよ
← 用語集にもどる