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를 통하여 우리가 배포한 컨테이너에 접속할 수 있다.
접속이 잘 된다