티스토리 뷰

이번 글에서는 쿠버네티스를 설치하기 전에 다양한 쿠버네티스 설치 방법에 대해 알아보려고 합니다.

쿠버네티스는 용도에 따라서 아래와 같이 설치 툴의 종류가 달라집니다. 

 

개발 용도의 쿠버네티스 설치   Minikube
  Docker for Mac / Windows에 내장된 쿠버네티스
서비스 테스트
또는
운영 용도의 쿠버네티스 설치
  kops
  kubespray
  kubeadm
  EKS, GKE, AKS 등의 관리형 서비스

 

 

 

 

* Minikube

 

Minikube는 가벼운 쿠버네티스 구현체이며, 로컬 머신에 VM을 만들고 하나의 노드로 구성된 간단한 클러스터를 생성한다. Minikube는 리눅스, 맥, 그리고 윈도우 시스템에서 구동이 가능하다. Minikube CLI는 클러스터에 대해 시작, 중지, 상태 조회 및 삭제 등의 기본적인 부트스트래핑(bootstrapping) 기능을 제공한다.

출처 : https://kubernetes.io/ko/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/

 

 

 

 

Minikube를 사용하면 VMware Workstation, Virtual Box 등의 가상화 환경에서 쿠버네티스를 손쉽게 설치할 수 있습니다.

간편하게 로컬에서 쿠버네티스의 기본 기능 테스트가 가능합니다.

그러나 이러한 개발 용도의 쿠버네티스는 로컬 노드를 Standalone 모드로 사용하기 때문에 쿠버네티스의 기능들을 완벽하게 사용해보기에는 적합하지 않다는 단점이 있습니다. 

여러 노드들의 자원을 클러스터링 하여 컨테이너를 배치하는 것이 쿠버네티스의 핵심 기능인데, 1개의 로컬 노드로는 이러한 핵심 기능을 구현해 볼 수가 없습니다. 

 

설치가이드 : https://minikube.sigs.k8s.io/docs/start/

 

 

 

 

 

* kops

 

kops는 클라우드 플랫폼에서 쉽게 쿠버네티스를 설치할 수 있도록 도와주는 도구입니다. kubeadm은 직접 서버와 네트워크 인프라를 구축하여 그 위에 쿠버네티스를 설치, 운영하지만 kops는 서버 인스턴스와 네트워크 서비스 등을 클라우드에서 자동으로 생성하고 그 위에 쿠버네티스까지 설치합니다. 

퍼블릭 클라우드에 있는 다양한 서비스들에 익숙하지 않아도 쉽게 필요한 인프라를 프로비저닝하여 쿠버네티스를 설치할 수 있다는 장점이 있습니다.

 

kops는 현재 2021년 12월 30일 기준, AWS만 오피셜하게 지원합니다. DigitalOcean, Openstack은 베타지원 , Azure, GCP는 알파지원을 하고 있습니다. 

 

 

설치가이드: https://kubernetes.io/ko/docs/setup/production-environment/tools/kops/

 

 

 

 

 

 

* kubespray

 

출처 : https://www.densify.com/kubernetes-tools/kubespray

 

kubespray는 Ansible을 통해 쿠버네티스 클러스터를 유연하고 쉽게 배포 및 관리하기 위한 강력한 오픈 소스 툴입니다. 

GCP, Azure, OpenStack, AWS, vSphere, Packet(베어메탈), Oracle Cloud 등 여러 플랫폼에서 클러스터를 배포할 수 있습니다. 

 

kubespray는 Ansible과 kubeadm의 조합을 활용하여 Linux OS 종류, 네트워크 플러그인, 애플리케이션 등 옵션을 선택하여 쿠버네티스를 배포합니다. 

 

 

설치가이드: https://kubernetes.io/ko/docs/setup/production-environment/tools/kubespray/

 

 

 

 

 

 

* kubeadm

 

kubeadm은 일반적인 서버 클러스터 환경에서도 쿠버네티스를 쉽게 설치할 수 있게 해주는 관리 툴입니다. kubeadm은 쿠버네티스 커뮤니티에서도 권장하는 설치 방법 중 하나이며 쿠버네티스를 처음 시작하는 사람도 쉽게 쿠버네티스를 설치할 수 있다는 장점이 있습니다. 

 

kubeadm은 베어메탈 리눅스, EC2 리눅스, VM 리눅스 등 인프라 환경에 상관없이 일반적인 리눅스 서버라면 모두 사용할 수 있습니다. 

 

 

설치가이드: https://kubernetes.io/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

 

 

 

 

 

 

* EKS, GKE, AKS 등의 관리형 서비스 (Public Cloud) 

AWS의 EKS, GCP의 GKE, Azure의 AKS 등의 관리형 서비스를 이용해 쿠버네티스를 사용하면 쿠버네티스의 설치 및 관리까지도 클라우드 제공자(AWS,GCP,Azure)가 담당하므로 쿠버네티스 관리 및 유지보수의 비용이 줄어들게 됩니다. 관리형 서비스를 사용하면 별도로 쿠버네티스를 설치할 필요 없이 실제 서비스 환경을 구성할 수 있다는 장점이 있습니다.

 

 

쿠버네티스 사용 환경에 따른 특징 비교

 

 

 

설치가이드: https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/getting-started.html

 

 

 

 

 

쿠버네티스를 처음 사용하시는 분들은 EKS, GKE같은 관리형 서비스를 사용하기 보다는 kubeadm을 사용하여 직접 구축 해보고 오브젝트 등 전체적인 개념을 파악하는 것이 더 좋다고 생각합니다. 다음 글에서는 kubeadm을 통해 쿠버네티스 설치 방법을 알아보도록 하겠습니다.