쿠버네티스

macOS (silicon) minikube 설치하기

알쓸개잡 2023. 8. 24.

처음 kubernetes 를 접했을 때 어려운 부분은 실습 환경을 구성하는 일이다. minikube 는 로컬환경에서 kubernetes 를 실습할 수 있는 단일 클러스터 환경을 구성할 수 있는 도구입니다.  이번 포스팅에서는 macOS (silicon) 환경에서 minikube 를 설치하는 방법에 대해서 기록합니다.

 

사전조건

  • 최소 2 CPU
  • 최소 2GB 메모리
  • 최소 20GB 디스크 공간
  • 인터넷 환경
  • Docker, QEMU, KVM, VirtualBox, VMWare 와 같은 컨테이너 혹은 가상머신 관리 도구
  • homebrew

포스팅 작성 시점의 kubernetes 최신 버전은 1.28.0 입니다.

 

설치

minikube 설치 방법에는 설치 패키지를 다운로드 하여 설치하는 방식과 homebrew 를 통해서 설치하는 방법이 있습니다.

설치패키지 다운로드 설치 방식

$>curl -LO https://storage.google.apis.com/minikube/releases/latest/minikube-darwin-arm64
$>sudo install minikube-darwin-arm64 /usr/local/bin/minikube

위 명령은 minikube-darwin-arm64 설치 패키지를 다운로드 하여 /usr/local/bin/minikube 에 설치합니다.

 

homebrew 를 이용한 설치 방식

$>brew search minikube
==> Formulae
minikube ✔       minised

==> Casks
minitube
$>brew install minikube

작성 시점의 brew 를 통해서 minikube 설치 버전은 아래 링크에서 확인해 볼 수 있습니다.

https://github.com/Homebrew/homebrew-core/blob/master/Formula/m/minikube.rb

minikube 버전은 v1.31.2

brew 를 통해서 minikube 를 설치한 경우 /opt/homebrew/Cellar/minikube/1.31.2 경로에 설치됨을 알 수 있습니다. 1.31.2 는 설치된 minikube 버전입니다.

$>where minikube
/opt/homebrew/bin/minikube
$>ll /opt/homebrew/bin/minikube
lrwxr-xr-x@ 1 admin  38  8 24 23:00 /opt/homebrew/bin/minikube -> ../Cellar/minikube/1.31.2/bin/minikube
$>ll /opt/homebrew/Cellar/minikube/1.31.2
total 528
drwxr-xr-x@ 10 admin     320  8 24 23:00 .
drwxr-xr-x@  3 admin      96  8 24 23:00 ..
drwxr-xr-x@  3 admin      96  8 17 06:36 .brew
-rw-r--r--@  1 admin  245838  8 17 06:36 CHANGELOG.md
-rw-r--r--@  1 admin    1009  8 24 23:00 INSTALL_RECEIPT.json
-rw-r--r--@  1 admin   11374  8 17 06:36 LICENSE
-rw-r--r--@  1 admin    3898  8 17 06:36 README.md
drwxr-xr-x@  3 admin      96  8 17 06:36 bin
drwxr-xr-x@  3 admin      96  8 17 06:36 etc
drwxr-xr-x@  4 admin     128  8 17 06:36 share

 

kubectl 설치

minikube 를 설치하면 기본적으로 [minikube kubectl --] command 를 통해 kubectl 을 사용할 수 있지만 별도로 kubectl 을 설치하는 것이 더 좋을 것 같습니다.

별도로 kubectl 을 설치하는 것은 아래 포스팅을 참고하세요.

2023.08.24 - [쿠버네티스] - macOS (apple silicon) 에 kubectl 설치하기

minikube 에서 제공하는 kubectl 을 사용하려면 편의상 alias 를 지정하여 사용하는 것이 좋습니다.

alias kubectl="minikube kubectl --"

 

minikube 실행

기존적인 실행은 아래와 같습니다.

$>minikube start --driver=docker

minikube 는 다양한 드라이버 구성을 지원합니다. macOS 의 경우에는 드라이버로 docker 를 권장합니다.

minikube Drivers 를 참고 링크 남깁니다.

docker 드라이버를 사용할 것이기에 docker 서버가 실행되어 있어야 합니다.

docker 서버가 실행되어 있지 않은 상태에서 minikube 를 사용하면 아래와 같은 메시지가 발생합니다.

$>minikube start --driver=docker
😄  Darwin 13.4.1 (arm64) 의 minikube v1.31.2
✨  기존 프로필에 기반하여 docker 드라이버를 사용하는 중

💣  Exiting due to PROVIDER_DOCKER_NOT_RUNNING: "docker version --format <no value>-<no value>:<no value>" exit status 1: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
💡  권장: Start the Docker service
📘  문서: https://minikube.sigs.k8s.io/docs/drivers/docker/

 

docker 서버(docker desktop) 실행 후 minikube 를 실행합니다.

$>minikube start --driver=docker
😄  Darwin 13.4.1 (arm64) 의 minikube v1.31.2
✨  기존 프로필에 기반하여 docker 드라이버를 사용하는 중
👍  minikube 클러스터의 minikube 컨트롤 플레인 노드를 시작하는 중
🚜  베이스 이미지를 다운받는 중 ...
🔄  Restarting existing docker container for "minikube" ...
🐳  쿠버네티스 v1.27.4 을 Docker 24.0.4 런타임으로 설치하는 중
🔗  Configuring bridge CNI (Container Networking Interface) ...
🔎  Kubernetes 구성 요소를 확인...
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟  애드온 활성화 : storage-provisioner, default-storageclass
🏄  끝났습니다! kubectl이 "minikube" 클러스터와 "default" 네임스페이스를 기본적으로 사용하도록 구성되었습니다.
$>kubectl version
Client Version: v1.28.0
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.27.4

kubectl version 명령을 통해서 kubernetes 설치 버전은 v1.27.4 임을 알 수 있습니다.

 

 

설치 후 kubernetes 확인

kubectl 명령을 통해서 kubernetes 자원을 확인해 볼 수 있습니다.

$>kubectl get ns
NAME                   STATUS   AGE
default                Active   11h
kube-node-lease        Active   11h
kube-public            Active   11h
kube-system            Active   11h
kubernetes-dashboard   Active   3m6s
$>kubectl get pod -n kube-system
NAME                               READY   STATUS    RESTARTS        AGE
coredns-5d78c9869d-zc94j           1/1     Running   1 (11h ago)     11h
etcd-minikube                      1/1     Running   1 (11h ago)     11h
kube-apiserver-minikube            1/1     Running   1 (11h ago)     11h
kube-controller-manager-minikube   1/1     Running   1 (11h ago)     11h
kube-proxy-fwwgn                   1/1     Running   1 (11h ago)     11h
kube-scheduler-minikube            1/1     Running   1 (11h ago)     11h
storage-provisioner                1/1     Running   3 (6m51s ago)   11h

kubectl dashboard 명령을 통해서 웹 UI 기반 kubernetes 자원을 확인해 볼 수 있습니다.

$>minikube dashboard
🔌  대시보드를 활성화하는 중 ...
    ▪ Using image docker.io/kubernetesui/dashboard:v2.7.0
    ▪ Using image docker.io/kubernetesui/metrics-scraper:v1.0.8
💡  Some dashboard features require the metrics-server addon. To enable all features please run:

	minikube addons enable metrics-server


🤔  Verifying dashboard health ...
🚀  프록시를 시작하는 중 ...
🤔  Verifying proxy health ...
🎉  Opening http://127.0.0.1:58166/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...

 

minikube help

 

//minikube 에서 제공되는 명령어를 확인 할 수 있습니다.
$>minikube help

//minikube 명령어에 대한 help 정보를 확인 할 수 있습니다.
$>minikube help start

 

 

manage cluster

//배포된 애플리케이션에 영향을 주지 않고 kubernetes 를 일시 중지합니다.
$>minikube pause

//일시 중시 상태를 해제합니다.
$>minikube unpause

//kubernetes 를 중지합니다.
$>minikube stop

//사용가능한 addon 리스트를 출력합니다.
$>minikube addons list

//이전 버전의 kubernetes 클러스터를 생성합니다.
$>minikube start -p aged --kubernetes-version=v1.16.1

//모든 minikube 클러스터를 삭제합니다.
$>minikube delete --all

지금까지 macOS(silicon) 에서 minikube 설치하는 방법을 알아보았습니다.

 

minikube 공식 문서 링크 남깁니다.

 

이 글을 읽으시는 분께 도움이 되었기를 바랍니다.

댓글

💲 추천 글