24년 11월 이전/쿠버네티스

쿠버네티스 클러스터 구축하기 (1) minikube

Gurumee 2021. 12. 21. 19:30
반응형

minikube란?

minikubemacOS, LinuxWindows에서 로컬 kubernetes 클러스터를 빠르게 설정해주는 도구이다. 즉 minikube를 이용하면 손쉽게  로컬에서 쿠버네티스 클러스터를 만들 수 있다. 심지어 여러 클러스터를 관리하는 것도 가능하다.

 

이 문서는 minikube를 설치하여, 로컬에 Kubernetes 클러스터를 구축하는 것에 대하여 다룬다. 설치 이전 나의 개발 환경은 다음과 같다.

  • desktop: macbook pro 13 2020
  • cpu: Intel Core i7 4core
  • memory: 32GB

minikube 설치

minikubeDocker, 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의 경우, ServiceAccountRBAC를 따로 설정해야지 로그인이 가능한데 minikube는 그런 작업을 자동으로 해준다.

클러스터 관리 명령어

minikubekubernetes 클러스터를 관리하는 여러 명령어들이 있다.

 

클러스터 일시 정지

$ 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

참고

728x90
반응형