[컴] Minikube 설치 및 실행

 미니큐브 / 쿠버네티스 테스트 방법 /로컬에서 쿠버 k8s 


Minikube

minikube 로 local 에서 kubernetes 를 경험할 수 있다. 그래서 일단 minikube 를 설치하자. 여기서는 linux 를 기준으로 설명한다.

참고로 kind 라는 것도 존재한다.
Okteto kubernetes 에서 개발용도로 kubernetes 를 쉽게 사용할 수 있게 해준다.

 

Minikube Features

Minikube 는 Kubernetes 기능중 아래 것들을 제공해 준다.

  • DNS
  • NodePorts
  • ConfigMaps and Secrets
  • Dashboards
  • Container Runtime: Docker, CRI-O, and containerd
  • Enabling CNI (Container Network Interface)
  • Ingress

vmbox 를 사용하는 경우

  • core 는 2개 이상
  • memory 는 4GB 이상이 좋다. 3GB 로 했을때는 system overhead 에 대한 여유공간이 없다고 메시지가 뜬다.

kubectl 설치

minikube 설치

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
  && chmod +x minikube

sudo mkdir -p /usr/local/bin/
sudo install minikube /usr/local/bin/

minikube start --driver=docker

<diver_name> 은 아래 중 하나를 택할 수 있다. 여기선 docker 를 택해보자.

  • docker
  • kvm2
  • none
  • podman
  • virtualbox
  • vmware

Docket 설치는 Install Docker Engine on Ubuntu | Docker Documentation 를 참고하자.

vmbox 에서 1 core cpu 를 사용하면, 아래같은 error 를 확인할 수 있다.

Exiting due to RSRC_INSUFFICIENT_CORES: Docker has less than 2 CPUs available, but Kubernetes requires at least 2 to be available

docker permission

아래처럼 docker group 에 user 를 넣어줘야 한다.

$ sudo usermod -aG docker $USER && newgrp docker

안그러면 아래같은 error 를 만나게 된다.

Exiting due to PROVIDER_DOCKER_ERROR: "docker version --format -" exit status 1: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix /var/run/docker.sock: connect: permission denied
💡  Suggestion: Add your user to the 'docker' group: 'sudo usermod -aG docker $USER && newgrp docker'

minikube start --driver=docker

이 명령어가 VM 을 생성하고 설정(configure) 한다. 그리고 이 VM 에서 single-node Kubernetes cluster 를 실행한다. 또한 이 cluster 와 통신하기 위해 kubectl 설정도 한다.[ref. 2]

--driver 로 vm driver 를 설정하게 된다. 한 번 설정되면, 그냥 minikube start 로 수행하면 된다. 다시 변경하려면 다시 --driver 를 이용해서 설정하면 된다. 자세한 내용은 여기를 참고하자

현재 3.08GB 인데 아래같은 error 가 떴다. 그래서 minikube start --memory=2200mb 를 해서 실행했다.

na@na-VirtualBox:~$ minikube start --driver=docker
😄  Ubuntu 20.04 (vbox/amd64) 위의 minikube v1.13.0
✨  유저 환경 설정 정보에 기반하여 docker 드라이버를 사용하는 중

🧯  The requested memory allocation of 2200MiB does not leave room for system overhead (total system memory: 3000MiB). You may face stability issues.
💡  Suggestion: Start minikube with less memory allocated: 'minikube start --memory=2200mb'

3GB ram 에서 실행한 경우

na@na-VirtualBox:~$ minikube start --driver=docker
😄  Ubuntu 20.04 (vbox/amd64) 위의 minikube v1.13.0
✨  유저 환경 설정 정보에 기반하여 docker 드라이버를 사용하는 중

🧯  The requested memory allocation of 2200MiB does not leave room for system overhead (total system memory: 3000MiB). You may face stability issues.
💡  Suggestion: Start minikube with less memory allocated: 'minikube start --memory=2200mb'

👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
💾  Downloading Kubernetes v1.19.0 preload ...
    > preloaded-images-k8s-v6-v1.19.0-docker-overlay2-amd64.tar.lz4: 486.28 MiB

🔥  Creating docker container (CPUs=2, Memory=2200MB) ...
🐳  쿠버네티스 v1.19.0 을 Docker 19.03.8 런타임으로 설치하는 중
🔎  Verifying Kubernetes components...
🌟  Enabled addons: default-storageclass, storage-provisioner
🏄  Done! kubectl is now configured to use "minikube" by default

4GB ram 에서 실행한 경우

na@na-VirtualBox:~$ minikube start
😄  Ubuntu 20.04 (vbox/amd64) 위의 minikube v1.13.0
✨  기존 프로필에 기반하여 docker 드라이버를 사용하는 중
👍  Starting control plane node minikube in cluster minikube
🔄  Restarting existing docker container for "minikube" ...
🐳  쿠버네티스 v1.19.0 을 Docker 19.03.8 런타임으로 설치하는 중
🔎  Verifying Kubernetes components...
🌟  Enabled addons: default-storageclass, storage-provisioner
🏄  Done! kubectl is now configured to use "minikube" by default

그밖의 명령어

  • minikube status
  • minikube stop
    • cluster 를 멈추고, Minikube Virtual Machine 끈다(shut down)
    • 모든 cluster state 와 data 는 보존된다.
  • minikube delete : clear minikube's local state
    • delete을 한 이후에는 minikube start 로 다시 minikube cluster 를 생성해야 한다.

etc

vm(minikube 같은) 을 띄우지 않고 바로 kubernetes 를 사용하려면 MicroK8s 도 괜찮을 수 있다.(linux, windows, macos 용을 제공한다.)

아래 site 에서 무료로 사용해 볼 수 있다.

댓글 없음:

댓글 쓰기