본문 바로가기

Linux/Kubernetes

[Kubernetes] Unable to start VM: create: precreate: VirtualBox is configured with multiple host-only adapters... sudo 없이 minikube 이용하기, kubernetes VirutalBox 에러

에러코드

💣  Unable to start VM: create: precreate: VirtualBox is configured with multiple host-only adapters with the same IP "192.168.99.1". Please remove one


😿  Sorry that minikube crashed. If this was unexpected, we would love to hear from you:


에러 상황

sudo 없이 minikube command를 이용하고 싶은 상황

chown을 통해 파일 소유 및 권한을 바꾸면, sudo 없이 command가 실행은 되지만, VirtualBox 에러가 나는 상황.


해결법 요약

우선 sudo 없이 명령어를 실행하고 싶은 경우


    sudo chown -R $USER $HOME/.minikube

    sudo chown -R $USER $HOME/.kube


를 통해  .minikube 와 .kube 디렉토리의 소유자를 현재 유저로 바꾼다.


이후! sudo minikube start 가 아닌.

minikube start

입력한다.

(아마 sudo minikube start를 입력하면 다시 디렉토리 소유자가 root로 바뀌는 것 같음.)

minikube start시 VM이나 Virtualbox관련 IP 중복 에러 발생시

virtualbox의 Global Tools - Host Network Manager 에서 중복된 아이피를 제거하거나 변경한다.


해결법 세부내용


chown을 통해 소유자를 바꾼 뒤 sudo 없이 minikube start 시 VM 이나 VirtualBox Error가 발생하지 않으면 그대로 성공적으로 minikube start가 될 것이고,

대부분의 경우 Error가 발생할 것이다.

root에서 실행했다가 USER로 실행했다가 하면서 VirtualBox가 여러개의 IP를 겹치게 할당시키는 것 같음.


sudo로 실행할 땐, root 로 실행을 하고, 일반 사용자로 실행할 땐, 일반 사용자 그대로 실행하다보니

minikube도 virtualbox도 꼬이게 되는 것 같다.

일반 사용자에서 minikube start 이후 sudo virtualbox를 실행하면

이때의 virtualbox는 root로 실행되어서 일반사용자의 VM을 표시하지 않는 등의 착오가 발생하게 된다.


해답은 https://localbyflywheel.com/community/t/virtualbox-is-configured-with-multiple-host-only-adapters-with-the-same-ip/3326 를 참고하였다.

virtual extension pack에 있는 Global Tools를 이용해 IP를 수정하였다.


terminal에서 virtualbox를 입력하거나 알아서 자기가 설치한 virtualbox를 실행한 뒤 오른쪽 위의 Global Tools를 눌러준다.


아마 위에서처럼 

" Unable to start VM: create: precreate: VirtualBox is configured with multiple host-only adapters with the same IP "192.168.99.1". Please remove one "

라는 에러코드를 받은 경우에는 Global Tools 의 Host Network Manager에서 IPv4 Address가 동일한 두 개 이상의 vboxnet이 나올 것이라 예상된다.

나는 여기서 중복된 IPv4 Address를 임의로 수정하여 겹치지 않게하거나

하나만 남기고 다 지워버렸다.

그랬더니 에러메시지에 따라 같은 IP의 adapter를 제거해서인지 이후로는 잘 작동하였다.




요약

단순히 sudo 없이 minikube 나 kubectl command를 sudo 없이 사용하고 싶다면,



    sudo chown -R $USER $HOME/.minikube

    sudo chown -R $USER $HOME/.kube


을 통해 디렉토리와 그 하부 파일들의 소유자를 현재 유저로 바꿔준다.


이후 sudo 없이 minikube start 등의 command를 실행하니 VM이나 VirtualBox에 대한 IP 중복 관련 Error가 발생했다면


virtualbox를 실행해서 Global tools - Host Network Manager에서 중복된 IP를 수정해주자.