Kubernetes RKE1 vs RKE2

Jdragon·2024년 12월 2일

msa

목록 보기
2/3

MSA 아키텍쳐 설계 하면서 엔진에 대해 고민해보았습니다.

크게 RKE1과 RKE2 중 고민하게 되었습니다.

RKE1(Rancher Kubernetes Engine)와 RKE2는 Rancher에서 제공하는 Kubernetes 클러스터 관리 솔루션으로, 각각 다른 목적과 기술 스택을 가지고 있습니다. 다음은 두 엔진의 주요 차이점과, 특징, 그리고 어떤 사항에서 적합한지 설명하겠습니다.

Rancher 는 컨테이너 관리 플랫폼으로 다양한 Kubernetes 클러스터를 효율적으로 배포, 관리, 모니터링을할 수 있는 도구 입니다.

RKE1

  • RKE1 이란,
    기존 Rancher 사용자를 위한 Kubernetes 클러스터 설치 및 관리 도구 입니다. 기존 Docker 컨테이너 런타임을 기반으로 클러스터를 구성합니다.
  • 특징
    1. Docker 기반 : RKE1은 노드에서 Kubernetes를 실행하기 위해 Docker를 필수로 사용합니다.
    2. 유연한 설치 : YAML 파일을 사용하여 손쉽게 클러스터 설정가능
    3. 경량화 : 비교적 간단하고 가벼운 설치 과정
    4. 지원 : 안정성과 성숙도가 높아 많은 기업에서 사용 중
  • 한계
    1. Docker 의존성이 높아 향후 Kubernetes의 방향성과 다소 상충될 수 있습니다
    2.CNCF (컨테이너 기술을 발전시키고 기술 산업의 진화를 지원하기 위해 설립된 프로젝트) 가 더이상 Docker를 기본 컨테이너 런타임으로 추천하지 않습니다.

RKE2

  • RKE2 이란,
    Kubernetes의 최신 요구사항과 보안 표준을 충족하기 위해 설계된 RKE의 차세대 버전입니다. RKE1과 달리 K3s의 기술 스택을 기반으로 구축되었습니다.
  • 특징
    1. 컨테이너 런타임 변경: RKE2는 Docker 대신 Containerd를 기본 컨테이너 런타임으로 사용합니다.
    2. 보안 강화: FIPS(Federal Information Processing Standards)를 준수하는 구성 옵션 제공합니다
    3. 이식성: RKE2는 클라우드 네이티브 환경에 최적화되어 더 나은 성능을 제공합니다.
    4. Kubernetes 방향성과 일치: 최신 Kubernetes 트렌드와 아키텍처 설계에 맞춰 개발.

  • 한계
    1. RKE1보다 상대적으로 복잡한 설정 과정.
    2. 기존 시스템을 RKE2로 마이그레이션할 때 추가 학습 곡선이 필요.


어떤 엔진을 선택해야 할까?

RKE1이 적합한 경우
1. 기존 인프라가 Docker 기반으로 운영되고 있다면.
2. 빠르게 Kubernetes 클러스터를 설치하고 운영하려는 경우.
3. 온프레미스 환경에서 가볍고 간단한 클러스터를 원하는 경우.

RKE2가 적합한 경우
1. 보안이 중요한 환경(예: 금융, 공공)에서 운영해야 하는 경우.
2. 최신 Kubernetes 트렌드와 기능을 활용하고자 하는 경우.
3. 컨테이너 런타임 표준(Containerd)으로의 전환을 고려하고 있다면.
4. 클라우드 네이티브 환경에서 확장 가능한 클러스터를 운영하려는 경우.


저희 프로젝트는 장기 프로젝트로 지속적인 업데이트를 진행 할 것입니다.

따라서 장기적인 관점에서 Kubernetes 생태계가 Containerd와 최신 보안 표준으로 전환 되고 있으므로 RKE2가 더 유리하다고 생각합니다.


RKE2의 Master(Control Plane) 와 Slave (Worker)

1. Master의 역할

  • 클러스터 상태 관리 및 스케줄링을 담당.
  • 주요 구성 요소 :
    • Scheduler : 새 워크로드를 적합한 워커 노드에 배치
    • API Server : 클러스터에 대한 모든 요청을 처리.
    • Controller Manager : 클러스터 상태를 원하는 상태로 유지
    • etcd : 클러스터의 상태 데이터 저장

2. Slave (Worker)의 역할

  • Control Plane 에서 지정한 워크로드를 실행하는 역할.

  • 주요 구성 요소 :

    • kubelet : Pod의 생명 주기를 관리.
    • kube - proxy : 클러스터 네트워크 통신 관리.
    • containerd : Pod 내 컨테이너 실행.
profile
고졸개발자취업도전

0개의 댓글