Технология KubeVirt позволяет управлять виртуальными машинами в Kubernetes.
Это решение удовлетворяет потребность в запуске некоторых частей приложения, которые нельзя легко поместить в контейнер на виртуальной машине поверх кластера Kubernetes.
Это полезно для разработчиков, которые хотят внедрить Kubernetes, но все еще имеют компоненты приложения, зависящие от виртуальной машины.
Команды, полагающиеся на существующие рабочие нагрузки на основе виртуальных машин, получают возможность быстро контейнеризовать приложения.
С виртуализированными рабочими нагрузками, размещенными непосредственно в воркфлоу, группы могут декомпозировать их с течением времени, по-прежнему используя оставшиеся виртуализированные компоненты по своему усмотрению.
KubeVirt предоставляет вам унифицированную платформу разработки, где вы можете создавать, изменять и развертывать приложения, находящиеся как в контейнерах, так и на виртуальных машинах в общей среде.
Шаг 1. Установите Minikube
Начните с установки Minikube, используя приведенные ниже команды.
Linux:
wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube
macOS:
brew install minikube
Windows:
#Using winget
$ winget install minikube
# Using Chocolatey
$ choco install minikube
$ minikube version
minikube version: v1.19.0
commit: 15cede53bdc5fe242228853e737333b09d4336b5
Вывод версии может отличаться в зависимости от того, в какое время вы выполняете команды.
Шаг 2. Установите kubectl
$ kubectl logs pod/kubevirt-install-manager -n kube-system
v0.40.0
namespace/kubevirt created
customresourcedefinition.apiextensions.k8s.io/kubevirts.kubevirt.io created
priorityclass.scheduling.k8s.io/kubevirt-cluster-critical created
clusterrole.rbac.authorization.k8s.io/kubevirt.io:operator created
serviceaccount/kubevirt-operator created
role.rbac.authorization.k8s.io/kubevirt-operator created
rolebinding.rbac.authorization.k8s.io/kubevirt-operator-rolebinding created
clusterrole.rbac.authorization.k8s.io/kubevirt-operator created
clusterrolebinding.rbac.authorization.k8s.io/kubevirt-operator created
deployment.apps/virt-operator created
use emulation
configmap/kubevirt-config created
kubevirt.kubevirt.io/kubevirt created
$ kubectl get kubevirt.kubevirt.io/kubevirt -n kubevirt -o=jsonpath="{.status.phase}"
Deployed%
По умолчанию KubeVirt развернет 7 подов, 3 службы, 1 демонсет, 3 деплойментов, 3 репликасета
$ kubectl get all -n kubevirt