Реализация KubeVirt: Кому это нужно и зачем?

Принятие облачных архитектур и контейнеризации преобразует способ разработки, развертывания и управления приложениями. Контейнеры предлагают скорость, гибкость и масштабируемость, стимулируя значительное изменение в стратегиях ИТ. Однако реальность для многих организаций заключается в том, что виртуальные машины (ВМ) продолжают играть критическую роль, особенно когда речь идет о устаревших или stateful приложениях. Даже ведущие финансовые учреждения, такие как Goldman Sachs, признают ценность ВМ наряду с контейнеризованными рабочими нагрузками и исследуют способы эффективного управления ими.

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

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

Что такое KubeVirt в точности?

KubeVirt – это проект с открытым исходным кодом, который превращает Kubernetes в мощную платформу, способную управлять как контейнерами, так и виртуальными машинами. Простыми словами, KubeVirt превращает Kubernetes в единую систему управления для всей вашей инфраструктуры.

Вот как это работает:

  • KubeVirt как расширение: KubeVirt добавляет определения пользовательских ресурсов (CRD) в Kubernetes, вводя новый тип объекта, представляющего виртуальные машины.
  • Виртуальные машины как “поды”: Используя KubeVirt, каждая ВМ запускается в специализированном поде, который тесно интегрирует ВМ в экосистему Kubernetes.
  • Упрощенное управление ВМ с помощью Kubernetes: Теперь вы можете использовать те же инструменты Kubernetes (kubectl и API Kubernetes) и bewt практики для создания, запуска, остановки, миграции и мониторинга ВМ наряду с вашими контейнеризованными рабочими нагрузками.

Думайте о KubeVirt как о возможности для Kubernetes говорить на языке виртуализации, открывая мир возможностей для управления вашей инфраструктурой.

Бизнес-влияние KubeVirt

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

  • Безшовное управление рабочей нагрузкой: Разрушьте стены между вашими приложениями на основе ВМ и контейнеризованными рабочими нагрузками. Управляйте всем с одной платформы, используя те же инструменты и процессы, значительно упрощая операции и уменьшая сложность.
  • Повышенная эффективность использования ресурсов: KubeVirt дает вам возможность запускать как традиционные ВМ, так и контейнеры на одном и том же аппаратном обеспечении кластера. Оптимизируйте использование ресурсов, улучшайте плотность инфраструктуры и, возможно, добивайтесь значительных экономических выгод.
  • Ускоренная модернизация: Устаревшие приложения, связанные с виртуальными машинами, не должны стать преградой для инноваций. KubeVirt предоставляет постепенный путь к модернизации приложений на вашем собственном темпе. Вы можете контейнеризировать и мигрировать компоненты постепенно, все в одной среде Kubernetes, минимизируя прерывания.
  • Инфраструктура, гарантирующая будущее: Инвестируя в KubeVirt, вы выстраиваетесь по облако-ориентированным принципам и делаете Kubernetes основой вашего технологического стека. Это способствует гибкости и мобильности, позволяя вам легко адаптироваться к изменяющимся бизнес-требованиям.

Почему вашей организации стоит обратить внимание?

KubeVirt предоставляет значительную ценность, особенно в следующих областях:

  • Команды ИТ и DevOps: KubeVirt упрощает операции, предоставляя единое управление для всех ваших рабочих нагрузок. Он помогает вам оптимизировать рабочие процессы, сократить издержки на инструменты и повысить общую эффективность команды.
  • Топ-менеджмент: Получите операционную гибкость, достигните снижения затрат и упростите путь к модернизации инфраструктуры. KubeVirt выстраивает технологические инвестиции в соответствии с долгосрочным успехом бизнеса.
  • Смешанные рабочие нагрузки: Если вы управляете как устаревшими приложениями на основе виртуальных машин, так и современными контейнеризированными развертываниями, KubeVirt необходим. Он позволяет избежать зависимости от поставщика, сократить сложность и сохранить полный контроль над вашими выборами инфраструктуры.

Вот некоторые конкретные проблемы, которые решает KubeVirt:

  • Недовольны управлением раздельными средами для виртуальных машин и контейнеров? KubeVirt объединяет их, что значительно упрощает управление.
  • Ищете гибкость, не жертвуя существующими инвестициями? KubeVirt позволяет вам использовать вашу инфраструктуру виртуальных машин, одновременно модернизируя её.
  • Хотите улучшить эффективность затрат и использование ресурсов? KubeVirt помогает консолидировать рабочие нагрузки для лучшего использования.
  • Страдаете от сложных миграций устаревших приложений? Модернизируйте постепенно и контролируйте свой темп с помощью KubeVirt.

Начало работы: развертывание и внедрение

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

Предварительные требования

Перед началом убедитесь, что выполнены следующие требования:

1. Кластер Kubernetes

Вам нужен кластер Kubernetes (или производное, такое как OpenShift), основанный на одной из трех последних версий Kubernetes, доступных на момент выпуска KubeVirt.

2. Конфигурация API-сервера Kubernetes

API-сервер Kubernetes должен быть настроен с --allow-privileged=true, чтобы запустить привилегированный DaemonSet KubeVirt.

3. Утилита Kubectl

Убедитесь, что у вас установлена и настроена утилита kubectl для взаимодействия с вашим кластером.

4. Поддержка контейнерного времени выполнения

KubeVirt поддерживается на следующих контейнерных средах:

  • Containerd
  • criorunv)

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

5. Аппаратная виртуализация

Рекомендуется использовать оборудование с поддержкой виртуализации. Вы можете использовать virt-host-validate, чтобы убедиться, что ваши хосты способны выполнять виртуализированные рабочие нагрузки:

YAML

 

Сетевые и безопасностные аспекты

  1. Конфигурация сети: Задумайтесь о том, как ваши виртуальные машины будут подключаться и взаимодействовать с внешними сетями и остальной средой Kubernetes.

  2. Интеграция с AppArmor: На системах с включенным AppArmor вам может потребоваться изменить профили AppArmor, чтобы разрешить выполнение контейнеров с привилегиями KubeVirt. Например:

YAML

 

Установка KubeVirt

Чтобы установить KubeVirt, выполните следующие шаги:

1. Установите оператор KubeVirt

Оператор KubeVirt упрощает установку и управление компонентами KubeVirt. Выполните следующие команды для развертывания последнего выпуска KubeVirt:

YAML

 

2. Настройка для неаппаратной виртуализации

Если аппаратная виртуализация недоступна, включите эмуляцию программного обеспечения, установив значение useEmulation в true в KubeVirt CR:

YAML

 

Лучшие практики реализации

Чтобы извлечь максимальную пользу от KubeVirt, следуйте этим лучшим практикам:

1. Проведите оценку рабочей нагрузки

Приоритизируйте ВМ, подходящие для контейнеризации. Начните с менее критичных приложений, чтобы приобрести практический опыт.

2. Оцените сеть и хранилище

Задумайтесь о том, как связать сеть ВМ с вашей существующей сетью Kubernetes и интегрировать решения хранения для постоянных данных, используя плагины Container Storage Interface (CSI).

3. Уделяйте внимание мониторингу и управлению

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

4. Живая миграция

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

YAML

 

Пример установки на OpenShift (OKD)

Если вы используете OKD, дополнительными шагами является настройка ограничений контекста безопасности (Security Context Constraints, SCC):

YAML

 

Пример установки на k3OS

Для k3OS убедитесь, что вы загрузили необходимые модули на всех узлах перед развертыванием KubeVirt:

YAML

 

Перезапустите узлы с этой конфигурацией, а затем разверните KubeVirt, как описано выше.

Установка ежедневных версий разработчика

Для последних версий разработчика запустите:

YAML

 

Развертывание из исходного кода

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

Лучшие практики реализации

Следуйте этим лучшим практикам, чтобы получить максимальную отдачу от KubeVirt:

  • Проведите оценку нагрузки: Не каждое приложение сразу подходит для KubeVirt. Приоритизируйте ВМ с хорошим потенциалом для контейнеризации. Менее критически важные приложения могут стать отличным способом получить практический опыт при минимизации рисков.
  • Оцените сети и хранилище: Тщательно рассмотрите, как связать сетевую инфраструктуру ВМ с вашей существующей сетевой инфраструктурой Kubernetes. Запланируйте интеграцию хранилища для постоянных данных, используя такие решения, как плагины Container Storage Interface (CSI).
  • Подчеркните мониторинг и управление: Адаптируйте свои существующие инструменты мониторинга Kubernetes или изучите решения, специфичные для KubeVirt, чтобы получить видимость производительности ВМ наряду с вашими контейнерами.

Заключение

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

Source:
https://dzone.com/articles/kubevirt-implementation-who-needs-it-and-why