web-dev-qa-db-fra.com

Installation de minikube dans Ubuntu vm_VT-X/AMD-v permettant de VM dans un autre VM

Je suis sur le point d'installer minikube dans Ubuntu vm (dans une boîte virtuelle). J'ai activé VT-X/AMD-v pour le vm. Mais je reçois une erreur suivante.

# 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]:

J'ai trouvé une référence , selon cela, on ne peut pas avoir de virtualisation à l'intérieur de la virtualisation. Est-ce vrai? Comment puis-je réparer cela?

18
Lakmal Vithanage

Virtual Box ne prend pas en charge VT-X/AMD-v dans la virtualisation imbriquée. Voir cette ouverture ticket/fonctionnalité demande sur virtualbox.org. 

Il y a aussi quelques questions et réponses ici sur SO discuter thistopic

Solutions possibles:

  1. Comme déjà mentionné: Utilisez un autre hyperviseur prenant en charge VT-X/AMD-v dans la virtualisation imbriquée (comme Xen, KVM ou VMware). 
  2. Installez Minikube sur le système d'exploitation hôte et non sur une machine virtuelle.
18
Phonolog

Exécutez Minikube directement sur la VM à l'aide de Docker et de l'option de pilote "aucun" qui ne nécessite pas de virtualisation imbriquée.

Définissez l'option aucun pilote:

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

Installez Docker-ce en suivant les instructions pour la version de votre système d'exploitation VM.

Enfin, lancez 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.
8
Tad Guski

Vérifiez s'il est correctement activé pour la VM (exécutée à l'intérieur de la VM):

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

Et dans le noyau VM:

dmesg | egrep 'DMAR|IOMMU'

VirtualBox uniquement fonctionne avec un invité imbriqué 32 bits, cochez donc également (il ne prend pas en charge prend en charge les invités imbriqués, mais fonctionne avec 32 bits):

uname -m
3
Janos Lenart

"Installez Minikube sur le système d'exploitation hôte et non sur une machine virtuelle."

ce n'est pas tout à fait correct, en fait, vous pouvez installer minikube sous Linux VM en plus de virtualbox ou vmware, etc. avec l'option aucun pilote, qui utilise localkube et traite directement avec kubernetes dans le menu fixe VM hôte.

vous pouvez utiliser ce petit script sous Linux VM pour démarrer le minikube en quelques minutes.

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

2
robertluwang

Essayez d’exécuter minikube sans virtualisation imbriquée (docker devrait être installé):

minikube start --vm-driver=none

De Kubernetes documentation :

Minikube prend également en charge une option --vm-driver = none qui exécute le fichier Composants Kubernetes sur l'hôte et non dans une machine virtuelle. Utilisation de ce pilote requiert Docker et un environnement Linux, mais pas un hyperviseur.

1
k13i

J'ai installé VM ware et installé Virtualbox à l'intérieur de la VM. Et activé VT-X/AMD-v dans la VM externe. ça marche bien.

1
Lakmal Vithanage