Установка Minikube в Ubuntu vm_VT-X/AMD-v, позволяющая использовать виртуальную машину внутри другой виртуальной машины

Я пытаюсь установить minikube в Ubuntu vm (в виртуальной коробке). Я включил VT-X/AMD-v для vm. Но я получаю следующую ошибку.

# minikube start
Starting local Kubernetes cluster...
E0217 15:00:35.395801    3869 start.go:107] Error starting host: Error creating host: Error with pre-create check: "This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory".

 Retrying.
E0217 15:00:35.396019    3869 start.go:113] Error starting host:  Error creating host: Error with pre-create check: "This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory"
================================================================================
An error has occurred. Would you like to opt in to sending anonymized crash
information to minikube to help prevent future errors?
To opt out of these messages, run the command:
    minikube config set WantReportErrorPrompt false
================================================================================
Please enter your response [Y/n]:

Я нашел ссылку, согласно которой у нас не может быть виртуализации внутри виртуализации. Это правда? Как я могу это исправить?


person Lakmal Vithanage    schedule 17.02.2017    source источник
comment
Почему бы просто не запустить minikube на своем хосте? Есть скомпилированные бинарники для Windows, macOS и Linux.   -  person Matt Rickard    schedule 25.02.2017
comment
Прежде чем я разверну его на удаленном сервере Ubuntu, мне нужно протестировать его на моей виртуальной машине.   -  person Lakmal Vithanage    schedule 25.02.2017


Ответы (7)


Virtual Box не поддерживает VT-X/AMD-v во вложенной виртуализации. См. этот открытый запрос билета/функции на virtualbox.org.

Здесь также есть еще несколько вопросов и ответов, посвященных обсуждению SO ">эта тема .

Возможные решения:

  1. Как уже упоминалось: Используйте другой гипервизор, который поддерживает VT-X/AMD-v во вложенной виртуализации (например, Xen, KVM или VMware).
  2. Установите Minikube в основной ОС, а не на виртуальной машине.
  3. Запустите Minikube напрямую с помощью Docker и опции драйвера "none", как описано в ответе Тэда Гускиса.
person Phonolog    schedule 07.04.2017
comment
Могу ли я запустить minikube на экземпляре aws ubuntu ec2? ubuntu@ip-172-31-22-20:~$ uname -a Linux ip-172-31-22-20 3.13.0-137-generic #186-Ubuntu SMP Пн, 4 декабря, 19:09:19 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux - person Ashish Karpe; 24.05.2018
comment
Пожалуйста, задайте отдельный вопрос или, в вашем случае, обратитесь напрямую в службу поддержки aws. - person Phonolog; 24.05.2018
comment
Если вы предпочитаете использовать VirtualBox, вы все равно можете сделать это, установив Docker в VirtualBox и запустив minikube start --vm-driver=none в соответствии с решением @k13i. - person Ardee Aram; 29.01.2019

Запустите Minikube непосредственно на виртуальной машине с помощью Docker и опции драйвера «none», которая не требует вложенной виртуализации.

Установите параметр «нет драйвера»:

[root@minikube ~]# minikube config set vm-driver none

Установите Docker-ce, следуя инструкциям для вашей версии ОС ВМ.

Наконец, запустите minikube start:

[root@minikube ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@minikube ~]# systemctl start docker
[root@minikube ~]# minikube start
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Downloading kubeadm v1.10.0
Downloading kubelet v1.10.0
Finished Downloading kubelet v1.10.0
Finished Downloading kubeadm v1.10.0
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster.
===================
WARNING: IT IS RECOMMENDED NOT TO RUN THE NONE DRIVER ON PERSONAL WORKSTATIONS
        The 'none' driver will run an insecure kubernetes apiserver as root that may leave the host vulnerable to CSRF attacks

When using the none driver, the kubectl config and credentials generated will be root owned and will appear in the root home directory.
You will need to move the files to the appropriate location and then set the correct permissions.  An example of this is below:

        sudo mv /root/.kube $HOME/.kube # this will write over any previous configuration
        sudo chown -R $USER $HOME/.kube
        sudo chgrp -R $USER $HOME/.kube

        sudo mv /root/.minikube $HOME/.minikube # this will write over any previous configuration
        sudo chown -R $USER $HOME/.minikube
        sudo chgrp -R $USER $HOME/.minikube

This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true
Loading cached images from config file.
person Tad Guski    schedule 03.10.2018

Попробуйте запустить minikube без вложенной виртуализации (должен быть установлен docker):

minikube start --vm-driver=none

Из документации по Kubernetes:

Minikube также поддерживает опцию --vm-driver=none, которая запускает компоненты Kubernetes на хосте, а не на виртуальной машине. Для использования этого драйвера требуется Docker и среда Linux, но не гипервизор.

person k13i    schedule 30.11.2018

«Установите Minikube на хост-ОС, а не на ВМ».

это не совсем правильно, на самом деле вы можете установить minikube в виртуальной машине Linux поверх virtualbox или vmware и т. д. без опции драйвера, которая использует localkube напрямую для работы с kubernetes в докере узла виртуальной машины.

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

https://github.com/robertluwang/docker-hands-on-guide/blob/master/minikube-none-installation.md

person robertluwang    schedule 13.12.2017

Проверьте, правильно ли он включен для виртуальной машины (запускается внутри виртуальной машины):

egrep -i '^flags.*(svm|vmx)' /proc/cpuinfo

И в ядре ВМ:

dmesg | egrep 'DMAR|IOMMU'

VirtualBox работает только с 32-разрядной вложенной гостевой системой, так что также проверьте (она не поддерживает вложенную гостевую систему, но работает с 32-разрядной версией) :

uname -m
person Janos Lenart    schedule 17.02.2017
comment
[49.563077] vboxpci: IOMMU не найден (не зарегистрирован) - person Lakmal Vithanage; 17.02.2017
comment
Вы используете 32-битную или 64-битную гостевую систему? 64-битный вложенный гость не будет работать в VirtualBox. - person Janos Lenart; 17.02.2017
comment
Я установил VM ware и установил Virtualbox внутри виртуальной машины. И включил VT-X/AMD-v во внешней ВМ. это работает нормально. - person Lakmal Vithanage; 22.02.2017

Я установил VM ware и установил Virtualbox внутри виртуальной машины. И включил VT-X/AMD-v во внешней ВМ. это работает нормально.

person Lakmal Vithanage    schedule 22.02.2017

Установите указанное ниже свойство в файле .vmx виртуального бокса.

Войдите в поле esx и найдите файл *.vmx для вашей виртуальной машины.

e.g.:

echo 'vhv.enable = "TRUE"' >> /vmfs/volumes/54183927-04f91918-a72a-6805ca147c55/ubun204_mk/ubun204_mk.vmx 

Затем запустите minikube start

Удачи!

person raju    schedule 05.08.2020