본문 바로가기

kubernetes

mac에서 docker-machine + minikube를 활용해 k8s cluster 만들기 !

이전에 minikube+katacoda를 이용한 k8s cluster만들기 라는 게시글을 작성했었는데

(https://almostgeneral.tistory.com/1)

 

minikube+katacoda 이용해서 kubernetes 환경 구성

집에서 kubernetes cluster를 만들기엔 너무 번거로워 k8s니 뭐니 얘기하길래 설치해서 공부하려니 필요한 게 너무 많아 어려움을 겪는 (나같은) 사람들을 위해 작성한 게시글 minikube+katacoda를 이용하

almostgeneral.tistory.com

아무레도 local 환경에 만들어두는게 장차 좋을것같아서 다시 작성한다 !

우선 minikube를 사용해서 k8s cluster를 구성하려면 docker가 설치되어 있어야한다. 하지만, mac은 linux가 아니므로, 수월한 사용을 위해 linux vm을 macos위에 올리고, 그 위에 docker daemon을 실행할것이다. (mac위에 바로 설치했었는데 자잘한 문제가 계속 발생해서 포기 :-( 

 

docker-machine, virtualbox 설치 

위에서 말한 mac위에 linux vm을 올리고 docker를 실행하도록 도와주는 docker-machine, virtualbox를 설치한다 ! 

# brew install docker-machine
# brew install virtualbox

(아주 간단하다)

 

위 명령어로 docker-machine이 정상적으로 설치되었다면, 이제 vm을 만들어주어야 한다.

# docker-machine create -d virtualbox --virtualbox-cpu-count=2 --virtualbox-memory=40000 default

위 명령은 2 Core에 4G mem을 사용하는 vm을 생성하는 명령어다.

별도의 cpu, memory 설정이 없으면 1core로 만들어버리던데, minikube사용을 위해 2core는 필수로 사용해야한다 ! 

(여유 있으면 더 넉넉히 할당해도 된다,, 나는 없어서,, T_T)

 

위 명령을 제대로 수행하고 나면 아래 실행결과 log에도 나오는데 아래와 같이 명령어를 입력하면 docker-machine 생성/실행 및 docker활용이 가능하다

$ docker-machine env default
$ eval $(docker-machine env default)

## 생성한 docker machine의 Running STATE 확인
$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER      ERRORS
default   *        virtualbox   Running   tcp://192.168.99.101:2376           v19.03.12

$ docker-machine ssh
   ( '>')
  /) TC (\   Core is distributed with ABSOLUTELY NO WARRANTY.
 (/-_--_-\)           www.tinycorelinux.net

$ lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              2
...
$ free -m
              total        used        free      shared  buff/cache   available
Mem:          39286         766       35807         283        2712       37876
Swap:         10714           0       10714

##종료는 ctrl + D

kubectl, minikube 설치 ! 

이제 docker 사용 준비가 되었으니 아래 명령어로 minikube를 설치한다 ! 

# brew install kubectl minikube

설치가 정상적으로 완료되면, 아래 명령어로 minikube를 이용한 cluster set-up이 진행된다

# minikube start

이것저것 확인!

제대로 설치가되었는지 확인해보자 ! 

## pod 확인 
$ kubectl get pod -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE
kube-system   coredns-558bd4d5db-fggq4           1/1     Running   0          19m
kube-system   etcd-minikube                      1/1     Running   0          19m
kube-system   kube-apiserver-minikube            1/1     Running   0          19m
kube-system   kube-controller-manager-minikube   1/1     Running   0          19m
kube-system   kube-proxy-62tmf                   1/1     Running   0          19m
kube-system   kube-scheduler-minikube            1/1     Running   0          19m
kube-system   storage-provisioner                1/1     Running   0          19m

## node 확인
$ kubectl get nodes -o wide
NAME       STATUS   ROLES                  AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION         CONTAINER-RUNTIME
minikube   Ready    control-plane,master   20m   v1.21.2   192.168.49.2   <none>        Ubuntu 20.04.2 LTS   4.19.130-boot2docker   docker://20.10.7

 

이제야 진짜 local에 k8s cluster를 만들었다..! 이제 시작이구나~!

 

Trouble Shooting

아래와 같은 로그가 뜨면서 docker-machine이 정상적으로 동작하지 않을때가 있다.

Stderr: 0%... Progress state: NS_ERROR_FAILURE VBoxManage: error: Failed to create the host-only adapter VBoxManage: error: VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directory

이럴 땐 맥북의 환경설정->보안 및 개인정보 보호 -> 일반 에서 Oracle관련 보안 허용 메세지가 있다면 허용해주고 아래 명령어를 수행한다음 다시 docker-machine 명령어로 vm restart하면 된다.

$ sudo /Library/Application\ Support/VirtualBox/LaunchDaemons/VirtualBoxStartup.sh restart
 
반응형