맘가는 대로
minikube 설치 및 활용 본문
minikube 란?
mini + kube 로 보이는 이름을 가진 minikube 는 로컬 환경에서 최상의 쿠버네티스 환경을 제공하고자 하는 프로젝트 명이며, 프로그램 이름이기도 하다. 보통 서버 및 클러스터 구조에서 운용되는 쿠버네티스를 간편하게 구현 및 테스트하기 위한 도구이다.
시스템 관리자, 운영자 등은 쿠버네티스의 구조를 파악하기 위해 보통 사용하며, 개발자들은 실제 로컬 개발 환경 구현을 위해 사용하곤 한다.
minikube 설치
이 글에서는 윈도우 호스트 환경에서 minikube 를 설치하고 활용하는 방법을 쓰고자 한다.
우선, 윈도우 호스트에서 minikube 는 버추얼박스를 기반으로 작동하기 때문에 버추얼 박스가 설치되어 있어야 한다. 이는 다른 글들에서 잘 설명되기도 하고, 설치 과정이 어렵지 않아 바로 넘어가도록 하겠다.
minikube 다운로드 사이트 — https://github.com/kubernetes/minikube/releases
위의 링크는 minikube 를 소스 코드 혹은 바이너리 형태로 다운로드할 수 있는 페이지이다. 다양한 플랫폼을 지원하기 때문에 자신이 사용하려는 플랫폼에 맞는 바이너리를 고르거나, 직접 컴파일해서 사용할 수 있다.
윈도우 호스트에서 사용할 것이기 때문에 이름 중간에 windows 가 들어간 minikube-windows-amd64.exe 실행 파일을 다운로드 받는다. 이 때 위치는 어느 곳으로 해도 좋으며, 나중에 PATH 환경 변수에 넣을 위치만 잘 정해주면 된다.
구분하기 쉽고, PATH 환경 변수 등록에도 편하도록 C:\k8s 폴더에 해당 바이너리 파일을 넣도록 하겠다. 편의를 위해 보통 minikube.exe 로 이름 변경이 권장되지만 기억할 수 있다면 확장자를 제외하고 다른 이름으로 해도 좋다.
이제 쿠버네티스 클러스터를 조작하기 위해 필요한 kubectl 을 설치하기로 한다. 마찬가지로 실행 파일을 동일한 폴더에 다운로드 받는다. 이는 관리의 필요성으로 같이 두는 것이며, 원한다면 다른 폴더에 두어도 상관없다.
아래의 링크는 kubectl 을 설치하기 위한 다운로드 링크이다.
https://storage.googleapis.com/kubernetes-release/release/v1.14.0/bin/windows/amd64/kubectl.exe
환경 변수 설정
이제 PATH 환경 변수를 설정한다.
파일 탐색기를 열고 내 PC 를 우클릭한 뒤, 속성을 클릭한다.
이후 고급 시스템 설정 버튼을 클릭한다.
이후 뜨는 창에서 아래쪽에 있는 환경 변수 버튼을 클릭한다.
이후 아래쪽에 있는 시스템 변수에서 Path 변수를 클릭하고 좀 더 아래쪽에 있는 편집 버튼을 클릭한다.
이후 우측 상단에 있는 새로 만들기 버튼을 클릭한다.
그리고 목표한 대로 k8s 폴더의 절대 경로를 변수 목록에 포함시킨다. 이후 아래쪽의 확인 버튼을 누르면 된다.
자, 이제 정확히 설정됐는지 확인해보자.
cmd 창을 연다. 그리고 minikube 와 kubectl 명령어가 정확히 조회되는지 확인한다. 이는 명령어를 조회하는 윈도우 명령어인 where 를 이용한다.
목표한 대로 k8s 폴더 아래의 명령어들을 사용되는 것을 확인할 수 있다.
쿠버네티스 클러스터 활성화
minikube 의 쿠버네티스 클러스터를 활성화하기 위해 아래의 명령어를 입력한다.
mikube start
그러면 아래와 같이 차례대로 상황을 표시한다.
쿠버네티스 클러스터가 정상적으로 작동하는지 확인하기 위해 아래의 명령어를 입력한다.
minikube status
kubectl 명령어를 통해서 클러스터의 상태를 확인해보자. 아래의 명령어를 입력한다.
kubectl get nodes
테스트
테스트 컨테이너를 생성하고 접속까지 해보자.
공식적으로 제공되고 있는 설정 예제를 사용하자. 아래의 명령어를 입력한다.
kubectl apply -f https://k8s.io/examples/application/deployment.yaml
배포된 컨테이너 정보도 조회해보자. 아래의 명령어를 입력한다.
kubectl describe deployment nginx-deployment
컨테이너내에서 서비스되고 있는 웹 페이지는 바로 접속할 수 없다. 쿠버네티스에서 포트를 사용할 수 있도록 설정해주어야 한다.
쿠버네티스에서 포트를 노출시키기 위해 아래의 명령어를 입력한다.
kubectl expose deployment nginx-deployment --type=NodePort
정상적으로 노출되고 있는지 아래의 명령어를 입력한다.
kubectl get svc
NAME 열에 nginx-deployment 항목이 보인다면 잘 적용된 것이다.
PORT 열을 확인하면 컨테이너의 80 포트가 30228 포트로 매핑된 것을 확인할 수 있다.
서비스 접속을 하려면 minikube 가 사용하는 IP 와 노출된 포트 정보를 이용해 접속할 수 있다. 이 페이지에서 확인되는 정보를 이용해서 접근할 때에는 192.168.99.100:30228 를 웹 브라우저 주소창에 입력하면 된다.
혹은 아래와 같이 명령어를 입력한다. 주 사용 웹 브라우저를 통해 노출되고 있는 서비스를 바로 접속하게 된다.
minikube service nginx-deployment
VM 정지 및 삭제
minikube VM 을 정지하고 싶다면 아래와 같은 명령어를 입력한다.
minikube stop
VM 을 삭제하고 싶다면 아래와 같은 명령어를 입력한다.
minikube delete
기타
kubectl 을 사용했을 때 바로 클러스터를 사용할 수 있는 이유
kubectl 명령어는 쿠버네티스가 사용하는 API 를 CLI 형태로 사용할 수 있게 하는 유용한 도구이다. 다만, 어떠한 정보나 암호화 인증서를 입력하지 않았음에도 바로 클러스터를 접속가능한 이유는 minikube 가 클러스터를 생성할 때 이미 접속 정보를 사용자 폴더에 저장했기 때문이다. 해당 위치는 아래와 같다.
%USERPROFILE%\.kube\config
이를 조회하면 이미 관련 정보가 있는 것이 확인이 된다. kubectl 은 이 정보를 이용하기 때문에 바로 클러스터를 이용할 수 있는 것이다.
마치며
minikube 를 이용하면 빠르게 쿠버네티스 환경을 빠르게 구성할 수 있기 때문에 유용한 도구다. 이를 통해 쿠버네티스 연구나 개발에 도움이 될 것이다.
출처