controller-runtime

カスタムコントローラーを開発するためには、Kubernetesが標準で提供しているclient-go, apimachinery, apiなどのパッケージを利用することになります。

controller-runtimeは、これらのパッケージを抽象化・隠蔽し、より簡単にカスタムコントローラーを実装可能にしたライブラリです。

抽象化・隠蔽しているとは言っても、Kubernetesのコンセプトに準拠する形で実装されています。 必要があればオプションを指定することにより、client-goapimachineryが提供している機能のほとんどを利用できます。 controller-runtimeの設計コンセプトについて知りたい方はKubeBuilder Design Principlesを参照してください。

controller-runtimeが提供する代表的なコンポーネントには以下のものがあります。

  • manager.Manager
    • 複数のコントローラーをまとめて管理するためのコンポーネント。
    • リーダー選出やメトリクスサーバーとしての機能など、カスタムコントローラーを実装するために必要な数多くの機能を提供します。
  • client.Client
    • Kubernetesのkube-apiserverとやり取りするためのクライアント。
    • 監視対象のリソースをインメモリにキャッシュする機能などを持ち、カスタムリソースも型安全に扱うことが可能なクライアントとなっている。
  • reconcile.Reconciler
    • カスタムコントローラーが実装すべきインタフェース。

以降のページではこれらの機能を詳細に解説していきます。

results matching ""

    No results matching ""