Что такое Kubernetes?

Kubernetes — это программное обеспечение оркестрации с открытым кодом для развертывания контейнеров, управления ими и их масштабирования

Описание Kubernetes

Современные приложения все чаще создаются с применением контейнеров — микрослужб, укомплектованных зависимостями и конфигурациями. Kubernetes (сокращенно k8s) — это программное обеспечение с открытым кодом для развертывания таких контейнеров и управления ими в нужном масштабе. Kubernetes сокращает время сборки, поставки и масштабирования контейнерных приложений.

Простая схема изучения Kubernetes

Как работает Kubernetes

По мере того как приложения растут и начинают включать контейнеры, развернутые на разных серверах, работать с ними становится все сложнее. Для решения этой проблемы Kubernetes предоставляет API с открытым исходным кодом, который контролирует, как и где такие контейнеры будут выполняться.

Kubernetes helps you orchestrate a cluster of virtual machines and schedule containers to run on those virtual machines based on their available compute resources and the resource requirements of each container. Containers are grouped into pods, the basic operational unit for Kubernetes, which scale to your desired state.

Kubernetes помогает управлять обнаружением служб, внедрять балансировку нагрузки, отслеживать распределение ресурсов, выполнять масштабирование в зависимости от потребления вычислительной мощности, проверять работоспособность отдельных ресурсов и обеспечивать их самовосстановление за счет автоматического перезапуска или репликации контейнеров.

Watch more videos on Kubernetes basics

Зачем использовать Kubernetes?

Портативный, масштабируемый и расширяемый метод внедрения контейнерных сред.

Переносимость

Легко переносите контейнерные нагрузки с локальных компьютеров разработки в производство. Добивайтесь слаженной оркестрации контейнеров в различных средах локальной инфраструктуры, общедоступных и гибридных облаков.

Масштабируемость

Define complex containerized applications and deploy them globally across a cluster of servers—or even multiple clusters—as Kubernetes optimizes resources according to your desired state. When Kubernetes scales applications horizontally, it automatically monitors and maintains container health.

Возможности расширения

Получите доступ к широкой, постоянно растущей коллекции расширений и подключаемых модулей от разработчиков и компаний, составляющих сообщество Kubernetes. Служба Kubernetes позволяет использовать эти возможности и добавлять такие функции, как обеспечение безопасности, мониторинг и управление.

Гибкое масштабирование с использованием Kubernetes и DevOps

As containers, environments, and the teams that work with them multiply, release frequency can increase—along with developmental and operational complexity. Move quickly at scale with enhanced security by employing DevOps in Kubernetes environments.

Ускорение доставки кода за счет непрерывной интеграции и непрерывного развертывания (CI/CD)

Контейнеры служат единым форматом упаковки приложений и упрощают совместную работу для команд разработчиков и операторов, а CI/CD может ускорить переход от кода к контейнеру и в кластер Kubernetes до считанных минут за счет автоматизации этих задач.

Настройка CI/CD для Kubernetes

Эффективное управление ресурсами за счет инфраструктуры в виде кода

Инфраструктура в виде кода способствует единообразию и улучшает видимость вычислительных ресурсов для всех команд, а значит, уменьшает вероятность человеческой ошибки. Эта практика хорошо сочетается с декларативным характером приложений Kubernetes на платформе Helm. Подобная комбинация позволяет определять приложения, ресурсы и конфигурации надежным, контролируемым и повторяемым образом.

Развертывание кластера Kubernetes с использованием Terraform

Ускорение цикла обратной связи за счет постоянного мониторинга

Неизменяемые контейнеры, частые выпуски и абстрагированный слой оркестрации требуют мониторинга и при этом усложняют контроль. Чтобы сократить промежуток времени между возникновением и устранением ошибок, необходимо видеть полную картину своих ресурсов, кластера, API Kubernetes, контейнеров и кода, начиная с мониторинга работоспособности контейнера и заканчивая централизованными журналами. Это позволяет избегать дефицита ресурсов, отслеживать злонамеренные запросы и поддерживать работоспособность приложений Kubernetes.

См., как работает аналитика контейнеров в режиме реального времени

Уравновешивание скорости и защиты с помощью DevOps

Рабочий процесс DevOps включает встроенную функцию мониторинга в режиме реального времени. Применяйте проверки соответствия и перенастройки автоматически и, таким образом, защищайте свою сборку и конвейер выпуска, а значит, и свое приложение Kubernetes.

Непрерывное обеспечение безопасности в действии

Пример рабочего процесса DevOps на базе Kubernetes

  1. 1Мгновенная итерация, тестирование и отладка различных частей приложения в одном и том же кластере Kubernetes.
  2. 2Внедрение кода в репозиторий GitHub для непрерывной интеграции и его проверка. Запуск автоматической сборки и тестирования в рамках непрерывной поставки.
  3. 3Проверка источника и целостности образов контейнеров. До прохождения сканирования образы находятся на карантине.
  4. 4Оснащение кластеров Kubernetes такими средствами, как Terraform. Terraform устанавливает чарты Helm, которые определяют желаемое состояние ресурсов и конфигураций приложения.
  5. 5Применение политик для регулирования развертывания к кластеру Kubernetes.
  6. 6Конвейер выпуска автоматически выполнит предустановленную стратегию развертывания для каждого кода.
  7. 7Добавление проверки и автоматического исправления политик в конвейер CI/CD. Например, создавать объекты pod в вашей среде Kubernetes может только конвейер выпуска.
  8. 8Включение телеметрии приложения, мониторинга работоспособности контейнера и анализа журналов в режиме реального времени.
  9. 9Устранение проблем с аналитическими сведениями и планирование следующего спринта.

Используйте возможности Azure Kubernetes

Автоматизируйте подготовку, обновление, мониторинг и масштабирование, используя полностью управляемую службу Microsoft Azure Kubernetes (AKS). Бессерверная служба Kubernetes — это простой переход от разработки к производству, а также защита и управление корпоративного уровня.

Подробнее об AKS

Kubernetes — это общее достояние

Платформа Kubernetes появилась на свет и продолжает бурно развиваться благодаря тому, что тысячи людей и сотни корпораций продолжают вкладывать в нее свои знания и силы. Их постоянная работа над этим проектом — надежная основа для успешного создания ваших собственных приложений.

35,000
Соавторы
180,000
Фиксации
Самый популярный проект
на GitHub

Программное обеспечение с открытым кодом специально для предприятий

Чтобы упростить внедрение платформы Kubernetes для организаций и ее использование для разработчиков, корпорация Майкрософт всего за три года втрое увеличила число сотрудников, участвующих в проекте с открытым исходным кодом. В настоящее время Майкрософт является третьим по величине корпоративным спонсором и стремится сделать платформу Kubernetes более удобной и доступной для предприятий, делясь с сообществом Kubernetes новыми знаниями и лучшими методиками, полученными в результате работы с различными клиентами.

Часто задаваемые вопросы о Kubernetes

  • Kubernetes и Docker работают сообща.

    Docker предоставляет открытый стандарт для упаковки и распространения контейнерных приложений. Docker позволяет собирать и выполнять контейнеры, а также хранить образы контейнеров и предоставлять к ним доступ.

    Kubernetes управляет распределенными контейнерными приложениями, созданными в Docker, и предоставляет инфраструктуру, необходимую для развертывания и выполнения таких приложений в кластере машин.

    Подробное сравнение Kubernetes и Docker
  • Развертывание Kubernetes позволяет описать желаемое состояние развертывания приложения. Планировщик Kubernetes следит за тем, чтобы фактическое состояние соответствовало желаемому, и сохраняет это состояние даже при отказе одного или нескольких объектов pod. Кроме того, развертывания Kubernetes позволяют обновлять приложения без простоев.

    Полное обсуждение этой темы см. здесь
  • Обычно для развертывания в Kubernetes с применением DevOps требуется репозиторий для управления версиями, такой как Git. Репозиторий служит стартовой точкой конвейера CI/CD. В зависимости от выбранного вами подхода изменения в репозитории запускают интеграцию, сборку, доставку и развертывание.

    Подробное описание работы AKS с Azure DevOps см. здесь
  • Kubernetes пригодится в различных ситуациях, от переноса приложений в облако до упрощения сложностей в машинном обучении и ИИ.

    Основные примеры таких ситуаций:

  • Ознакомьтесь с наработками и шаблонами архитектуры, созданными тысячами технических специалистов и партнеров, которые используют Azure.

  • Начните изучение Kubernetes c этого руководства.

Ресурсы

Просмотрите видео об AKS, а также вебинары Azure по запросу, включающие демонстрации, описание основных функций и технические доклады.

Kubernetes уже к вашим услугам — бесплатно на Azure