본문 바로가기

쿠버네티스

Kubeadm, Kubespary, kOps, Cluster API 설명 및 비교

0. 개요

Kubeadm, Kubespray, Cluster API, kOps 모두 쿠버네티스(Kubernetes, k8s) 클러스터의 배포 및 관리를 위한 도구입니다.
이 세 가지 도구를 설명 및 비교하겠습니다.

 

1. 각 도구 설명

1.1 Kubeadm

쿠버네티스 클러스터를 **부트스트랩(초기화)**하고 구성하는 도구입니다.

의미 그대로 기본적인 구성 요소만 초기화하여 빠르고, 쉽게 클러스터를 구축할 수 있게 도와줍니다.

💡 기본적인 구성 요소에는 API 서버, 컨트롤러 매너지, 스케줄러 등이 있습니다.

 

Kubeadm에는 세 가지 중요 명령어가 있습니다.

  1. kubeadm init
    • 쿠버네티스는 컨트롤 플레인데이터 플레인으로 구분할 수 있습니다.
    • 이 명령어는 컨트롤 플레인을 초기화 합니다.
  2. kubeadm join
    • 데이터 플레인의 중요 구성 요소에 워커 노드컨테이너 런타임 등이 있습니다.
    • 새로운 워커 노드를 클러스터에 추가하여 데이터 플레인을 확장하기 위해 이 명령어를 사용합니다.
  3. kubeadm token
    • 이 명령어는 클러스터 토큰을 관리하기 위해 사용합니다.
    • 워커 노드를 클러스터에 포함시킬 때, 사용합니다.

위 글에서 짐작할 수 있듯이

Kubeadm 명령어는 컨트롤 플레인만 초기화하여 실행 가능한 최소 클러스터를 시작하고 실행하는데 필요한 작업을 수행합니다.

즉, 네트워크 설정, 운영체제 설치, 하드웨어 구성과 같은 작업은 사용자가 별도로 진행해야 합니다.

 

1.2 Kubespay

쿠버네티스 클러스터 시스템 프로비저닝하는 도구입니다.

이는 Ansible 플레이북을 기반으로 동작합니다.

💡 시스템 프로비저닝이란? 서버 준비, OS 설치 및 설정, 필수 소프트웨어 설치, 네트워크 설정, 스토리지 설정, 보안 설정 등 쿠버네티스 클러스터를 초기화 및 설정하는 작업을 의미합니다.

💡 Ansible이란? 여러 서버를 효율적으로 관리할 수 있게 하는 자동화 도구입니다. Ansible 플레이북에 정보를 설정하면, 해당 설정 그대로 서버를 만들거나 수정할 수 있습니다.

 

시스템 프로비저닝이란? 서버 준비, OS 설치 및 설정, 필수 소프트웨어 설치, 네트워크 설정, 스토리지 설정, 보안 설정 등 쿠버네티스 클러스터를 초기화 및 설정하는 작업을 의미합니다.
Ansible이란? 여러 서버를 효율적으로 관리할 수 있게 하는 자동화 도구입니다. Ansible 플레이북에 정보를 설정하면, 해당 설정 그대로 서버를 만들거나 수정할 수 있습니다.

Kubespay는 Kubeadm로 구성한 클러스터보다 더 유연하고 사용자 정의가 가능합니다.

또, 시스템 프로비저닝을 자동화할 수 있기 때문에 전체 배포 과정을 더 쉽게 관리할 수 있습니다.

 

1.3 kOps

쿠버네티스를 생성 및 관리하기 위한 도구입니다.
클러스터의 프로비저닝, 관리, 업데이트, 삭제 등 라이프사이클 전체를 관리하는데 중점을 두고 있습니다.
 
Kubespray와 비슷하다 생각이 드실 수 있습니다.
하지만, kOps는 CLI 도구 및 YAML 기반 설정으로 이뤄지며 Kubespray는 Ansible 플레이북을 기반으로 관리됩니다.
또, kOps는 클라우드 환경에만 적합하지만, Kubespray는 클라우드 및 온프레미스와 같은 다양한 환경에서 적합합니다.

 

1.4 Cluster API

클러스터의 라이프사이클 관리를 위한 도구입니다.

주요 특징 중 하나가, 멀티 클라우드에 적합하다는 것입니다.

💡 멀티클라우드란? AWS, GCP 등 다양한 클라우드를 통합해서 사용하는 방식을 의미합니다.

 

클라우드 프로바이더별로 다양한 인프라와 통합되어, 클라우드 네이티브 방식의 클러스터 관리를 제공합니다.

 

아래 링크는 카카오 i 클라우드 개발진에 진행한 세션인데, Cluster API에 대해 설명하고 있으니 꼭 봐보시길 바랍니다.

https://if.kakao.com/2022/session/58

 

if(kakao)dev2022

함께 나아가는 더 나은 세상

if.kakao.com

 

 

2. 주요 차이점

특징 kubeadm kubespay kOps Cluster API
관리 방식 CLI Ansible 플레이북 CLI 네이티브 API
환경 지원 단일 클러스터, 온프레미스 다양한 클러스터, 온프레미스 주로 클라우드에 사용(온프레미스 지원 가능) 다양한 클라우드, 온프레미스
자동화 수준 초기화 및 노드 추가에 중점 클러스터 설치, 구성, 업그레이드 자동화 클라우드 네이티브 자동화 클러스터 라이프사이클 자동화
사용자 편의성 간단하고 빠른 클러스터 설정 설정 파일을 편접하여 설치 및 관리 CLI 명령어를 통한 간단 설치 네이티브 리소스 사용
확장성 사용자 정의 제한적 다양한 네트워크 플러그인 및 구성 요소 선택 가능 Terraform과의 통합, 클라우드 네이티브 가능 플러그인 기반 확장 가능
사용 사례 단일 클라우드, 온프레미스 다양한 클러스터, 온프레미스 클라우드 환경에서의 간편한 설치 및 관리 멀티 클라우드 환경에서의 클러스터 관리