미니큐브 / 쿠버네티스 테스트 방법 /로컬에서 쿠버 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 에서 무료로 사용해 볼 수 있다.
댓글 없음:
댓글 쓰기