Repolode
kubernetes-sigs

kubernetes-sigs/controller-runtime

KubernetesコントローラーやOperatorの構築に使うGoライブラリ群。KubebuilderとOperator SDKの基盤です。

スター
2,988
フォーク
1,332
未解決の Issue
69
最終コミット
3 日前

これは何?

controller-runtimeは、Kubernetesコントローラーを記述するためのGoライブラリ群です。コントローラーはクラスター内のリソースを監視し、APIで宣言された望ましい状態に実際の状態を近づけます。このライブラリは、コントローラーを実行するManager、監視対象やreconcileループを設定するBuilder、オブジェクトの読み書きを行うClientなど、このパターンに必要な共通機能を提供します。

このプロジェクトは、Operatorの雛形を作成する際によく使われるKubebuilderとOperator SDKを支える共通ランタイムです。Goでコントローラーを直接構築する開発者は、informerやwork queueのコードを自分で書く代わりに、通常これらのパッケージをimportします。各バージョンはKubernetesのマイナーリリースに対応しており、controller-runtimeの各リリースに対応するclient-goのバージョンと、必要なGoの最低バージョンを互換性テーブルで確認できます。

主な機能

  • 01複数のコントローラーを実行・調整するManager
  • 02監視対象やreconcileロジックを宣言するBuilder API
  • 03Kubernetesオブジェクトの読み書きに使うキャッシュ付きClient
  • 04Webhookとリーダー選出への対応
  • 05各リリースとclient-goおよびGoのバージョンの対応を示す互換性テーブル

ユースケース

  • GoでカスタムKubernetes Operatorを構築する
  • カスタムリソース定義をreconcileするコントローラーを記述する
  • Kubebuilderで生成したプロジェクトにコントローラーロジックを追加する

クイックスタート

  1. 1

    このライブラリを基盤とする Kubebuilder または Operator SDK から始めましょう(Kubebuilder のクイックスタートを参照)

使う前に知っておきたいこと

  • このプロジェクトはメジャーバージョン 0 のままで、マイナーバージョン間で破壊的変更が行われることがあります。
  • 各マイナーバージョンには、対応する client-go のバージョンと最低 Go バージョンが定められているため、Kubernetes の依存関係と一致させる必要があります。

収録されている特集

トピック

#kubernetes#golang#operator#controller#k8s-api#cloud-native#k8s-sig-api-machinery

よくある質問

controller-runtime とは?
KubernetesコントローラーやOperatorの構築に使うGoライブラリ群。KubebuilderとOperator SDKの基盤です。 controller-runtimeは、Kubernetesコントローラーを記述するためのGoライブラリ群です。コントローラーはクラスター内のリソースを監視し、APIで宣言された望ましい状態に実際の状態を近づけます。このライブラリは、コントローラーを実行するManager、監視対象やreconcileループを設定するBuilder、オブジェクトの読み書きを行うClientなど、このパターンに必要な共通機能を提供します。
controller-runtime は無料で使えますか?ライセンスは?
controller-runtime は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
controller-runtime は今もメンテナンスされていますか?
活発にメンテナンス中。controller-runtime の最終コミットは 2026年11月5日 です。
controller-runtime は何に使えますか?
GoでカスタムKubernetes Operatorを構築する カスタムリソース定義をreconcileするコントローラーを記述する Kubebuilderで生成したプロジェクトにコントローラーロジックを追加する
controller-runtime のインストール方法は?
このライブラリを基盤とする Kubebuilder または Operator SDK から始めましょう(Kubebuilder のクイックスタートを参照)
controller-runtime はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/kubernetes-sigs/controller-runtime

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト