Minikube 드라이브 Hyperkit 설치하기
ㅁ 들어가며
minikube의 런타임 드라이브는 Docker Desktop이 기본이다.
인그레스(Ingress) 컨트롤러로 Minikube에서 인그레스 설정하기에서 docker로 Ingress 테스트를 진행하는데 실패하였다.
그래서 driver가 문제가 될 수 있다는 글을 보아서 drive 설치 및 docker의 네트워크 문제에 대해서 분석을 해 보았다.
ㅁ Docker 안의 Docker 한계
ㅇ minikube를 사용하면서 네트워크 관련 작업을 할 때에 한계점을 만나게 된다.
ㅇ minikube 드라이브를 Docker를 사용할 경우 minikube node는 Docker 컨테이너로 생성된다.
ㅇ Ingress로 로드밸런스나 서비스를 생성하여 외부 접속 테스트를 할 때이면 외부에서는 쉽게 접속이 되지 않는다.
ㅇ minikube의 서비스를 외부 연결을 할 때에 아래의 경고가 발생한다.
ㅇ docker driver의 경우 터미널에서 프로세스를 유지해야 외부에서 접속이 가능하였다.
ㄴ 프로세스를 유지해야 하는 이유는 터널링으로 외부 연결을 유지하기 때문인듯 하다.
ㄴ docker 안에 docker 컨테이너가 있다보니 네트워크도 복잡하기 때문이다.
ㅇ host의 eth0 -> docker0 -> veth(virtual ethernet interface) -> 컨테이너의 eth0
ㄴ 컨테이너의 eth0 -> docker0 -> veth(virtual ethernet interface) -> 컨테이너 안의 컨테이너 eth0
ㅇ 함께 보면 좋은 사이트: 도커 네트워크의 이해
ㅁ HyperKit 설치
brew install hyperkit
ㅁ 사용법
# minikube 기동 시 드라이브 지정
$ minikube start --driver=hyperkit
# 기본 드라이브 지정
$ minikube config set driver hyperkit