지난 6월 쿠버네티스는 탄생 10주년을 맞았다. 쿠버네티스는 역사상 가장 성공적인 오픈소스 프로젝트다. 아마 클라우드 컴퓨팅을 다루는 IT 담당자라면 최소 한번쯤은 들었을 것이다. 오늘날 클라우드 네이티브란 용어와 쿠버네티스는 거의 동의어로 사용된다. 그만큼 쿠버네티스가 클라우드 분야에 미친 영향이 크단 얘기다. 쿠버네티스는 애플리케이션의 개발과 배포, 운영의 패러다임을 완전히 바꿨다.
쿠버네티스는 컨테이너 기반 애플리케이션을 빠르고 예측가능하게 배포하게 하며, 애플리케이션을 즉각 확장하게 해준다. 새로운 기능을 원활하게 출시하게 하며, 필요한 자원만 활용해 하드웨어를 최적화한다. 이 장점은 제한된 하드웨어 자원과 예산에서 어떻게든 효율과 성능을 최대로 뽑아내야 했던 IT 엔지니어의 고민과 만났다. 그리고 인프라 설정과 할당의 고민에서 벗어나 표준 API 중심의 마이크로서비스아키텍처(MSA)를 만들어가던 개발자의 필요와도 만났다.
쿠버네티스의 탄생
그리스어로 조타수란 뜻인 ‘쿠버네티스(Kubernetes)’는 구글에서 태어났다. 구글의 셀 수 없을 정도로 많은 웹 서비스 인프라는 수많은 컨테이너로 쪼개져 구성됐고, 구글의 인프라 관리 조직은 너무 많아진 컨테이너 기반 애플리케이션을 효율적으로 관리할 수 있는 도구를 만들어야만 했다.
쿠버네티스가 세상에 나온 건 2014년이다. 공식 생일도 오픈소스로서 첫 커밋 날짜를 기준으로 한다. 그러나 쿠버네티스의 탄생은 그보다 더 앞선 시점이다. 도커란 기술이 등장해 리눅스 컨테이너를 대중화하기 전부터다. 구글은 도커 등장 전부터 컨테이너를 활용하고 있었다.
크레이그 맥러키, 조 베다, 브렌던 번스 등의 구글 엔지니어들은 2013년 여름 우르스 횔즐(Urs Hölzle) 구글 기술 인프라 책임자에게 쿠버네티스의 초기 아이디어를 처음 소개했다. 이들은 당시 구글에서 사용 중이던 컨테이너 작업 스케줄러 ‘보그 프로젝트(project Borg)’를 발전시켜 오픈소스로 내놓자고 제안했다.
2016년 크레이그 맥러키가 구글클라우드 블로그에 올린 쿠버네티스 탄생기에 따르면, 우르스 횔즐은 제안자들의 이야기를 듣고 반대했다고 한다. 그는 아래와 같이 말한 것으로 전해진다.
“당신은 보그 작업 스케줄러의 외부 버전을 만들고 싶어하는군요. 그건 우리의 가장 중요한 경쟁 우위 중 하나입니다. 우리가 한번도 외부에 이야기조차 하지 않는 우위에요. 게다가 그것을 오픈소스로 만들고 싶다고요?”
맥러키에 의하면, 구글 인프라 조직은 2003년부터 부족한 예산 속에서 투자 효율을 극대화하기 위해 컨테이너를 활용했다. 그리고 보그란 컨테이너 클러스터 관리 시스템을 구축해 수십만개 작업을 실행하고 데이터센터 활용률을 높였다. 이후 이와 동일한 인프라로 구글클라우드플랫폼(GCP)을 만들었다. 그러면서 가상머신(VM)보다 CPU를 효율적으로 사용하고, 이식 가능하며 확장 가능한 기술로 컨테이너에 강한 확신을 갖게 됐다고 한다. 2013년 도커가 이미 선풍적인 인기를 끌며 컨테이너 관리 플랫폼으로 확장하고 있었다. 하지만 구글 내부엔 10년 간 컨테이너 운영 관리에서 시행착오를 겪으며 쌓아온 노하우가 있었고, 그 노하우를 플랫폼화하고 싶었다는 게 제안자들의 소회다.
제안자들은 우르스 횔즐의 전략가 중 한명이었던 에릭 브루어를 설득해 기어이 우르스 횔즐의 승인을 얻어냈다.
쿠버네티스의 초기 프로젝트는 ‘세븐 오브 나인(Seven of Nine)’이라 불렸다. 쿠버네티스 로고가 7개 손잡이를 가진 조타기 모양인 건 초기명칭에 대한 오마주라고 한다. 쿠버네티스 제안자들은 ‘보그’와 그 후속작인 ‘오메가’에 간단하고 사용하기 쉬운 사용자인터페이스(UI)를 결합시켜 3개월만에 프로토타입을 만들어 2014년 6월 6일 오픈소스로 공개했다. 조 베다가 쿠버네티스의 첫 번째 커밋을 한 날이다.
쿠버네티스가 처음으로 대중에게 소개된 건 2014년 6월10일 열린 첫 번째 ‘도커콘(DockerCon)’에서다. 이 행사는 컨테이너 오케스트레이션 전쟁의 서막을 연 자리로 기록됐다. 아파치 메소스, 레드햇 기어디(GearD), 도커 리브스웜(Libswarm), 페이스북 터퍼웨어(Tupperware) 등과 함께 쿠버네티스가 공개됐다.
당시 컨테이너 부흥의 견인차였던 도커는 수작업으로 만들어야했던 리눅스 컨테이너를 간단히 생성하는 도구로 인기를 얻었다. 하지만, 수많은 컨테이너를 효율적으로 운영하는 방법은 제공하지 못했다. 도커스웜은 조금씩 운영 컨테이너 규모를 늘려가기 시작한 실제 사용자들의 요구가 본격화된 뒤부터 만들어졌다. 컨테이너 오케스트레이션에 대한 사용자 요구가 막 분출되면서 많은 관련 기술기업에서 운영 플랫폼에 도전장을 냈다.
쿠버네티스는 공개 당시부터 주목받을 수밖에 없었다. 당시 컨테이너를 구글만큼 대규모로 활용하는 사용자는 없었다. 백개, 천개를 대규모라 지칭하던 시기였다. 구글이 수십 수백만개 컨테이너를 지휘하는 기술을 10년 넘게 숨겨오다 공개했는데 업계에 충격을 준 게 당연하다.
쿠버네티스는 첫 공개 후 1년도 안된 2015년 7월 1.0 버전에 도달했다. 그리고 구글은 2016년 리눅스재단과 손잡고 ‘클라우드네이티브컴퓨팅재단(CNCF)’을 설립해 쿠버네티스 프로젝트 운영을 맡겼다. CNCF 설립은 쿠버네티스 커뮤니티의 폭발적 성장을 이끄는 핵심 역할을 했다.
도커는 컨테이너 생성에 활용되는 도구에 머물렀고, 오늘날 컨테이너 포맷으로 자리잡았다. 도커스웜, 메소스 같은 오케스트레이션 프로젝트는 틈새시장에 머물렀다. 쿠버네티스가 더 빠르게 대중화된 건 2017년 구글클라우드 외에 마이크로소프트 애저와 아마존웹서비스(AWS)에서 매니지드형 쿠버네티스 서비스를 내놓으면서다.
마이크로소프트는 쿠버네티스 개발자 중 한 명인 브렌던 번스를 고용하고 관련 기업을 인수하며 적극적으로 움직였다. ‘마이크로소프트 애저 쿠버네티스 서비스(AKS)’가 출시됐다. 나중엔 윈도우 서버와 애저 용도로 개발 중이던 하이퍼V 컨테이너 플랫폼을 폐기해버렸다. AWS는 2017년 중순 CNCF에 가입한 후 그해 겨울 ‘아마존 엘라스틱쿠버네티스서비스(EKS)’를 공개했다.(AWS 도커 컨테이너 서비스는 세상에 나오지 않았다.)
기업용 리눅스의 거두 레드햇도 발빠르게 움직였다. 쿠버네티스 공개 시점부터 적극적으로 참여한 레드햇은 CNCF 설립에 주도적 역할을 했고, 오픈시프트 플랫폼을 쿠버네티스 기반으로 새로 짰다.
컨테이너 운영 플랫폼의 표준, 그리고
2018년 쿠버네티스는 컴퓨팅 시장 주류로 자리잡기 시작했다. 역사상 가장 빠르게 성장한 오픈소스 프로젝트의 타이틀을 이미 차지한 상태에서 파일럿을 넘어 프로덕션 세계로 나아가는 사례가 속속 등장했다. 2022년 CNCF 보고서에서 조사대상 조직의 96%가 쿠버네티스를 사용중이거나 테스트 중인 것으로 나타났다. 쿠버네티스는 전세계의 컨테이너 운영 기술의 표준으로 등극했다.
쿠버네티스는 단순히 컨테이너 운영을 자동화하는 인프라 레벨의 기술에 머무르지 않는다. 쿠버네티스를 중심으로 클라우드 네이티브 개발이란 흐름이 본격적으로 자리잡았다. 지속적통합/지속적전달(CI/CD), 데브옵스, 깃옵스 등의 패러다임은 쿠버네티스를 통해 현실화될 수 있었다.
쿠버네티스는 애플리케이션 이동성, 휴대성의 장점을 더 높이는데 기여했다. 리눅스 컨테이너가 이미 이동성의 장점을 보여줬는데, 쿠버네티스를 통해 어디로 컨테이너를 옮겨도 빠르게 운영되고 확장될 수 있게 됐다. 이는 가상머신(VM) 시대에 나타났던 클라우드 서비스 종속성을 붕괴시켰다. 사용자는 이후로 하이브리드 클라우드, 멀티 클라우드의 형태로 더 많은 자유를 누리고 있다.
2024년 말 현재 쿠버네티스는 생성형 인공지능(AI)이란 새 트렌드를 수용해야 하는 도전에 나서고 있다. 복잡하고 거대해진 생태계에서 간소화와 가시성을 높여야 하는 과제도 여전히 진행형이다.
오픈텔레메트리를 중심으로 쿠버네티스와 인프라 보안과 가시성 문제가 포괄적으로 다뤄지면서 빠르게 개선되고 있다. 수많은 대형언어모델(LLM)이 컨테이너 기반으로 작동하는 상황에서 LLM 인프라 플랫폼으로서 쿠버네티스의 개선작업도 이미 시작됐다. 서버리스 컴퓨팅과 통합도 쿠버네티스에서 주요 과제로 거론된다. 쿠버네티스 클러스터 위에서 서비스형 펑션(FaaS)을 빌드하고 배포할 수 있는 프로젝트가 ′쿠브레스(Kubeless)’와 ′피션(FissioN)’이란 이름으로 진행 중이다.
쿠버네티스의 질주가 멈출 기미는 보이지 않는다. 오픈소스란 모델의 눈부신 업적은 이제 리눅스에서 쿠버네티스로 넘어가는 분위기다.
크레이그 맥러키는 쿠버네티스를 오픈소스로 공개한 것에 대해 이렇게 말했다.
“오픈소스화는 프로젝트에 많은 이점을 가져다 줬습니다. 피드백 루프는 즉각적이었습니다. 문제가 있거나 제대로 작동하지 않는 것을 즉시 알 수 있었습니다. 가장 중요한 건 많은 훌륭한 엔지니어와 협력할 수 있었다는 겁니다. 그 엔지니어 다수는 컨테이너 배포에서 이익을 얻는 비즈니스의 요구사항을 실제로 이해했습니다. 이는 선순환이었습니다. 재능 있는 엔지니어의 작업으로 프로젝트에 대한 관심이 커졌고, 이는 개선과 사용률을 더욱 높였습니다.”
<관련기사> 쿠버네티스 10주년, 올해의 졸업 프로젝트 모아보기
글. 바이라인네트워크
<김우용 기자>yong2@byline.network