Mac에서 혼자 이것 저것 테스트해볼 수 있는 나만의 쿠버네티스 클러스터를 만들어보자. 이런 목적으로 설치해볼 수 있는 것이 minikube이다.
Mac에서는 homebrew를 이용하여 kubectl과 minikube를 설치한다. kubectl 은 쿠버네티스 API를 이용해 쿠버네티스 환경을 컨트롤할 수 있는 명령어 클라이언트이고, minikube는 mini 사이즈의 쿠버네티스 클러스터이다.
$ brew install kubectl minikube
minikube 설치 시에 vm-driver를 선택하게 되는데, 이를 위해 virtualbox를 설치한다. 쿠버네티스 클러스터를 구성할 가상의 서버라고 생각하면 된다.
$ brew cask install virtualbox virtualbox-extension-pack
virtualbox를 가상의 서버로 삼아서 minikube를 실행시킨다. virtualbox를 이용해 가상의 서버가 구동되며 쿠버네티스 환경이 구성된다.
$ minikube start --vm-driver=virtualbox 😄 minikube v1.11.0 on Darwin 10.15.5 ▪ KUBECONFIG=/Users/deejay/.kube/config ✨ Using the virtualbox driver based on user configuration 💿 Downloading VM boot image ... > minikube-v1.11.0.iso.sha256: 65 B / 65 B [-------------] 100.00% ? p/s 0s > minikube-v1.11.0.iso: 174.99 MiB / 174.99 MiB [] 100.00% 7.05 MiB p/s 25s 👍 Starting control plane node minikube in cluster minikube 💾 Downloading Kubernetes v1.18.3 preload ... > preloaded-images-k8s-v3-v1.18.3-docker-overlay2-amd64.tar.lz4: 526.01 MiB 🔥 Creating virtualbox VM (CPUs=2, Memory=2200MB, Disk=20000MB) ... 🐳 Preparing Kubernetes v1.18.3 on Docker 19.03.8 ... 🔎 Verifying Kubernetes components... 🌟 Enabled addons: default-storageclass, storage-provisioner 🏄 Done! kubectl is now configured to use "minikube"
kubectl 명령으로 확인해보자. node가 한개 생성되어 있고, pod는 없으며 service는 kubernetes가 한 개 떠 있다. get namespaces 명령으로 기본 구성된 namespaces도 확인할 수 있다.
$ kubectl get nodes NAME STATUS ROLES AGE VERSION minikube Ready master 17m v1.18.3 $ kubectl get pods No resources found in default namespace. $ kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 18m $ kubectl get namespaces NAME STATUS AGE default Active 19m kube-node-lease Active 19m kube-public Active 19m kube-system Active 19m