banner
Центр новостей
Мгновенная доставка

Можете ли вы использовать Kubernetes без Docker?

Jun 25, 2023

Getty Images/iStockphoto

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

Такие платформы, как Kubernetes, решают эти сложные проблемы управления контейнерами посредством автоматизации и оркестрации. Kubernetes — это бесплатная эффективная платформа, поддерживающая множество сред выполнения контейнеров, включая Docker Engine.

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

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

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

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

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

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

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

Docker предлагает следующие ключевые функции:

Сердцем любого контейнерного движка, включая Docker, является среда выполнения контейнера. Среда выполнения контейнера выполняет тяжелую работу по загрузке и запуску контейнеров, а также реализует пространства имен и контрольные группы или логические конструкции ОС для контейнеров.

Доступно множество сред выполнения контейнеров, включаяContainerd, CRI-O, runC и Mirantis Container Runtime. Некоторые среды выполнения включают в себя функции более высокого уровня, такие как распаковка контейнера, управление и обмен изображениями. Некоторые также предоставляют API, позволяющий разработчикам создавать программное обеспечение, которое напрямую взаимодействует со средой выполнения.

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

Однако большое количество и короткий жизненный цикл многих контейнеров создают серьезную проблему для ИТ-администраторов, которым приходится вручную развертывать и управлять большими динамичными парками контейнеров. Для организации развертывания контейнеров и выполнения управления в режиме реального времени требуются высокоавтоматизированные инструменты.

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