Kata Containers: основы, функции и применение

Kata Containers — это проект независимого сообщества с открытым исходным кодом, которое работает над тем, чтобы объединить преимущества контейнерной системы с преимуществами простой виртуальной машины.

Совет

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

Мы объясним, кто стоит за проектом и как работают контейнеры Kata. Кроме того, мы покажем вам преимущества и недостатки, а также наиболее популярные сценарии применения безопасной среды выполнения контейнеров.

Что такое контейнеры Kata?

Kata Containers — проект, запущенный в декабре 2017 года, — нацелен на разработку максимально облегченной виртуальной машины, которая работает с тем же «внешним видом и ощущениями», что и контейнер. Таким образом, контейнеры Kata просты в использовании, обладают высокой совместимостью и способны выдерживать высокую рабочую нагрузку. Более того, они по-прежнему обеспечивают высокий уровень безопасности. Здесь сообщество использует более сильную внешнюю изоляцию и технологию аппаратной виртуализации внутри, в качестве второй линии защиты.

Проект Kata Containers финансируется и управляется фондом OpenStack Foundation (OSF), который занимается разработкой и внедрением открытой инфраструктуры для облачных вычислений. По этой причине кодекс поведения OSF является ключевым ориентиром для совместной работы сообщества open-source. Код проекта размещен на GitHub — под лицензией Apache 2. Крупные компании, такие как Google и Microsoft, входят в архитектурный комитет Kata.

OpenStack Foundation предоставил подробное введение в Kata Containers в следующем 30-минутном видеоролике на YouTube:

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

Как работают контейнеры Kata Containers?

Как именно выглядят архитектура и функциональность Kata Containers? Чтобы ответить на этот вопрос, нам нужно вернуться к началу проекта. В декабре 2017 года сообщество успешно объединило и масштабировало лучшие части Intel Clear Containers (проект Intel для безопасных контейнеров Linux) с Hyper runV (среда выполнения на базе гипервизора для открытых проектов контейнерной инициативы). Другими словами, производительность Intel сочетается с платформенной независимостью Hyper.

Одним из наиболее важных аспектов в любой контейнерной системе является безопасность. Поскольку контейнеры могут быть сложены друг на друга, обеспечить безопасность зачастую крайне сложно. Поэтому и Intel, и Hyper стремятся достичь высокой гибкости в контейнерной среде — с одинаковыми результатами, хотя и разными средствами. Простое наслоение контейнерных форматов, таких как Kubernetes на OpenStack или наоборот, так же возможно, как и сложное наслоение Kubernetes на OpenStack на Kubernetes. Такая гибкость в создании желаемой архитектуры значительно упрощает использование контейнеров Kata без необходимости отказываться от безопасности.

С помощью Kata можно реализовать как изоляцию ВМ на уровне контейнеров, так и изоляцию контейнеров посредством аппаратной виртуализации. В случае Kubernetes изоляция ВМ обеспечивается не на уровне контейнеров, а на уровне Podman или стручков, поскольку Kubernetes использует термин «стручки» вместо «контейнеров». Но в данном руководстве для простоты мы будем продолжать ссылаться на «контейнеры».

Совет

Настройка и выполнение контейнерных систем может быть действительно сложной задачей, поскольку множество контейнеров обычно приходится предоставлять разным компьютерам. С помощью Managed Kubernetes от IONOS вы сможете легче планировать, организовывать и предоставлять свои контейнеры — а также свободно масштабировать их по мере необходимости!

Контейнеры Kata: архитектура

Сообщество придерживается подхода максимальной простоты и демонстрирует это в архитектуре контейнеров Kata, которая в целом предусматривает следующие шесть компонентов:

  1. Агент
  2. Время выполнения
  3. Прокси
  4. Shim (расширение совместимости для соответствующего приложения)
  5. Ядро (ядро операционной системы)
  6. Комплект с QEMU 2.9 (бесплатное программное обеспечение для виртуализации)

Эти свойства делают Kata независимой, высоко совместимой и высоко безопасной. Помимо x86_64, архитектура также может поддерживать AMD64, ARM, а также IBM p System и IBM z System. Более того, Kata Containers позволяет использовать несколько гипервизоров, таких как QEMU, NEMU и Firecracker. Также возможна интеграция в проект containerd.

Совместимость Kata Containers

Kata 1.10 совместима с Docker Community Edition, но также поддерживает все другие отраслевые стандарты, такие как формат контейнеров OCI, интерфейсы Kubernetes CRI и некоторые старые технологии виртуализации, включая CRI-O (1.10 commit 393429 или CRI Containerd версии 1.0.0) или OCI Runtime Specification (v1.0.0-rc5).

Поддерживаемые операционные системы, работающие в контейнерах Kata, включают:

  • CentOS (7)
  • Debian (9, 10)
  • Fedora (28, 29, 30)
  • Ubuntu (16.04, 18.04)
  • Red Hat Enterprise Linux (7)
  • OpenSUSE (Leap, Tumbleweed)

Отличие контейнеров Kata от обычных контейнеров

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

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

Безопасность контейнеров Kata Containers

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

С контейнерами Kata ситуация совершенно иная: Виртуальные машины работают в выделенном ядре (ядро операционной системы), которое отделяет процессы как от сети и E/A, так и от памяти. В дополнение к сильной изоляции, изоляция, улучшенная с помощью аппаратных средств, может быть использована с помощью расширений VT виртуализации.

Ката-контейнеры: обзор преимуществ и недостатков

Существует множество аргументов в пользу амбициозного проекта с открытым исходным кодом от OpenStack Foundation. Даже Clear Linux (Intel) отошла от своей проприетарной контейнерной технологии и уже поддерживает контейнеры Kata с большим успехом. Основные причины включают:

  • Отличная совместимость
  • Простота использования
  • Высокая производительность
  • Высокий стандарт безопасности

Еще одним преимуществом является низкое энергопотребление даже при высокой производительности.

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

Еще одним, немаловажным недостатком является то, что Kata все еще находится в стадии становления. Тем не менее, технические основы являются многообещающими и уже используются во многих областях.

Где используются контейнеры Kata?

Как уже упоминалось ранее, сообщество соблюдает кодекс поведения OSF. Это также включает в себя открытое управление всем проектом и исходным кодом в частности. Эта открытость лучше всего обеспечивается сочетанием двух интегрированных и виртуализированных кодовых баз с открытым исходным кодом. Его многочисленные поддержки включают Kubernetes, Docker, OCI, CRI, CNI, QEMU, KVM и OpenStack.

Clear Containers и runV — технические основы Kata Containers — используются крупными компаниями по всему миру, такими как JD.com, один из самых высокодоходных интернет-магазинов в Китае.

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

Оцените статью
cdelat.ru
Добавить комментарий