와탭 블로그

전체보기

쿠버네티스(Kubernetes)가 클라우드 도입을 이끄는 이유

2018년 12월 12일

kubernets_cloud_adoption

쿠버네티스(Kubernetes)가 국내 엔터프라이즈 기업의 클라우드 도입을 이끌고 있습니다. 엔터프라이즈 기업의 운영 책임자들은 도커와 쿠버네티스의 조합에 만족감을 보이며 자사의 서비스 플랫폼을 클라우드로 옮기려 하고 있습니다. 쿠버네티스가 클라우드 도입을 이끌어 가는 이유에 대해 알아보도록 하겠습니다.

Google의 Borg와 Kubernetes

우선 Kubernetes를 알려면 Google의 Borg 프로젝트를 알아야 합니다. Kubernetes는 Borg의 후속 버전이라고 할 수 있습니다.

2000년 초반 Google은 수만 대의 머신으로 구성된 클러스터를 안정적으로 동작시킬 수 있는 시스템을 필요로 하고 있었습니다. 2003년, Google은 Borg 프로젝트를 시작합니다.

초기 Borg가 하는 일은 OS가 프로세스를 관리하는 것과 비슷했습니다. 우리가 일반적으로 사용하는 컴퓨터는 여러 프로세스를 실행하는 경우 운영 체제가 우선순위를 결정합니다. 주어진 시점에 어떤 프로세스를 활성화시킬지를 결정하고 리소스가 부족한 경우 어떤 프로세스를 멈추거나 죽여야 할지 결정합니다. 보그 (Borg)는 클러스터 규모에서 Workload를 관리하는 역할을 합니다. 구글의 머신 클러스터는 내부 네트워크로 연결된 수천 대의 서버로 구성되어 있습니다. Borg 클러스터 스케줄러가 어떤 서비스를 결정하는 바이너리의 200 개 사본을 원한다면 Borg 스케줄러는 서비스를 실행할 수 있는 여유 용량이 있는 클러스터에서 시스템을 식별하고 서비스를 실행하라는 요청을 이 시스템의 노드 에이전트에 전송합니다.

10년간 Borg 시스템을 통해 지속적으로 자사의 컨테이너들을 관리해오던 구글은 2014년 오픈소스 형태의 Kubernetes를 발표합니다.

Borg를 시작한 Google의 니즈는 현재 클라우드를 도입하여 더 빠르고 안전하게 운영하고자 하는 기업의 니즈와 거의 동일합니다. Kubernetes가 정식 발표 후 3년 만에 이렇게 커다란 생태계를 가진 것은 지난 10년간 Borg를 통해 쌓아올린 노하우가 있었기 때문입니다.

Kubernetes의 시작

Kubernetes의 시작은 Docker의 출현이 큰 역할을 했습니다. Kubernetes 팀은 Docker가 클라우드의 핵심 기술이 될 거라 확신했지만 Docker는 그 관리체계에 있어 너무 불완전했습니다. 결국 Kubernetes 팀은 도커를 오케스트레이션 할 수 있는 Kubernetes를 만들게 됩니다.

2014년 Kubernetes 팀의 초기 목표는 "최소한으로 실행 가능한 오케스트레이터"를 개발하는 것이었습니다. Kubernetes 팀은 Borg 경험을 바탕으로 오케스트레이터에 대한 기본 기능을 아래와 같이 정의했습니다.

  • 복제를 사용하여 여러 응용 프로그램 인스턴스 배포
  • 로드 밸런싱과 서비스 검색으로 복제 된 컨테이너로 트래픽 라우팅
  • 기본적인 건강 검진 및 치료를 통한 자동 복구 시스템
  • 많은 머신을 하나의 풀로 묶어 작업을 배포하도록 예약

위 네 가지 핵심 기능을 만족시킨 후 2014년에 Kubernetes는 처음 세상에 나오게 됩니다. 그리고 2015년 정식으로 1.0 버전이 출시됩니다.

Kubernetes의 현재

whatap_blog_21

현재 Kubernetes는 컨테이너 오케스트레이션의 절대 강자입니다. 오히려 다른 고민이 없어서 감사할 정도의 압도적인 우위를 가지고 있습니다. 18년 12월 현재 전 세계 500개 이상의 Kubernetes Meetup이 활동하고 있습니다. GitHub에 Kubernetes를 보면 1900명 이상의 사람들이 Kubernetes 작업에 참여하고 있으며 45,200개의 별이 달린 것을 확인할 수 있습니다.

현재 국내에서 Kubernetes의 특징은 스타트 업보다 엔터프라이즈 기업의 환호를 받고 있다는 것입니다. 기존 클라우드 관련 솔루션은 모두 스타트업에서 먼저 사용되었지만 쿠버네티스는 엔터프라이즈에서 먼저 대중화되고 있습니다. 엔터프라이즈 기업이 가지고 있는 클라우드의 대한 거부감은 기존 대비 더 많아지는 가상 호스트 머신에 대한 관리 요소였습니다. 하지만 Kubernetes를 통해 가상 호스트 머신의 관리가 가능해지게 되었습니다. 오히려 스타트 업은 관리의 복잡도가 크지 않아서 Kubernetes에는 아직 관심을 두고 있지 않습니다.

마무리

현재 클라우드는 Kubernetes로 대동단결 중입니다. 특히 기존 클라우드에 주저하던 엔터프라이즈 기업들마저도 Kubernetes 기반의 클라우드로 넘어갈 것으로 예상되고 있습니다. 시장에서의 MSA(Micro Service Architecture)의 기준도 Kubernetes의 사용 여부로 모아지고 있습니다. MSA를 Kubernetes의 조합이 워낙 출중하고 상업적으로도 매력적입니다. 이미 Google, Amazon , MS, IBM, Oracle 모두 Kubernetes 기반의 서비스를 제공하고 있습니다. 현재 클라우드 도입을 준비 중인 기업이라면 Kubernetes 중심으로 전략을 가져가야 합니다.

관련 정보
https://kubernetes.io/blog/2015/04/borg-predecessor-to-kubernetes/ https://blog.risingstack.com/the-history-of-kubernetes/ https://www.quora.com/What-is-Google-Borg-system
<  이전 글

다음 글  >

최신글