자원 효율성·OS 호환성 등 강점 보이며 기존 인프라 한계 극복 도와

컨테이너가 클라우드 활용의 중요한 요소로 떠오르면서 컨테이너를 효율적으로 관리하는 툴에 대한 관심도 높아졌다. 불과 몇 년 전만 해도 다양한 컨테이너 관리 툴들이 존재했지만, 현재는 ‘쿠버네티스(Kubernetes)’가 사실상 컨테이너 관리 툴의 표준으로 자리매김한 상태다. 이에 주요 클라우드 기업들도 자사 제품에 쿠버네티스를 접목한 서비스를 제공하고 있는 추세다. 쿠버네티스가 무엇이고 어떤 역할을 하는지 알아본다. <편집자>

과거와 달리 시장에서 원하는 서비스를 빠르게 제공하는 것이 기업들의 덕목이 되면서 IT 환경도 급격하게 변하고 있다. 전통적인 IT 자원 대신 보다 유연하고 민첩하게 서비스를 제공할 수 있는 인프라로써 클라우드가 각광받고 있으며, 그중에서도 작고 가벼운 컨테이너의 쓰임새가 늘어나고 있다. 무엇보다 사일로(Silo) 형태로 흩어져 있는 다양한 환경들을 넘나들면서 이들을 하나로 통합해주는 솔루션으로 컨테이너가 이용되고 있기 때문이다.

하지만 IT 관리자가 수작업으로 일일이 컨테이너를 관리하기 힘들 정도로 운영되는 컨테이너가 늘어나면서 이들을 효율적으로 관리해줄 수 있는 툴에 대한 수요가 증가했고, 그로 인해 컨테이너 오케스트레이션 툴인 ‘쿠버네티스’가 인기를 끌게 됐다. 쿠버네티스는 그리스어로 ‘키잡이’ 또는 ‘조타수’를 의미하며, 그래서인지 쿠버네티스의 상징 이미지도 배의 타륜(舵輪)이다.
 

기존 IT 인프라 한계 극복

쿠버네티스를 본격적으로 논하기에 앞서 살펴봐야 하는 것은 컨테이너다. 클라우드 환경에서 컨테이너 기술이 주목받기 시작한 것은 얼마 되지 않았지만, 이미 오래 전부터 컨테이너는 리눅스 코어 모듈에 포함돼 있던 기술이었다. 그러다 도커(Docker)가 컨테이너 기술지원을 하기 시작하면서 컨테이너 활용이 빠르게 늘어났으며, 이제는 클라우드 활용에 있어 가장 필요한 기술로 여겨지고 있다.

이처럼 컨테이너가 인기를 끌게 된 원인은 기존 IT 인프라가 가진 구조적인 한계점 때문이었다.

기존 인프라가 점차 성능이 좋아진 반면, 기업들은 이를 효율적으로 이용하지는 못했다. 물론 가상화를 통해 베어메탈 대비 서버 효율을 높이는 것에는 성공했지만, 그럼에도 자원의 낭비가 발생하는 것을 원천적으로 막을 수는 없었기 때문이다.

프로젝트 수행 시 그에 필요한 환경을 준비하는 리드 타임이 길다는 문제였다. 기존에 중첩되는 것들이 있는데도 불구하고 새로운 환경을 구비해야 하거나 필요할 때 바로 사용할 수 있는 환경이 아니었기에 새로운 서비스를 빠르게 개발하고 제공하는 것은 사실상 불가능했다.

낮은 생산성과 서비스 품질도 극복해야 할 사안이었다. 이는 특히 서비스 관리를 전담하는 인력이 없거나 오래된 서비스 환경에서 찾아볼 수 있는데, 서비스를 개선하려 해도 이를 도맡아줄 인력이 없거나 버그를 비롯해 예상치 못했던 부작용들이 발생할 수 있어 엄두조차 내지 못하는 곳들도 많았다.

[컨테이너 기술 활용 시 장점 - 운영자 측면]

특징

설명

낮은 오버헤드와 빠른 시작

최소한의 CPU와 메모리만 사용해 비용 절감과 부하가 작아 고성능 제공

게스트 OS가 없기 때문에 OS 부팅 없이 애플리케이션을 실행해 빠른 시작(호스트 OS에서 프로세스로 실행)

높은 이동성

퍼블릭 클라우드(AWS, 애저, 구글 등)와 기업 내 리눅스 운영체제라면 어디서나 운영 및 이식이 용이함

구축 기간 단축

컨테이너 환경은 개발, 스테이징, 운영 환경을 단순한 복사로 구축해 작업 시간을 단축하고 일관성을 제공해 환경에 의한 문제 원인 제거

장애 대응

배포, 시스템 유지보수, 장애 발생 시 무정지 작업이 가능

컨테이너 이미지 단위로 배포하고 운영하기 때문에 장애 시 전환 시간 단축

이미지 형태의 배포로 환경 차이에 의한 장애 원인 제거

클라우드 네이티브 운영 환경 실현

스케쥴링, 컨트롤링, 자가복구, 오토 스케일링, 롤링 업데이트

 
자원 효율성·OS 호환성 등 강점

컨테이너는 하이퍼바이저 위에 가상머신(VM)을 올리는 개념과 유사하다. VM에서는 하이퍼바이저가 자원을 격리시킨 후 그 위에 운영체제(OS)를 설치하고 운영하는 방식이지만, 컨테이너는 OS 자원을 가상화시키고 격리시킨다는 점에서 차이가 있다.

OS 상에서 프로그램을 실행시키면 프로세스 단위로 올라가 메모리에서 CPU를 사용하며 운영된다. 컨테이너는 그 프로세서에 CPU, 네트워크, 메모리를 할당해주고, 다른 컨테이너들이 접근하지 못하도록 격리한다. 즉 하나의 OS에서 격리된 환경으로 독립된 OS가 운영되는 것과 같은 효과를 내기에 다른 서비스와 자원 간섭 없이 원활하게 서비스를 운영할 수 있다.

클라우드 환경이 확산되면서 컨테이너 기술에 대한 인기가 상승한 요인은 애플리케이션 이동과 배포가 수월해졌다는 점도 있지만, 이 외에도 자원 효율성, 자원 격리, 호환성, 오토스케일링(Auto-Scaling), 마이크로서비스, 관리 편의성 등이 뒷받침됐기 때문인 것으로 평가된다.

최근 베어메탈 환경은 컴퓨팅 기술의 발전으로 인해 많은 수의 CPU 코어가 제공된다. 단일 애플리케이션의 성능을 온전히 내려면 베어메탈 환경을 이용하면서 최대의 자원을 활용할 수 있도록 구성하겠지만, 실제로 이렇게 이용하는 경우는 극히 일부를 제외하면 드문 편이다. 이에 단일 장비에서 가상화 기술과 같은 자원 격리를 통해 여러 개의 WAS와 애플리케이션을 구동하는 방식이 활용된다.

그러나 그 중 하나의 애플리케이션이 잘못 구성돼 무한루프 현상을 보이며 인프라 자원을 모두 소진할 경우 다른 WAS와 애플리케이션은 제대로 동작을 하지 못하는 불상사가 일어날 수 있다. 말 그대로 장애 아닌 장애 상태를 맞이하게 되는 셈인데, 컨테이너 기술은 할당된 자원을 완벽하게 격리하기 때문에 특정 WAS와 애플리케이션에서 시스템 전체의 자원을 소비하는 문제를 막는다. 이를 통해 보다 효율적으로 인프라 자원을 활용할 수 있다.

컨테이너 기술의 또 다른 장점은 OS간 호환성이 높다는 점이다. 베어메탈을 비롯해 장비에 설치된 OS 버전이 다를 경우, 같은 벤더의 WAS를 사용한다 해도 쓸 수 있는 버전이 달라진다. 이에 필요할 때마다 WAS 구성을 해야 하는 불편함이 생긴다.

그렇다고 WAS를 사전에 설치해놓는 것은 어떨까? 확실한 사용 계획이 있는 것도 아닌데 미리 시스템을 구성한다면 효율적이지 못하며, 이로 인해 시스템 증설이 필요한 경우도 생기는 만큼 좋은 방안이라 할 수 없다.

이후 자원을 효율적으로 사용하자는 목표 하에 VM 기술들이 등장했다. 그러나 가장 큰 문제점은 각 VM 간 호환성이 떨어진다는 점이었다. 실제로 가상화 환경을 구현하기 위한 하이퍼바이저 기술은 ESXi, KVM, Xen 등 다양하게 존재하지만, 각 하이퍼바이저 간 호환성은 높지 않은 편이다.

가령 특정 벤더의 VM을 만들어 이용하다가 벤더와의 갈등이나 비싼 유지보수 비용, 기술지원 불만 등으로 인해 이탈하려 해도, 막상 시스템 자원을 옮길 비용이 새로 시스템을 구축하는 비용과 큰 차이가 없을 정도로 비싸기에 어쩔 수 없이 벤더에 종속(Lock-in)되는 경우도 많다.

이에 반해 컨테이너는 오픈 컨테이너 이니셔티브(OCI) 프로젝트가 지난 2015년부터 추진되면서 기술 표준화를 위해 움직이고 있다. 벤더마다 독점적으로 보유하고 있는 기술이 아니라 공개 산업 표준의 파일 포맷과 이를 구동시키는 런타임 표준에 대한 작업이 이뤄지고 있는 것이다. 이로 인해 cri-o로 불리는 경량의 OCI 호환 컨테이너 런타임이 개발되기도 했다.

[컨테이너 기술 활용 시 장점 - 개발자 측면]

특징

설명

효율적인 개발 환경 구축

개발 환경 구축 기간 단축 / OS 가상화로 격리된 테스트 환경 구축

기존 가상화 대비 작은 시스템 리소스로 개발 환경 구축

배포 편의성

이미지를 통한 빌드, 배포 자동화

개발자/테스트/스테이징/운영 환경에 대한 일관성 보장으로 장애 요인 제거 및 장애 원인 파악 시간 단축

민첩한 개발

컨테이너를 통한 짧은 주기로 요구사항 정의와 릴리즈를 반복하는 애자일 개발 지원

서비스 무정지 환경 제공

서비스 정지 없이 시스템 운영이 가능해 배포시간과 횟수에 대한 제약이 없음

마이크로서비스 아키텍처

마이크로서비스는 컨테이너로 구성하고 배포, 운영하는 것이 유리

데브옵스 기반

컨테이너는 데브옵스 빌드/테스트/배포 파이프라인을 간소화

 
저작권자 © 테크데일리(TechDaily) 무단전재 및 재배포 금지