쿠버네티스 클러스터 구축하기 (1) minikube
minikube란?
minikube
는 macOS
, Linux
및 Windows
에서 로컬 kubernetes
클러스터를 빠르게 설정해주는 도구이다. 즉 minikube
를 이용하면 손쉽게 로컬에서 쿠버네티스 클러스터를 만들 수 있다. 심지어 여러 클러스터를 관리하는 것도 가능하다.
이 문서는 minikube
를 설치하여, 로컬에 Kubernetes
클러스터를 구축하는 것에 대하여 다룬다. 설치 이전 나의 개발 환경은 다음과 같다.
- desktop: macbook pro 13 2020
- cpu: Intel Core i7 4core
- memory: 32GB
minikube 설치
minikube
는 Docker
, Virtualbox
등의 여러 가상 머신 드라이버 위에서 동작한다. 이 문서에서는 드라이버로 Docker
를 사용한다. 만약 설치되어 있지 않다면 다음 문서를 참고하라.
터미널에 다음 명령어로 설치 가능하다.
# 설치 파일 다운로드
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
# minikube 설치
$ sudo install minikube-darwin-amd64 /usr/local/bin/minikube
# 설치 파일 삭제
$ rm minikube-darwin-amd64
클러스터 생성하기
설치가 완료되었다면 다음 명령어로 클러스터를 생성할 수 있다.
$ minikube start
😄 Darwin 11.3.1 의 minikube v1.24.0
✨ 자동적으로 docker 드라이버가 선택되었습니다
👍 minikube 클러스터의 minikube 컨트롤 플레인 노드를 시작하는 중
🚜 베이스 이미지를 다운받는 중 ...
💾 쿠버네티스 v1.22.3 을 다운로드 중 ...
> preloaded-images-k8s-v13-v1...: 501.73 MiB / 501.73 MiB 100.00% 7.93 MiB
> gcr.io/k8s-minikube/kicbase: 355.78 MiB / 355.78 MiB 100.00% 5.32 MiB p/
🔥 Creating docker container (CPUs=2, Memory=1985MB) ...
🐳 쿠버네티스 v1.22.3 을 Docker 20.10.8 런타임으로 설치하는 중
▪ 인증서 및 키를 생성하는 중 ...
▪ 컨트롤 플레인이 부팅...
▪ RBAC 규칙을 구성하는 중 ...
🔎 Kubernetes 구성 요소를 확인...
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟 애드온 활성화 : storage-provisioner, default-storageclass
🏄 끝났습니다! kubectl이 "minikube" 클러스터와 "default" 네임스페이스를 기본적으로 사용하도록 구성되었습니다.
클러스터 테스트
minikube
로 구성된 클러스터는 일반적인 쿠버네티스 클러스터 사용법과 동일하다. 간단히 테스트하기 위해서 터미널에 kubectl get po -A
를 입력해보자.
$ kubectl get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-78fcd69978-w862c 1/1 Running 0 5m58s
kube-system etcd-minikube 1/1 Running 0 6m12s
kube-system kube-apiserver-minikube 1/1 Running 0 6m9s
kube-system kube-controller-manager-minikube 1/1 Running 0 6m9s
kube-system kube-proxy-fm58k 1/1 Running 0 5m58s
kube-system kube-scheduler-minikube 1/1 Running 0 6m9s
kube-system storage-provisioner 1/1 Running 1 (5m57s ago) 6m8s
minikube
의 한 가지 좋은 점은 대시보드를 쉽게 구성 및 확인할 수 있다는 것이다. 다음 명령어를 입력한다.
$ minikube dashboard
minikube dashboard [14:10:11]
🔌 대시보드를 활성화하는 중 ...
▪ Using image kubernetesui/metrics-scraper:v1.0.7
▪ Using image kubernetesui/dashboard:v2.3.1
🤔 Verifying dashboard health ...
🚀 프록시를 시작하는 중 ...
🤔 Verifying proxy health ...
🎉 Opening http://127.0.0.1:52354/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
그러면 다음과 같이 브라우저에 쿠버네티스 대시보드가 실행된다.
원래 kuberenetes-dashboard
의 경우, ServiceAccount
와 RBAC
를 따로 설정해야지 로그인이 가능한데 minikube
는 그런 작업을 자동으로 해준다.
클러스터 관리 명령어
minikube
는 kubernetes
클러스터를 관리하는 여러 명령어들이 있다.
클러스터 일시 정지
$ minikube pause
클러스터 일시 정지 해제
$ minikube unpause
클러스터 종료
$ minikube stop
클러스터 메모리 할당
$ minikube config set memory 16384
minikube
애드온 목록
$ minikube addons list
kubernetes
클러스터 생성 (-p 옵션은 클러스터 이름, --kuberenetes-version 옵션은 클러스터 버전 설정)
$ minikube start -p aged --kubernetes-version=v1.16.1
minikube
가 관리하는 여러 클러스터 삭제
$ minikube delete --all