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

Operatorパターン とは?

最終更新:
💡 ベテラン運用者の知識をコードにした自動操縦士

Kubernetesでアプリケーション固有の運用知識をコードにして、管理を自動化する設計パターン。カスタムリソースと、それを監視して状態を調整するコントローラーを組み合わせる。

📌 このページのポイント
運用知識をコードで実行 望む状態 カスタム リソース 今の状態 実際のリソース Pod Pod Pod 監視・比較 Operator コントローラー 実装した手順で調整 API で操作 調整を繰り返して、望む状態へ近づける 機能・権限・利用環境により実行可否が変わる
上からの矢印は状態の監視、右側の矢印はAPIを通じた操作。CRDは種類の定義で、望む状態を書くカスタムリソースとは異なる。
ひよこ ひよこ
Operatorパターンって、自動化のことなの?
ペンギン先生 ペンギン先生
Kubernetesの標準機能に加えて、アプリケーション固有の運用手順を自動化する考え方だよ。たとえばデータベースのバックアップや更新を、運用知識を反映したコードで扱う。ただし、運用者の判断を何でも代行するわけではないんだ。
ひよこ ひよこ
どういう仕組みで動いているの?
ペンギン先生 ペンギン先生
望む状態を表すカスタムリソースと、実際のリソースをコントローラーが監視するよ。差分に応じてKubernetes APIを通じて操作する。この調整を繰り返す仕組みがReconciliationだね。
ひよこ ひよこ
CRDに、望む状態を書くの?
ペンギン先生 ペンギン先生
CRDはカスタムリソースの種類や項目の定義だよ。その定義に従って作る個々のカスタムリソースに、望む設定を書く。定義だけでは運用処理は動かず、対応するコントローラーの実装が必要なんだ。
ひよこ ひよこ
壊れたら、必ずすぐ元に戻る?
ペンギン先生 ペンギン先生
修復できる内容はOperatorの実装次第だよ。調整には時間がかかるし、権限不足やリソース不足などで進められない場合もある。バックアップや監視の設定も含めて、そのOperatorの機能と前提を確認するんだ。
ひよこ ひよこ
自分で作ることもできる?
ペンギン先生 ペンギン先生
作れるよ。Kubernetes APIを使うコントローラーと、管理対象のカスタムリソースを設計する。Operator SDKなどは開発を助ける道具だけれど、アプリケーションに合う調整や失敗時の扱いは自分で設計する必要があるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Operatorパターン」って出てきたら「Kubernetesの運用自動化のための設計パターン」と思えればだいたいOK!
📖 おまけ:英語の意味
「Operator Pattern」 = 運用者パターン
💬 人間のOperator(運用者)がやっていた作業をソフトウェアに任せるという発想から名付けられたよ

参考資料

← 用語集にもどる