1. ホーム
  2. kubernetes

[解決済み] Kubernetes ControllerとKubernetes Operatorの違いは何ですか?

2022-11-05 13:30:11

質問

Kubernetes Controllerの目的は、現在の状態が目的の状態と同じであることを確認することだと理解しています。それでも、Kubernetes Operatorは同じ仕事をします。

Control-planeにあるControllerの一覧です。

  • デプロイメント
  • レプリカセット
  • ステートフルセット
  • デーモンセット
  • その他

Googleで検索したところ、K8s Operatorには以下のようなものがあることがわかりました。

  • etcd オペレータ
  • Prometheusオペレータ
  • コング・オペレーター

しかし、なぜControllerを使うとできないのかが理解できなかったのですが?

OperatorはControllerを補完しているのでしょうか?

この2つのデザインの目的、機能としての違いは何でしょうか。

ControllerとOperatorのどちらを選ぶべきか、注意すべき点は何でしょうか??

どのように解決するのですか?

kubernetes operator"という用語は、以下の方が紹介されていたと思います。 このCoreOSの人たち

Operatorは、Kubernetes APIを拡張し、Kubernetesユーザーに代わって複雑なステートフルアプリケーションのインスタンスを作成、設定、管理するアプリケーション固有のコントローラです。基本的なKubernetesリソースとコントローラの概念に基づいて構築されますが、ドメインまたはアプリケーション固有の知識も含まれており、コンピュータによってよりよく管理される一般的なタスクを自動化します。

つまり、基本的に kubernetes operator は、Prometheus や etcd などのアプリケーションを設定および管理するために、Kubernetes API に新しいオブジェクトを追加する kubernetes コントローラで構成されるパターンの名前なのです。

一文で言うと オペレーターとは、ドメイン固有のコントローラーのことです。

更新

現在 Github に新しいディスカッションがあります。 に新しい議論があり、同じブログ投稿にリンクしています。ディスカッションの関連する部分は以下のとおりです。

すべてのOperatorはコントローラパターンを使用しますが、すべてのコントローラがOperatorであるわけではありません。コントローラパターン + API拡張 + 単一アプリフォーカス]を備えている場合のみ、Operatorです。

Operatorは、CRDを使用して実装されたカスタマイズされたコントローラです。組み込みコントローラと同じパターン(例: watch, diff, action)に従います。

更新2

私が見つけたのは 新しいブログ記事 を見つけ、その違いも説明しようとしています。