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

Я пытаюсь установить 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]:

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

Ответ 1

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

Есть также еще несколько вопросов и ответов здесь на SO, обсуждающих эту тему.

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

  1. Как уже упоминалось: используйте другой гипервизор, который поддерживает VT-X/AMD-v во вложенной виртуализации (например, Xen, KVM или VMware).
  2. Установите Minikube на хост-ОС, а не на виртуальную машину.
  3. Запустите Minikube напрямую, используя Docker и опцию "none", как описано в ответе Тэда Гуськиса.

Ответ 2

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

Установите параметр none none:

[[email protected] ~]# minikube config set vm-driver none

Установите Docker-ce следующие инструкции для вашей версии VM.

Идёт запуск запуска minikube:

[[email protected] ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[[email protected] ~]# systemctl start docker
[[email protected] ~]# 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.

Ответ 3

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

minikube start --vm-driver=none

Из документации Кубернете:

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

Ответ 4

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

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

И в ядре VM:

dmesg | egrep 'DMAR|IOMMU'

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

uname -m

Ответ 5

"Установите Minikube на ОС хоста, а не на виртуальную машину".

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

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

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

Ответ 6

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

Ответ 7

Привет всем, я использовал приведенную ниже команду запуска Minikube --vm-драйвер = нет

но показывает неподдерживаемую версию докера

подскажите пожалуйста как можно устранить ошибку

Спасибо