Обзор функции
Поддержка Immutable Infrastructure предоставляет комплексные возможности управления кластером и облачной инфраструктурой, разработанные для корпоративных развертываний Kubernetes. Эта платформа использует передовые методы автоматизации и принципы инфраструктуры как кода для обеспечения надежных, масштабируемых и удобных в сопровождении инфраструктурных решений.
Содержание
Управление кластеромСоздание кластераУдаление кластераМасштабирование кластераОбновление кластераПоддерживаемые провайдеры инфраструктурыУправление вычислительными ресурсамиОперации жизненного цикла вычислительных ресурсовОпции конфигурации вычислительных ресурсовСценарии использованияСценарий 1: Высокодоступная управляющая плоскостьСценарий 2: Горизонтальное масштабирование под нагрузкуСценарий 3: Пошаговые обновления без простоевСценарий 4: Управление несколькими пулами узловУправление кластером
Наша платформа предлагает полный цикл управления жизненным циклом Kubernetes-кластера с применением принципов immutable OS, обеспечивая согласованные и воспроизводимые развертывания в различных средах.
Создание кластера
- Поддержка Immutable OS: Создание кластеров с использованием паттернов immutable OS для повышения безопасности и согласованности
- Автоматическое Provisioning вычислительных ресурсов: Автоматическое выделение вычислительных инстансов с преднастроенными спецификациями
- Автоматизация Bootstrap: Автоматизированный запуск кластера с минимальным участием вручную
Удаление кластера
- Полная очистка ресурсов: Комплексный процесс удаления, который удаляет все связанные ресурсы
- Освобождение ресурсов провайдера: Корректное освобождение ресурсов провайдера для предотвращения «осиротевших» инстансов
Масштабирование кластера
- Горизонтальное масштабирование: Добавление или удаление рабочих узлов для удовлетворения требований нагрузки
- Автоматическое управление вычислительными ресурсами: Автоматическое создание и освобождение инстансов при операциях масштабирования
- Масштабирование без простоев: Выполнение операций масштабирования без прерывания сервиса
Обновление кластера
- Управление версиями Kubernetes: Плавные обновления до новых версий Kubernetes
Поддерживаемые провайдеры инфраструктуры
Наша платформа использует модель подключаемых провайдеров, согласованную с провайдерами инфраструктуры Cluster API. Она предназначена для работы с несколькими инфраструктурными платформами. В настоящее время поддерживается провайдер инфраструктуры DCS, а также ведется работа по добавлению дополнительных провайдеров.
- Независимый от провайдера дизайн: Основные рабочие процессы едины для всех провайдеров
- Текущая поддержка: провайдер инфраструктуры DCS
- Дорожная карта: добавляются дополнительные провайдеры
Управление вычислительными ресурсами
Продвинутое управление жизненным циклом виртуальных машин с корпоративными функциями для оптимального использования ресурсов и производительности.
Операции жизненного цикла вычислительных ресурсов
- Создание вычислительных инстансов: Выделение инстансов с настраиваемыми спецификациями и конфигурациями
- Удаление вычислительных инстансов: Безопасное удаление с корректной очисткой ресурсов
Опции конфигурации вычислительных ресурсов
- Выбор инстанса/флейвора: Выбор из предопределенных типов инстансов или флейворов, оптимизированных для различных нагрузок
- Настройка размера: Гибкие варианты размеров — от небольших инстансов для разработки до крупных для производственных нагрузок
- Распределение ресурсов: Точный контроль над выделением CPU, памяти и хранилища
- Настройка сети: Расширенные сетевые опции, включая пользовательские подсети и группы безопасности
- Опции хранения: Несколько типов и классов хранилища (например, SSD, HDD, NVMe) для различных требований к производительности
Сценарии использования
Сценарий 1: Высокодоступная управляющая плоскость
Сценарий: Развернуть производственный кластер с высокодоступной управляющей плоскостью для обеспечения стабильности кластера.
Реализация:
- Развертывание управляющей плоскости из 3 узлов с автоматическим переключением при сбое
- Узлы управляющей плоскости распределены по разным зонам доступности (при поддержке инфраструктуры)
- Балансировщик нагрузки автоматически распределяет трафик API-сервера
- Автоматическое восстановление отказавших компонентов управляющей плоскости
Преимущества:
- Отсутствие единой точки отказа в управляющей плоскости
- Кластер остается работоспособным даже при сбое одного узла управляющей плоскости
- Автоматическое восстановление снижает необходимость ручного вмешательства
Сценарий 2: Горизонтальное масштабирование под нагрузку
Сценарий: Реагировать на возросшую нагрузку приложения добавлением рабочих узлов, затем уменьшать масштаб при снижении нагрузки.
Реализация:
- Изменение поля
replicasв ресурсе MachineDeployment - Cluster API автоматически выделяет новые узлы на основе Machine Template
- Новые узлы автоматически присоединяются к кластеру и становятся готовыми к обработке нагрузки
- При уменьшении масштаба узлы корректно сливаются и удаляются
Преимущества:
- Реакция на изменения нагрузки за минуты, а не часы
- Автоматическое масштабирование снижает операционные затраты
Сценарий 3: Пошаговые обновления без простоев
Сценарий: Обновить версию Kubernetes или шаблон VM без прерывания работы приложений.
Реализация:
- Обновление Machine Template или версии Kubernetes в управляющей плоскости/MachineDeployment
- Cluster API выполняет пошаговое обновление: создает новые узлы, ожидает их готовности, затем удаляет старые узлы
- Параметры
maxSurgeиmaxUnavailableнастраивают поведение обновления - Поды автоматически сливаются со старых узлов и перезапускаются на новых
Преимущества:
- Обновления без простоев для критически важных приложений
- Постепенное развертывание позволяет выявлять проблемы на ранних этапах
- Легкий откат при обнаружении ошибок
- Нет необходимости в ручном повторном выделении узлов
Сценарий 4: Управление несколькими пулами узлов
Сценарий: Запускать различные типы нагрузок на выделенных пулах узлов с разными конфигурациями.
Реализация:
- Создание нескольких MachineDeployments, каждый с разными Machine Templates
- Настройка различных распределений ресурсов (CPU, память, хранилище) для каждого пула
- Использование меток узлов и taints для контроля размещения нагрузки
- Масштабирование каждого пула независимо в зависимости от требований нагрузки
Примеры пулов:
- Общий пул: сбалансированное CPU/память для типичных нагрузок
- Пул с оптимизацией под вычисления: высокий CPU для пакетной обработки или сборок
- Пул с оптимизацией под память: большая память для баз данных или кэширования
Преимущества:
- Оптимизация распределения ресурсов под разные типы нагрузок
- Изоляция нагрузок для безопасности и производительности
- Независимое масштабирование по типам нагрузки
- Оптимизация затрат за счет правильного размера ресурсов