Kroc - небольшой, но очень показательный проект для тех, кто хочет понять Kubernetes Operators не по слайдам, а по коду.
📌 Подробнее: https://github.com/pawelcit/kroc
MemOps🤨
Идея простая: вы описываете CRD Kroc, указываете, за какими объектами в Kubernetes нужно следить, и задаёте шаблон ресурса, который должен быть создан на основе найденного объекта.
Например, оператор может смотреть за Deployment, брать из него нужные поля и автоматически создавать связанные Pod, Service, ConfigMap или другие Kubernetes-объекты.
Внутри используется Go и Kubebuilder.
Самое интересное - реактивная модель.
Если исходный объект изменился, производные ресурсы пересоздаются.
Если кто-то вручную удалил созданный объект, оператор создаст его снова, чтобы вернуть кластер в нужное состояние.
По сути, это хороший минимальный пример того, как работает operator pattern в Kubernetes:
наблюдаем за состоянием
сравниваем с желаемым
создаём или пересоздаём ресурсы
держим систему синхронизированной
Архитектура тоже полезная для разбора: проект разделяет логику на несколько контроллеров.
Один отвечает за CRD и конфигурацию, второй наблюдает за внешними Kubernetes-объектами, третий создаёт производные ресурсы из шаблонов.
Для новичков в Kubernetes Operators это намного понятнее, чем сразу лезть в большие production-операторы.
Kroc хорошо показывает базовую механику: CRD, reconcile loop, watch, template rendering и управление жизненным циклом дочерних объектов.
MemOps
Please open Telegram to view this post
VIEW IN TELEGRAM