Привет всем, меня зовут Чжан Цзиньтао.
С развитием облачных вычислений и контейнерных технологий Kubernetes стал отраслевым стандартом и лидером, предоставляя пользователям мощную, гибкую и масштабируемую платформу для развертывания и управления различными типами приложений.
Однако для некоторых приложений, которые сложно контейнеризировать, таких как традиционные корпоративные приложения, устаревшие системы или приложения, требующие специальной аппаратной поддержки, виртуальные машины по-прежнему остаются необходимым и эффективным решением. Как запускать виртуальные машины в Kubernetes и управлять ими, а также как обеспечить совместимость и согласованность между контейнерами и виртуальными машинами — это насущная проблема, которую необходимо решить.
Это основа и цель проекта KubeVirt.
KubeVirt — это проект с открытым исходным кодом, который позволяет развертывать, использовать и управлять виртуальными машинами Kubernetes, как контейнерами. Он предоставляет унифицированную платформу, которая позволяет пользователям создавать облачные приложения с использованием контейнеров или виртуальных машин в соответствии с различными потребностями. Проект KubeVirt был запущен в 2016 году, его продвигают и поддерживают совместно Red Hat, IBM, Google, Intel, SUSE и другие компании и организации. После 7 лет неустанных усилий KubeVirt выпустила версию 1.0.0 в июле 2023 года, отметив, что она достигла уровня готовности к производству и имеет здоровое сообщество. (До этого он использовался в производственных средах многими компаниями)
В этой статье я рассмотрю История развития Кубе Вирт, введение Основные возможности и преимущества KubeVirt и анализ Будущее Кубе Виртуальный прогноз и вызов.
Идея KubeVirt восходит к 2015 году. На первом KubeCon инженер Red Hat Фабиан Дойч поднял вопрос: Можно ли запустить виртуальную машину на Kubernetes? Ответ на тот момент был неопределенным, но вопрос вызвал большой интерес и дискуссии. В течение следующего года Фабиан Дойч и его коллеги начали работу над прототипами и экспериментами, исследуя различные решения и технологии. В конце концов они решили использовать libvirt и QEMU для запуска и управления виртуальными машинами в Kubernetes.
существовать 2016 В конце года KubeVirt Проект официально запущен и существует GitHub Открытый исходный код. Основная цель проекта – предоставить Kubernetes Собственный API виртуализации и время выполнения, позволяя пользователям использовать что-то вроде Pod и Deployment Используйте тот же VirtualMachine и VirtualMachineInstance определить иурегулирующую виртуальную машина. Основная задача проекта — как интегрировать виртуальную машинаи Kubernetes из модели ресурсов,планировщик,сеть,Система хранения данных и другие компоненты интегрированы и скоординированы.
существования В течение следующих нескольких лет проект KubeVirt прошел множество этапов, версий, итераций и улучшений. Некоторые из важных вех включают в себя:
virtctl migrate
,и Опубликовано v0.21.0 Версия.На самом деле вы можете увидеть KubeVirt Хотя он не был выпущен v1.0 версию, но она сохранила относительно частую частоту выпусков. существуетэтот процесс, KubeVirt Сообщество также растет и активно. На данный момент Кубе Вирт из GitHub На складе уже имеется более 270 участники, более 17k представить, превысить 4.5k star。
KubeVirt Число пользователей и партнеров постоянно увеличивается, в том числе IBM, Google, Intel, SUSE, Red Hat, Huawei, VMware, Canonical, Rancher Многие известные компании и организации.
KubeVirt Основная функция – существование Kubernetes начальствобегатьиуправлятьвиртуальная машина. Чтобы реализовать эту функцию, KubeVirt Предлагает решения по следующим аспектам:
KubeVirt определил набор Kubernetes Собственный API виртуализация, позволяющая пользователям использовать Pod и Deployment Используйте тот же VirtualMachine и VirtualMachineInstance определить иурегулирующую виртуальную машина。VirtualMachine Декларативный тип ресурса, который представляет собой извиртуальное ожидание. машинасостояние。VirtualMachineInstance Тип ресурса реального времени, который представляет собой положительную извиртуальную реальность существования. экземпляр машины. Пользователи могут пройти YAML файл или kubectl Команды для создания, обновления, удаления или запроса этих ресурсов. Например:
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
annotations:
kubevirt.io/latest-observed-api-version: v1
kubevirt.io/storage-observed-api-version: v1
creationTimestamp: "2023-09-01T00:25:41Z"
finalizers:
- kubevirt.io/virtualMachineControllerFinalize
generation: 1
name: testvm
namespace: default
resourceVersion: "12691"
uid: d5509381-5f21-438b-9440-cb7c9ee82b37
spec:
running: false
template:
metadata:
creationTimestamp: null
labels:
kubevirt.io/domain: testvm
kubevirt.io/size: small
spec:
architecture: amd64
domain:
devices:
disks:
- disk:
bus: virtio
name: containerdisk
- disk:
bus: virtio
name: cloudinitdisk
interfaces:
- masquerade: {}
name: default
machine:
type: q35
resources:
requests:
memory: 64M
networks:
- name: default
pod: {}
volumes:
- containerDisk:
image: quay.io/kubevirt/cirros-container-disk-demo
name: containerdisk
- cloudInitNoCloud:
userDataBase64: SGkuXG4=
name: cloudinitdisk
этот YAML Файл определяет файл с именем testvm извиртуальная машина, у нее есть 2 диск. Один из дисков — это образ контейнера, а другой — конфигурация инициализации облака. Пользователи могут пройти kubectl apply -f testvm.yaml создать эту виртуальную машина, или kubectl get vm testvm чтобы проверить его статус.
moelove $ kubectl get vms
NAME AGE STATUS READY
testvm 3m20s Running True
KubeVirt Реализован набор окружения выполнения виртуализации,Разрешить пользователямсуществовать Kubernetes из любого узла кластера выполняется иуправлениевиртуальная машина。KubeVirt среда выполнения в основном состоит из следующих компонентов:
moelove $ kubectl get pods -n kubevirt
NAME READY STATUS RESTARTS AGE
virt-operator-6c649b9567-m2tbl 1/1 Running 0 6m36s
virt-operator-6c649b9567-kqfnl 1/1 Running 0 6m36s
virt-api-66859f4c8d-tnf68 1/1 Running 0 5m53s
virt-controller-8545966675-wskv9 1/1 Running 0 5m17s
virt-controller-8545966675-z68gb 1/1 Running 0 5m17s
virt-handler-h8zx4 1/1 Running 0 5m17s
KubeVirt изruntime принимает Kubernetes из собственной архитектуры и режима, что позволяет пользователям использовать контейнеры управления, такие как управлениевиртуальная машина. Например:
KubeVirt Поддерживает различные подключаемые решения, позволяющие пользователям предоставлять виртуальную среду в соответствии с различными потребностями. Машина обеспечивает подходящее подключение и настройку. Кубе Вирт изсетевые Решения в основном включают в себя следующие категории:
KubeVirt Поддерживает различные решения для подключаемых модулей хранения данных, позволяя пользователям настраивать подключаемые модули хранения в соответствии с различными потребностями. Машина обеспечивает подходящее место для хранения и конфигурацию. Кубе Вирт изрешения для Хранение в основном включает в себя следующие виды:
KubeVirt Поддерживает множество подключаемых модулей зеркала, позволяющих пользователям настраивать виртуальную виртуальную систему в соответствии с различными потребностями. Машина предоставляет подходящий исходный код и конфигурацию иззеркало. Кубе Вирт из Зеркальное Решение в основном включает в себя следующие категории:
сейчас KubeVirt Уже опубликовано v1.0 версия, одним из основателей которой является Red Hat, существует OpenShift перенесено в виртуализацию KubeVirt。Kubermatic、Rancher、Google、Oracle и т. д. также предоставляют встроенный KubeVirt из продуктов. Civio,Пузл,Платформа9 и Другие компании будут KubeVirt Перенос в облако и предоставление хостинга и управление продуктами.
Ценность KubeVirt видят все.,В будущем все больше компаний будут применять его в своих средах.,И способствовать развитию общества.
ясуществовать 2019 Пробовал это годами KubeVirt в то время был не очень зрелым, поэтому я в конце концов не принял его. Теперь я думаю, что могу попробовать добавить его в свою систему. Я также поделюсь некоторыми KubeVirt Реальные сценарии использования и конкретные технологии
TheMoeLove