Комментарии 3
Хорошая статья. Жду обзор-разбор как вы боролись с утечками памяти на стороне выполняемого runtime (containerd,runc и др) - будет интересно посмотреть, как в kubevirt получается поднимать толстые машины по ресурсам и по дискам и как накладные расходы становятся еще больше при увеличении сетевого трафика и как тюнить разные компоненты системы, чтобы солянка работала более корректно и ожидаем.
Живая миграция, без сетевого стореджа, давно реализована силами libvirt, через virsh
virsh migrate --live --persistent ...
Да, там есть свои нюансы, но работает хорошо. На нормальное сети (10 гигабит и выше) и когда диски вм не огромные (а большинство своем они именно такие) то миграция прям лайв )
Из моего опыта:
Я пробовал использовать Harvester 1.4.0, который идёт уже с kubeVirt и для storage используется Longhorn.
Да, работает. Но всё довольно сыро:
Создаю виртуалку у которой 16GB RAM, но для объектов Кубернетеса для этой виртуалки нужно ещё немного памяти (это я про resources), и оказывается что никто не знает как посчитать этот overhead. Из-за этого виртуалки иногда крэшатся Out-of-memory. Причём у виртуалки памяти достаточно - это у куба не хватает, но крэшится вся виртуалка.
Некоторые действия (migration, shutdown, power on...) делаются декларативно. То есть создаётся какой-то объект куба. А когда виртуалка например не стартует, то приходится копаться в дебрях куба, чтобы понять - где там проблема? Пока найдёшь нужный манифест в котором есть статус, в котором указана проблема...
Проброс устройств - боль. Отдельный оператор занимается сканированием PCI устройств. Список этих устройств - глобальный для всех нодов. Как этот список управляется - загадка. Управляется он через манифесты, но иногда некоторых устройств там нет. Почему? - кто ж его знает. Иногда - устройства показаны занятыми, хотя никто их не использует.
Как-то раз виртуалка отказывалась запускаться и я не мог понять почему. Пошёл спать. Утром пришёл - виртуалка запущена. Что-то там внутри куба "дошло" за несколько часов...
В общем, надоело мучаться и я перешёл на Proxmox - там всё намного стабильней.
KubeVirt: глубокое погружение для администраторов VMware vSphere