Kubernetes — это открытая система оркестрации контейнеризованных приложений, предназначенная для автоматизации развертывания, масштабирования и управления контейнерными рабочими нагрузками и сервисами. Изначально разработанная инженерами в компании, занимающейся облачными технологиями, система стала проектом с открытым исходным кодом и получила широкое распространение в индустрии как стандартный инструмент для организации распределённых приложений в облачных и гибридных средах. Kubernetes обеспечивает абстракцию над инфраструктурой, позволяя описывать желаемое состояние приложений и автоматически поддерживать это состояние.
Архитектура Kubernetes ориентирована на декларативное управление: пользователи описывают объекты высокого уровня (например, поды, развёртывания, сервисы) в виде манифестов, а контроллеры платформы приводят фактическое состояние к описанному. Система поддерживает функции обнаружения и балансировки сервисов, автоматическое восстановление после сбоев, горизонтальное и вертикальное масштабирование, управление конфигурацией и секретами, а также стратегические модели обновления приложений. Kubernetes может работать поверх различных сред выполнения контейнеров и инфраструктур, включая публичные и частные облака, виртуальные машины и bare-metal-серверы.
- Оркестрация контейнеров: управление жизненным циклом контейнеризованных приложений и их зависимостей.
- Декларативное управление: описание желаемого состояния через манифесты и автоматическое приведение к этому состоянию.
- Масштабирование: автоматическое горизонтальное и ручное масштабирование реплик приложений.
- Самовосстановление: перезапуск упавших контейнеров, замена узлов и перераспределение рабочих нагрузок.
- Балансировка и обнаружение сервисов: маршрутизация трафика и распределение запросов между экземплярами приложений.
- Управление конфигурацией и секретами: безопасное хранение и распространение настроек и чувствительных данных.
- Обновления и откаты: стратегические развёртывания с минимальным временем простоя и возможность отката к предыдущим версиям.
- Плагинная архитектура: интеграция с сетевыми, хранилищными и аутентификационными расширениями через интерфейсы и драйверы.
- Многообразие среды выполнения: поддержка различных контейнерных рантаймов и облачных платформ.
- Многоарендность и изоляция: разделение ресурсов и политик доступа между командами и проектами.