[MLOps] - 로컬 쿠버네티스 환경 만들어보기

반응형

로컬 쿠버네티스 

로컬 쿠버네티스는 물리 머신에서 손쉽게 쿠버네티스를 테스트할 수 있는 방법이다.

한 대의 머신에 올인원으로 구성되어 이중화가 보장되지 않는 점에 주의해야 한다.

 

미니큐버 Minikube 

미니큐브 (Minikube)는 물리머신에 로컬 쿠버네티스를 쉽게 구축하고 실행할 수 있는 도구로, 쿠버네티스의 SIG-Cluster-Lifecycle이라는 분과회에서 만들었다.

 

미니큐브는 단일 노드 구성이라 여러 대의 구성이 필요한 쿠버네티스 기능 등은 사용할 수 없다. 또한, 미니큐브는 로컬 가상 머신에 쿠버네티스를 설치하기 위해 하이퍼 바이저가 필요하다.

 

미니큐브 설치

brew install minikube

 

미니큐브 설치 후 버전 확인

minikube version

hyperkit은 m1 맥에서 설치가 안된다 !! 일단 넘어가고 미니큐브만 설치했다.

맥에서는 hyperkit, Virtual Box, Parallels, VMware Fusion, Podman 중 하나의 하이퍼바이저를 설치해야 한다.

 

m1이 아닌 맥에서는 다음 명령어로 설치가 가능하다.

brew install hyperkit

 

하이퍼바이저는 m1에서 Docker만 선택가능하다.

docker를 우선 설치하고 docker를 실행시킨 후 아래의 명령어를 입력하면 정상적으로 실행된다.

minikube start driver=hyperkit --kubernetes-version b1.18.15

 

아래의 명령어로 미니큐브 클러스터의 상태를 확인할 수 있다.

minikube status

Docker Desktop for Mac 

도커 역시 DockerCon EU 17에서 쿠버네티스 지원을 발표하고 쿠버네티스 커맨드 라인 인터페이스(CLI)를 통해 도커 스윔을 관리할 수 있게 하는 등 연계 기능을 강화했다.

 

Docker Desktop for Mac도 버전 18.06.0 CE부터 로컬 머신에서 쿠버네티스를 사용할 수 있게 되었다.

하지만 쿠버네티스 버전을 지정할 수 없기 때문에 특정 버전을 사용하고 싶은 경우 주의해야 한다.

docker 공식 사이트에서 도커를 설치하고

Docker Desktop을 실행하여 Preference에서 쿠버네티스를 활성화해야 사용할 수 있다.

 

Download Docker Desktop | Docker

 

Download Docker Desktop | Docker

Docker Desktop is available to download for free on Mac, Windows, or Linux operating systems. Get started with Docker today!

www.docker.com

 

docker desktop을 실행시킨 후 kubernetes를 활성화한다.

 

다음 명령어로 컨텍스트를 전환한 후에는 kubectl을 사용하여 Docker Desktop 클러스터를 조작할 수 있다.

 kubectl config use-context docker-desktop

kubectl에서는 로컬 머신에 기동 중인 도커 호스트를 쿠버네티스 노드로 인식한다.

 

또한 쿠버네티스 클러스터 기능을 담당하는 구성 요소(components) 그룹도 컨테이너로 기동된다. 쿠버네티스를 활성화할 때 Show System containers( advanced )도 활성화하면 다음과 같이 docker container ls 명령어로 구성요소를 확인할 수 있다.

 

 docker container ls --format 'table {{.Image}}\t{{.Command}}' | grep -v pause

 

Kind ( Kubernetes in Docker ) 

kind는 쿠버네티스 자체 개발을 위한 도구로 쿠버네티스의 SIG-Testing이라는 분과회에서 만들어졌다.

이름처럼 도커 컨테이너를 여러 개 기동하고 그 컨테이너를 쿠버네티스 노드로 사용하는 것으로, 여러 대로 구성된 쿠버네티스 클러스터를 구축한다.

 

현재 로컬 환경에서 멀티 노드 클러스터를 구축하려면 이 kind를 이용하는 것이 가장 좋다.

kind도 brew를 사용하여 설치할 수 있다.

brew install kind

 

다음은 클러스터를 구축하고 구성 설정은 아래와 같은 YAML 파일로 관리할 수 있다.

kind는 내부에서 kubeadm이라는 구축 도구를 사용하며, 구축 시 설정 파일에 대해 패치를 적용하는 kubeadmConfigPathces와 kubeadmConfigPatchesJson6902 등을 사용하여 다양한 클러스터를 구축할 수 있다. 알파 클러스터를 생성할 때도 이 설정을 사용하여 FeautreGates를 활성화한다.

  • FeatureGates : FeatureGates는 쿠버네티스 기능을 활성화 / 비활성화하기 위한 방법이다. 기본적으로 베타 이상의 상태가 된 기능에 대해서는 기본값으로 활성화되지만, 알파 상태 기능에 대해서는 명시적으로 활성화해야한다. 쿠버네티스에 어떤 새로운 기능이 추가되었는지는 FeatureGates를 확인하는 것만으로도 어느 정도 파악할 수 있다.

 

로컬 쿠버네티스 정리 표

항목 Minikube Docker Desktop kind

버전 선택 o x o
멀티 클러스터 o x o
기능성 o x o
단순성 o o o
멀티 노드 x x o
반응형