Sveltos — это контроллер дополнений (add-on controller) для Kubernetes. Он разворачивает и управляет дополнениями и приложениями сразу в множестве кластеров, используя сопоставление по меткам (label-based matching). Sveltos не конкурирует с GitOps-контроллерами вроде ArgoCD или Flux — напротив, он расширяет их возможности. Контроллер работает в управляющем кластере (management cluster) и поддерживает Helm-чарты, чистый YAML/JSON, Kustomize, Carvel ytt и Jsonnet.
Ключевые преимущества
-
Нацеливание на флот по меткам: одна конфигурация обслуживает любое количество кластеров, удовлетворяющих заданным критериям.
-
Гибкое обнаружение дрейфа (drift detection) — с агентом или без: выберите режим, который подходит вашему окружению.
-
Шаблонизация на уровне кластера: одно определение, разные значения для каждого кластера.
-
Событийный фреймворк и поэтапные (progressive) выкатки: безопасная, автоматизированная и адаптируемая доставка изменений.
-
Развёртывание на периферии (Edge Deployments): лёгкие агенты, оптимизированные под ограниченные бюджеты CPU, памяти и пропускной способности сети. Sveltos разворачивает только то, что действительно нужно.
|
Примечание
|
«Новый кластер с правильными метками автоматически приводится в желаемое состояние — никаких дополнительных настроек». |
|
Совет
|
Если проект оказался вам полезен, поставьте ему звезду ⭐️ на GitHub — это помогает большему числу людей узнать о Sveltos! |
Возможности
🔄 Упорядоченное развёртывание: разворачивайте ресурсы в заданном порядке с помощью простых Custom Resource Definitions (CRDs). Предсказуемые и управляемые выкатки.
👥 Мультиарендность (Multitenancy): используйте ClusterProfile для политик уровня всего флота и Profile для изоляции арендаторов в рамках пространства имён (namespace).
🧩 Шаблонизация: описывайте дополнения и приложения как шаблоны — Sveltos создаёт конкретные экземпляры для каждого кластера на основе его метаданных.
⚡ Событийный фреймворк: запускайте развёртывания по событиям внутри кластера или из NATS, используя логику сопоставления на Lua или CEL.
🛡️ Pull-режим: разворачивайте приложения в изолированных окружениях — air-gapped, периферийных или находящихся за межсетевыми экранами.
🚦 Поэтапные выкатки: поэтапное развёртывание из единой конфигурации без необходимости поддерживать несколько профилей.
📢 Наблюдаемость (Observability): уведомления через Slack, Teams, Discord, Webex, Telegram, SMTP или события Kubernetes.
Конфигурации не привязаны к конкретному кластеру
GitOps-контроллер следит за репозиторием и синхронизирует манифесты. Sveltos берёт эти манифесты и применяет их ко всему флоту. Его конфигурации не ссылаются на конкретный кластер — вместо этого они нацелены на кластеры по меткам. Это означает: когда в флот добавляется новый кластер, никаких изменений в конфигурациях не требуется — достаточно проставить нужные метки.
Дополнительные репозитории проекта
-
addon-controller — основной контроллер дополнений; программно разворачивает дополнения и приложения в десятках кластеров. Поддерживает кластеры на базе ClusterAPI, Helm-чарты, Kustomize и YAML. Имеет встроенную поддержку мультиарендности.
-
projectsveltos — также содержит Kubernetes Job для автоматизации обновления CRD Sveltos в процессе обновления Helm-чарта.
-
website-v2 — официальная документация и лендинг проекта. Здесь можно узнать, как управлять дополнениями и автоматизировать очистку ресурсов в нескольких кластерах Kubernetes.