처음 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
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 공식 문서 링크 남깁니다.
이 글을 읽으시는 분께 도움이 되었기를 바랍니다.
'쿠버네티스' 카테고리의 다른 글
multipass를 이용하여 로컬 환경에 쿠버네티스 클러스터 구축하기 (0) | 2024.07.04 |
---|---|
macOS (apple silicon) 에 kubectl 설치하기 (0) | 2023.08.24 |
쿠버네티스 pod graceful shutdown (0) | 2023.08.06 |
port forward 명령으로 로컬에서 pod 접속하기 (0) | 2023.08.04 |
Release 상태의 PV 를 Available 상태로 변경하기 (0) | 2023.07.30 |
댓글