Engineering/minikube

minikube 설치하기(macOS)

망고v 2024. 6. 11. 11:43

Cloud 환경에 자체 Kubernetes cluster를 설치하고 이것 저것 해보기에는 불필요한 Storage 비용이 꾸준히 발생하게 된다. (Computing 비용은 Host를 Off해서 사용한만큼만 발생하지만..) 조금 더 마음 편하게 가지고 놀 생각으로 minikube를 설치해서 다양한 실험을 진행해보기로 결정.

 

 

minikube 설치하기

Kubernetes Cluster를 Cloud에 설치할 때와 비교하면 난이도는 easy. 그냥 가이드만 따라가면 minikube dashboard를 만날 수 있다.

 

[참고] https://minikube.sigs.k8s.io/docs/start/?arch=%2Fmacos%2Fx86-64%2Fstable%2Fbinary+download

 

minikube start

minikube is local Kubernetes, focusing on making it easy to learn and develop for Kubernetes. All you need is Docker (or similarly compatible) container or a Virtual Machine environment, and Kubernetes is a single command away: minikube start What you’ll

minikube.sigs.k8s.io

 

➜  minikube curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 93.3M  100 93.3M    0     0  9603k      0  0:00:09  0:00:09 --:--:-- 10.7M
➜  minikube sudo install minikube-darwin-amd64 /usr/local/bin/minikube
➜  minikube minikube start
😄  Darwin 14.2.1 의 minikube v1.33.1
    ▪ KUBECONFIG=:./kube.conf
✨  자동적으로 hyperkit 드라이버가 선택되었습니다
💾  드라이버 docker-machine-driver-hyperkit 다운로드 중 :
    > docker-machine-driver-hyper...:  65 B / 65 B [---------] 100.00% ? p/s 0s
    > docker-machine-driver-hyper...:  9.43 MiB / 9.43 MiB  100.00% 6.38 MiB p/
🔑  The 'hyperkit' driver requires elevated permissions. The following commands will be executed:

    $ sudo chown root:wheel /Users/joonhopark/.minikube/bin/docker-machine-driver-hyperkit
    $ sudo chmod u+s /Users/joonhopark/.minikube/bin/docker-machine-driver-hyperkit


💿  가상 머신 부트 이미지 다운로드 중 ...
    > minikube-v1.33.1-amd64.iso....:  65 B / 65 B [---------] 100.00% ? p/s 0s
    > minikube-v1.33.1-amd64.iso:  314.16 MiB / 314.16 MiB  100.00% 13.72 MiB p
👍  Starting "minikube" primary control-plane node in "minikube" cluster
💾  쿠버네티스 v1.30.0 을 다운로드 중 ...
    > preloaded-images-k8s-v18-v1...:  342.90 MiB / 342.90 MiB  100.00% 13.61 M
🔥  hyperkit VM (CPUs=2, Memory=4000MB, Disk=20000MB) 를 생성하는 중 ...
🐳  쿠버네티스 v1.30.0 을 Docker 26.0.2 런타임으로 설치하는 중
    ▪ 인증서 및 키를 생성하는 중 ...
    ▪ 컨트롤 플레인을 부팅하는 중 ...
    ▪ RBAC 규칙을 구성하는 중 ...
🔗  bridge CNI (Container Networking Interface) 를 구성하는 중 ...
🔎  Kubernetes 구성 요소를 확인...
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟  애드온 활성화 : storage-provisioner, default-storageclass

❗  /usr/local/bin/kubectl is version 1.20.0, which may have incompatibilities with Kubernetes 1.30.0.
    ▪ Want kubectl v1.30.0? Try 'minikube kubectl -- get pods -A'
🏄  끝났습니다! kubectl이 "minikube" 클러스터와 "default" 네임스페이스를 기본적으로 사용하도록 구성되었습니다.

 

 

점검

Client 입장에서 아직은 Kubernetes Cluster와 차이를 모를 정도로 kubectl이 동작한다. 

➜  minikube alias kubectl="minikube kubectl --"
➜  minikube kubectl get po -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE
kube-system   coredns-7db6d8ff4d-gfhmd           1/1     Running   0          4m8s
kube-system   etcd-minikube                      1/1     Running   0          4m22s
kube-system   kube-apiserver-minikube            1/1     Running   0          4m22s
kube-system   kube-controller-manager-minikube   1/1     Running   0          4m23s
kube-system   kube-proxy-5k24r                   1/1     Running   0          4m8s
kube-system   kube-scheduler-minikube            1/1     Running   0          4m22s
kube-system   storage-provisioner                1/1     Running   0          4m20s
➜  minikube 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

🤔  Dashboard 의 상태를 확인 중입니다 ...
🚀  프록시를 시작하는 중 ...
🤔  Proxy 의 상태를 확인 중입니다 ...
🎉  Opening http://127.0.0.1:56820/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...

 

minikube dashboard는 우선 합격. GUI에 편한 사람들은 나쁘지 않게 쓸 수도 있을 것 같다.

 

설치 과정을 수행한 폴더에 kube.conf 파일을 이용하여 Cluster 접근도 정상적으로 수행이 된다. CLI도 거의 동일한데 로컬에서 뭔가 실험할 때 minikube 쓸만한 것 같다. 다양한 설정을 진행하며 minikube에 대해 차차 알아가기로..

 

 

설치하고 Node 상태를 보니 많은 것을 설치할 수는 없을 것 같은데, 설치하려는 application의 resource request를 제거하고 실험을 하든가.. 아무튼..

│ Allocated resources:
│   (Total limits may be over 100 percent, i.e., overcommitted.)
│   Resource           Requests    Limits
│   --------           --------    ------
│   cpu                750m (37%)  0 (0%)
│   memory             170Mi (4%)  170Mi (4%)
│   ephemeral-storage  0 (0%)      0 (0%)
│   hugepages-2Mi      0 (0%)      0 (0%)