Tech Blog of Pinomaker
article thumbnail

Minikube

쿠버네티스는 본래 마스터 노드와 1개 이상의 워커 노드로 구성되어 있지만, 단순 테스트를 위하여 개인이 2개의 노드를 구성한 플랫폼을 만드는 것은 쉽지 않다.

 

Minikube는 마스터 노드의 일부 기능과 개발 및 배포를 위한 단일 워커 노드를 제공하여 간단한 쿠버네티스 플랫폼 환경을 개인 PC에서도 만들 수 있게 도와준다.

 

오늘은 M2 맥북에서 Minikube를 사용하는 방법에 대해서 학습할 것이다.

 

Minikube와 kubectl 설치

 

먼저 homebrew를 이용하여 minikube를 설치해준다.

brew install minikube

 

설치를 마치고, 아래 명령어를 이용하여 설치가 잘 되었는 지 확인한다.

minikube version

 

 

 

이제 Kubectl을 설치해보자. 

 

kubectl은 Kubernetes control의 약자로, 쿠버네티스의 커맨드 CLI 도구다. 이를 통하여 kubernetes 클러스터에 명령어를 전달하여 사용할 수 있다.

brew install kubectl

 

Minikube 실행

 

Minikube를 실행하기 위해서는 가상 드라이버가 필요한데, Hyperkit, Hyper-V, VM, Docker 중에서 M1, M2 맥북이 사용 가능한 것은 오직 Docker 드라이버 밖에 없다고 한다. 

 

따라서 아래의 명령어를 입력하여 Minikube를 실행한다.

minikube start --driver=docker

 

자 이제 돌아가고 있는 컨테이너를 확인하면 k8s-minikube가 돌아가고 있는 것을 확인할 수 있다.

 

Minikube Dashboard를 이용한 컨테이너 실행

Minikube는 GUI인 Dashboard를 자체 제공해준다. 이를 이용하여 컨테이너를 Minikube에 배포해보자.

 

먼저 아래 명령어를 이용하여 Minikube Dashboard를 활성화 시킨다.

minikube dashboard

 

 

배포가 완료되면 Minikube의 Dashboard가 활성화되어서 웹 접속을 할 수 있다. 우측 상단에 보이는 + 버튼을 클릭하여 이제 컨테이너를 배포해보자.

 

나는 내가 개인적으로 가지고 있는 Docker hub의 Image를 사용하여 테스트를 진행한다. 여러분들도 Docker Image 중 하나를 선택하여 테스트 해보면 될 듯하다.

 

중요한 것은 포트포워딩이다. 나는 컨테이너 내부에서 80번 포트를 사용하기에 외부에서 8080 포트로 들어오면 내부 컨테이너 80번 포트로 포워딩하게 설정해두었다.

 

 

시간이 지나면 Dashboard에서 배포가 완료되었다는 것을 확인할 수 있다. 

 

하지만 아직 접속은 할 수 없다. 

 

로드 밸런서를 지원하는 클라우드 공급자의 경우에는 서비스에 접근할 수 있도록 외부 IP 주소가 프로비저닝 한다. minikube에서 LoadBalancer타입은 minikube service 명령어를 통해서 해당 서비스를 접근할 수 있게 한다.

 

따라서 아래 명령어를 사용하면 외부로 접속 가능한 포트 및 Public IP를 제공해준다.

 

자 이제 우리는 http://127.0.0.1:57425를 통하여 우리가 배포한 컨테이너에 접속할 수 있다.

 

접속이 잘 된다

profile

Tech Blog of Pinomaker

@pinomaker

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!