이전에 minikube+katacoda를 이용한 k8s cluster만들기 라는 게시글을 작성했었는데
(https://almostgeneral.tistory.com/1)
아무레도 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
'kubernetes' 카테고리의 다른 글
k9s: Kubernetes 환경을 위한 편리한 관리 도구 (0) | 2022.12.02 |
---|---|
kubernetes 의 runtime이 containerd 일 때 nsenter로 container 접속 (tcpdump) (0) | 2022.10.26 |
tumblr kubernetes sidecar injector deploy ! (0) | 2021.07.25 |
kubernetes sidecar injector란? (0) | 2021.07.14 |
minikube+katacoda 이용해서 kubernetes 환경 구성 (0) | 2021.07.14 |