web-dev-qa-db-ja.com

UbuntuにMinikubeをインストールvm_VT-X / AMD-vを有効にすると、VM別の内部VM

Ubuntu vm(仮想ボックス内)にminikubeをインストールしようとしています。 vmでVT-X/AMD-vを有効にしました。しかし、私は次のエラーが発生しています。

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

参照 を見つけました。それによると、仮想化の中に仮想化を持たせることはできません。本当ですか?どうすれば修正できますか?

21

Virtual Boxは、ネストされた仮想化でVT-X/AMD-vをサポートしません。 virtualbox.orgでこのopen ticket/feature request をご覧ください。

また、SO thistopic について説明しています)には、さらにいくつかの質問と回答があります。

可能な解決策:

  1. 既に述べたように:ネストされた仮想化でVT-X/AMD-vをサポートする別のハイパーバイザーを使用します(Xen、KVMまたはVMware)。
  2. VMではなく、ホストOSにMinikubeをインストールします。
  3. Tad Guskis answer で説明されているように、Dockerおよび「none」ドライバーオプションを使用してMinikubeを直接実行します。
21
Phonolog

Dockerおよびネストされた仮想化を必要としない「none」ドライバーオプションを使用して、VMで直接Minikubeを実行します。

Noneドライバオプションを設定します。

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

VM OSバージョンの指示に従って、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.
20
Tad Guski

ネストされた仮想化なしでminikubeを実行してみてください(dockerをインストールする必要があります):

minikube start --vm-driver=none

Kubernetesから ドキュメント

Minikubeは、VMではなくホストでKubernetesコンポーネントを実行する--vm-driver = noneオプションもサポートしています。このドライバーを使用するには、DockerとLinux環境が必要ですが、ハイパーバイザーは不要です。

4
k13i

VM(VM内で実行)に対して適切に有効化されているかどうかを確認します。

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

そしてVM kernel:

dmesg | egrep 'DMAR|IOMMU'

VirtualBoxのみworks 32ビットのネストされたゲストで、チェックもします(supportネストされたゲストではありませんが、works 32ビットで) :

uname -m
3
Janos Lenart

「VMではなく、ホストOSにMinikubeをインストールします。」

完全に正しいわけではありません。実際、Linux VMにvirtualboxやvmwareなどのドライバーオプションなしでminikubeをインストールできます。このオプションでは、localkubeを使用してVMホストドッカーのkubernetesを直接処理します。

linux VMでこの小さなスクリプトを実行すると、数分でminikubeを起動できます。

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

2
robertluwang

VM wareをインストールし、VM内にVirtualboxをインストールしました。外部VMでVT-X/AMD-vを有効にしました。正常に動作します。

1