Repolode
kubernetes-sigs

kubernetes-sigs/controller-runtime

Набор библиотек Go для создания контроллеров и операторов Kubernetes, лежащий в основе Kubebuilder и Operator SDK.

Звёзды
2,988
Форки
1,333
Открытые issues
69
Последний коммит
позавчера

Что это?

controller-runtime — набор библиотек Go для написания контроллеров Kubernetes. Контроллер отслеживает ресурсы кластера и приводит их фактическое состояние в соответствие с желаемым, заданным в API. Библиотека предоставляет общую инфраструктуру для этого подхода: менеджеры, запускающие контроллеры, конструкторы для настройки отслеживания ресурсов и циклов reconcile, а также клиент для чтения и записи объектов.

Проект служит общей средой выполнения для Kubebuilder и Operator SDK — инструментов, с которых обычно начинают создавать каркас новых операторов. Разработчики, которые пишут собственные контроллеры напрямую на Go, обычно импортируют эти пакеты, а не реализуют вручную код для informer и очередей задач. Версии привязаны к минорным релизам Kubernetes; таблица совместимости сопоставляет каждый релиз controller-runtime с версией client-go и минимальной версией Go.

Ключевые возможности

  • 01Менеджер для запуска нескольких контроллеров и координации их работы
  • 02API Builder для объявления отслеживаемых ресурсов и логики reconcile
  • 03Клиент с кэшем для чтения и записи объектов Kubernetes
  • 04Поддержка вебхуков и выбора лидера
  • 05Таблица совместимости, сопоставляющая релизы с версиями client-go и Go

Сценарии использования

  • Создание собственного оператора Kubernetes на Go
  • Написание контроллеров, которые выполняют reconcile пользовательских определений ресурсов
  • Расширение проектов, сгенерированных Kubebuilder, дополнительной логикой контроллеров

Быстрый старт

  1. 1

    Начните с Kubebuilder или Operator SDK, созданных на основе этой библиотеки (см. краткое руководство Kubebuilder).

Что важно знать

  • Проект остается на нулевой основной версии, поэтому между минорными версиями возможны несовместимые изменения.
  • Для каждой минорной версии указаны конкретная версия client-go и минимальная версия Go, поэтому их необходимо согласовать с зависимостями Kubernetes.

В подборках

Темы

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

Частые вопросы

Что такое controller-runtime?
Набор библиотек Go для создания контроллеров и операторов Kubernetes, лежащий в основе Kubebuilder и Operator SDK. controller-runtime — набор библиотек Go для написания контроллеров Kubernetes. Контроллер отслеживает ресурсы кластера и приводит их фактическое состояние в соответствие с желаемым, заданным в API. Библиотека предоставляет общую инфраструктуру для этого подхода: менеджеры, запускающие контроллеры, конструкторы для настройки отслеживания ресурсов и циклов reconcile, а также клиент для чтения и записи объектов.
controller-runtime можно использовать бесплатно? Какая у него лицензия?
controller-runtime распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
controller-runtime всё ещё поддерживается?
Активно поддерживается. Последний коммит в controller-runtime — 5 нояб. 2026 г..
Для чего можно использовать controller-runtime?
Создание собственного оператора Kubernetes на Go Написание контроллеров, которые выполняют reconcile пользовательских определений ресурсов Расширение проектов, сгенерированных Kubebuilder, дополнительной логикой контроллеров
Как установить controller-runtime?
Начните с Kubebuilder или Operator SDK, созданных на основе этой библиотеки (см. краткое руководство Kubebuilder).
Где скачать controller-runtime?
Исходный код и инструкции по установке — на GitHub: https://github.com/kubernetes-sigs/controller-runtime

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Оператор Kubernetes для развертывания и управления K8sGPT: он использует AI-бэкенд для диагностики проблем кластера и при необходимости автоматически устраняет ошибки загрузки образов.

489148GoApache-2.0Активно поддерживаетсяОбновлён вчера