기업들의 클라우드 서비스 도입과 활용이 증가하면서 클라우드 현대화, 즉 클라우드 네이티브 환경이 자연스럽게 등장하고 있다. 과거의 클라우드가 IaaS(Infrastructure as a Service)와 같은 서버와 스토리지 등을 서비스 형태로 사용하는 것에 초점을 맞추고 있었다면, 현대화된 클라우드는 클라우드 환경에서 기업의 각종 주요 비즈니스 프로세스와 애플리케이션을 운용하는 것을 의미한다. 그리고 이를 위해서는 클라우드 환경을 위해 만들어진 클라우드 네이티브 애플리케이션이 필요하다.
클라우드 네이티브 애플리케이션은 이전의 모놀리식 아키텍처 방식의 애플리케이션을 그대로 클라우드로 이전해 왔던 이전과는 다른 방식을 사용한다. 모놀로식 애플리케이션은 하나의 애플리케이션 안에 모든 기능을 포함하고 있다는 점에 장점이자 단점으로 지적된다. 예를 들면 잘 만들어진 모놀로식 앱은 간결하고 효율적이다. 하나의 앱 안에서 모든 프로세스가 다 이뤄지기 때문에, 최대한 효율적이고 간결하게 만들 수 있는 것이다. 다만 현재와 같이 애플리케이션의 복잡성이 증가할 경우에는 처음부터 코딩, 빌드, 배포 등 업그레이드, 유지와 관리가 어려워진다는 단점이 있다.

데브옵스와 애자일 방법론에 적합한 ‘컨테이너’
클라우드 네이티브 앱은 이런 문제 때문에 대부분 MSA(Micro-Service Architecture) 형태로 만들어진다. 이는 서로 긴밀하게 동작하는 작은 서비스를 모아 하나의 앱처럼 동작하게 하는 것이다. 예를 들어 하나의 앱에서 다양한 요소를 보여주고 각각의 기능을 제공해야 한다면, 이런 세부 요소들을 모두 마이크로서비스로 구성하고 이를 모아서 사용자는 마치 하나의 앱처럼 활용할 수 있게 만드는 것이다.
이렇게 기능을 서로 다른 마이크로서비스로 분리하면 각각의 마이크로서비스를 독립적으로 배치, 업데이트할 수 있기에, 전체 앱에 영향을 주지 않고 업데이트나 관리, 배포가 가능해진다. 특히 하나의 마이크로서비스가 개별적으로 동작함으로써 전체 서비스에 대한 영향이 제한적이기 서비스의 개발과정에서부터 기존과는 다른 방식을 취한다. 예를 들면 모놀로식 앱이 전체 아키텍처를 만들고 차근차근 단계를 밟아 나가면서 애플리케이션을 만드는 방식이라면, 마이크로서비스 앱은 전체적인 구조를 설계하고 각각의 마이크로서비스를 개별적인 팀에서 제작하는 방식으로 이뤄지기 때문에 협업을 통한 빠른 개발, 배포가 가능하다는 장점 때문에, 데브옵스(DevOps), 그리고 애자일 방법론(Agile Methodology)에 적합한 개발 방식이다.

그리고 이런 마이크로서비스 앱을 개발하기 위한 기술이 바로 컨테이너(Container)다. 컨테이너는 ‘컨테이너’라는 그릇에 이미지화한 ‘라이브러리(lib)’, ‘바이너리(bin)’ 파일을 담고 애플리케이션을 구동하는 기술이다. 이런 컨테이너는 온프레미스는 물론이고 이기종 클라우드 사이에서 애플리케이션의 수정이 없이 자유롭게 이식과 확장이 가능하다는 장점을 갖고 있다. 이런 특징은 클라우드 네이티브 아키텍처를 구현하는데 유리하다는 점으로 인해, 최근 거의 모든 클라우드 네이티브 아키텍처가 이런 컨테이너 기반으로 운영되고 있다.
컨테이너 관리를 위한 플랫폼 ‘쿠버네티스’
그리고 컨테이너가 각광을 받으면서 컨테이너를 자동으로 배포, 배치, 스케줄링, 확장, 장애 복구 등 관리하기 위한 기술인 쿠버네티스(Kubernetes) 또한 주목을 받고 있다. 이는 쿠버네티스가 클라우드 네이티브 아키텍처를 구현할 수 있는 핵심 기술인 컨테이너 관리 플랫폼의 업계 표준으로 자리잡고 있기 때문이며, 이에 많은 기업들이 쿠버네티스 솔루션과 서비스를 선보이고 있는 상황이다.
‘K8s’라고도 불리는 쿠버네티스는 컨테이너화된 애플리케이션을 호스트 클러스터에서 실행하도록 조정하며, 온프레미스는 물론이고 퍼블릭 클라우드 서비스 환경에서 컨테이너화된 애플리케이션의 배포와 관리를 자동화한다. 컨테이너가 수천, 수만 개로 늘어나면 관리가 복잡하고, 어려워지는 것을 쿠버네티스로 통합 관리함으로써, 단순화 자동화할 수 있는 것이다.
쿠버네티스는 그리스어로 조타수를 의미하는 단어로, 원래 구글의 엔지니어들이 개발하고 설계한 플랫폼이다. 구글은 초창기 리눅스 컨테이너 기술 개발에 많은 기여를 했으며, 구글 제품이 컨테이너에서 어떻게 작동하는지 공개했다. 이는 실제로 구글의 클라우드 서비스를 구동하는 기술이기도 하다.
이후 2014년 구글이 쿠버네티스를 오픈소스로 공개함에 따라 현재와 같은 형태로 발전해 왔다. 현재 구글은 2020년 기준 구글의 주요 서비스 운용을 위한 애플리케이션을 쿠버네티스를 활용해 관리하고 있으며, 약 30억 개의 컨테이너를 운영 중이라고 알려져 있다.
컨테이너의 복잡성 관리를 위한 오픈소스는 쿠버네티스 외에도 아파치 메소스(Apache Mesos), 도커 스웜(Docker Swarm) 등이 있지만, 현재는 쿠버네티스가 컨테이너 관리의 사실상 표준으로 자리잡으면서 도커 스웜을 개발한 도커 조차 쿠버네티스를 지원하겠다고 공식 발표한 상태다.
쿠버네티스가 이렇게 컨테이너 관리의 표준으로 자리잡은 이유는 무엇보다 오픈소스 커뮤니티의 역할이 제일 컸다. 구글이 개발해 공여했음에도, 다른 오케스트레이션 툴과는 달리 구글은 커뮤니티에 간섭하지 않고 지속적으로 기여함으로써, VMware나 레드햇과 같은 대형 기업들이 참여를 이끌었고, 이들에 의한 쿠버네티스의 광범위한 채택은 빠르게 시장을 선점해 다른 컨테이너 오케스트레이션 툴의 시장 진입을 효과적으로 억제했다. 쿠버네티스의 시장 점유는 지난 2017년 약 50%에서 18년에는 58%, 그리고 2019년에는 78%를 차지하면서 컨테이너 오케스트레이션 툴 분야의 확고한 표준으로 자리잡았다.

클라우드 환경에 최적화된 애플리케이션 관리 자동화
일반적으로 쿠버네티스는 ‘컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장 가능한 오픈소스 플랫폼’이라고 정의한다.
컨테이너는 클라우드 네이티브 환경에서 애플리케이션을 포장하고 실행하기 위한 현재로서는 가장 적합한 방법이다. 하지만 프로덕션 환경에서는 애플리케이션을 실행하는 컨테이너를 관리하고 서비스가 중단되면 재기동하는 등의 관리를 자동화해야 하는데, 이를 쿠버네티스가 해 주는 것이다. 특히 분산 시스템을 탄력적으로 실행하기 위한 프레임 워크를 제공하면서, 애플리케이션의 확장과 장애 조치를 처리하고, 배포 패턴 등을 제공한다.
쿠버네티스 커뮤니티에서 제시하는 쿠버네티스의 주요 기능은 다음과 같다.
서비스 디스커버리와 로드 밸런싱
쿠버네티스는 DNS 이름을 사용하거나 자체 IP 주소를 사용해 컨테이너를 노출할 수 있다. 컨테이너에 대한 트래픽이 많으면, 쿠버네티스는 네트워크 트래픽을 로드밸런싱하고 배포해 배포가 안정적으로 이뤄질 수 있게 한다.
스토리지 오케스트레이션
쿠버네티스를 사용하면 로컬 저장소, 공용 클라우드 공급자 등과 같이 원하는 저장소 시스템을 자동으로 탑재할 수 있다.
자동화된 롤아웃과 롤백
쿠버네티스를 사용해 배포된 컨테이너의 원하는 상태를 서술할 수 있으며 현재 상태를 원하는 상태로 설정한 속도에 따라 변경할 수 있다. 예를 들어 쿠버네티스를 자동화해서 배포용 새 컨테이너를 만들고, 기존 컨테이너를 제거하고, 모든 리소스를 새 컨테이너에 적용할 수 있다.
자동화된 빈 패킹(bin packing)
컨테이너화된 작업을 실행하는데 사용할 수 있는 쿠버네티스 클러스터 노드를 제공한다. 각 컨테이너가 필요로 하는 CPU와 메모리를 쿠버네티스에게 지시한다. 쿠버네티스는 컨테이너를 노드에 맞춰 리소스를 가장 잘 사용할 수 있도록 해준다.
자동화된 복구(self-healing)
쿠버네티스는 실패한 컨테이너를 다시 시작하고, 컨테이너를 교체하며, '사용자 정의 상태 검사'에 응답하지 않는 컨테이너를 죽이고, 서비스 준비가 끝날 때까지 이 과정을 클라이언트에 보여주지 않는다.
시크릿과 구성 관리
쿠버네티스를 사용하면 암호, OAuth 토큰, SSH 키와 같은 중요 정보를 저장하고 관리할 수 있다. 컨테이너 이미지를 재구성하지 않고 스택 구성에 시크릿을 노출하지 않고도 시크릿이나 애플리케이션 구성을 배포, 업데이트할 수 있다.
기업의 IT 인프라에 민첩성 제공
쿠버네티스는 이런 기능을 이용해 여러 호스트에 걸쳐 컨테이너를 조정하고, 쿠버네티스 클러스터 관리를 자동화하고, 인프라 활용률을 높여 리소스 사용을 극대화하는 데 도움을 준다.
기업이 이런 쿠버네티스 도입으로 얻을 수 있는 가장 큰 이점은 유연한 스케일링을 포함한 자동화를 통해 민첩성을 확보할 수 있다는 것이다. 쿠버네티스는 개발자가 자동화나 애플리케이션을 담고 있는 플랫폼의 확장과 같은 부분에 신경쓰지 않고, 개발 업무에만 집중할 수 있게 해 준다. 또 컨테이너 기반으로 제공하기 때문에 컴퓨팅 리소스를 최적화할 수 있으며, 비용 절감, 개발 기간 단축, 유지보수의 편의성 확보 등이 가능하다.
쿠버네티스는 기업에게 다양한 장점을 제공하는 데, 우선 기획자 측면에서는 IT 서비스 개발과 업그레이드에 소요되는 시간을 크게 줄일 수 있으며, 시스템 리소스의 효율적인 사용, 게스트 OS에 대한 라이선스 비용과 유지보수, 관리 비용을 크게 줄일 수 있다. 또한 온프레미스나 퍼블릭, 프라이빗 클라우드 사이에서 동일한 기술과 운영방법으로 관리할 수 있으며, 자유롭게 애플리케이션을 이전할 수 있고, 오픈소스라는 장점으로 인해 특정 업체에 종속되지 않고 클라우드 서비스 사이에서 이전이 가능하다.
개발자 측면에서는 개발 환경 구축 기간을 단축할 수 있으며, 가상화에 비해 작은 시스템 리소스로 개발 환경을 구축할 수 있다. 또한 이미지를 통한 빌드나 배포의 자동화가 가능하며 개발환경과 테스트 환경, 스테이징 환경, 운영 환경에 대한 일관성을 보장해 장애 요인 파악이나 해결에 소요되는 시간을 크게 단축할 수 있다. 또한 애자일 개발 방식에 적합해 민첩한 개발이 가능하며, 서비스 정지 없이 시스템 운영이 가능해, 배포, 운영에 유리한 마이크로서비스 아키텍처를 구현할 수 있다.
운영자 측면에서는 시스템 리소스를 적게 사용하기 때문에 비용을 절감할 수 있으며, 게스트 OS가 없기 때문에 OS 부팅 없이 애플리케이션을 빠르게 실행할 수 있다. 또한 온프레미스에서부터 프라이빗, 퍼블릭 클라우드 등 어디에서라도 운영할 수 있으며 이동할 수 있다. 이외에도 구축 기간을 크게 단축할 수 있으며, 배포나 시스템 유지보수, 장애 발생시에도 무정지 작업이 가능하고 이미지 형태의 배포가 이뤄지기 때문에 환경 차이로 인한 장애가 발생하지 않는다.
그리고 마지막으로 클라우드 네티이브 운영 환경을 구현할 수 있다는 장점을 갖는다.
이런 장점으로 인해 쿠버네티스는 확대 일로를 걷고 있다. 지난 2021년 CNCF(Cloud Native Computing Foundation)가 진행한 설문에 의하면 응답 기업의 96%가 쿠버네티스를 사용 중이거나 사용을 검토 중이라는 결과가 나왔다.
다만 실제로 프로덕션 환경에서 쿠버네티스를 운영하는 기업은 60%로 도입을 시도하고 있는 기업과 실제 도입한 기업 사이에는 40%가 넘는 차이가 나는 이유는, 기업들이 쿠버네티스의 장점을 이해는 하고 있지만, 실제 도입에 대해서는 어려움을 겪고 있다는 것을 의미한다.
쿠버네티스는 많은 장점을 갖고 있음에도 불구하고 작은 크기의 컨테이너 이미지를 대량으로 배포해야 하는 CI/CD(Continuous Integration/Continuous Delivery) 등 서비스 환경을 구성해 실제 서비스를 검증하기 위한 테스트 환경 구축이 어려우며, 환경 구성, 관리와 유지보수, 운영 등을 담당할 전문 인력을 확보하는 것도 쉽지 않은 상황이다.
수많은 성공 사례에 가려져 있지만, 실패 사례 또한 심심치 않게 찾아볼 수 있다는 점 또한 쿠버네티스 도입이 그리 쉽지 않은 일이라는 점을 알려준다. 전문가들은 오픈소스 방식으로 제공되는 쿠버네티스를 직접 구현하기보다는 솔루션 방식으로 도입하는 것을 추천하는 것도 바로 이런 이유 때문이다.
주요 퍼블릭 클라우드 서비스 업체와 전문 솔루션 업체 중심
기업들의 클라우드 네이티브, 그리고 클라우드 현대화 전략을 발빠르게 전개해 나가는 가운데 이를 위한 기반이 되는 컨테이너 기술에 대한 투자가 집중되고 있는 상황이다. 특히 구독형 모델로서 유연성을 지닌 ‘서비스형 컨테이너(Container as a service)’가 각광받고 있다.
QY리서치의 조사에 따르면 지난 2020년 7억 9410만 달러에서 2027년에는 45억 6640만 달러로 연평균 28%라는 급격한 성장세를 보일 것으로 예상했다.
현재 쿠버네티스 솔루션 시장은 아마존웹서비스(AWS), 마이크로소프트 애저(Azure), 구글 등이 퍼블릭 클라우드 서비스를 제공하는 업체들이 대표적이며, 이외에 레드햇과 VMware가 유의미한 수준의 시장을 형성하고 있다.

AWS의 EKS(Elastic Kubernetes Service), 마이크로소프트의 AKS(Azure Kubernets Service)와 Arc, 그리고 구글의 GKE(Google Kubernetes Engine) 등은 각각 해당 업체의 퍼블릭 클라우드를 근간으로 기업들에게 서비스 형태로 제공함으로써 많은 고객을 확보하고 있다.
이외에 오픈소스 전문업체인 레드햇은 ‘오픈시프트(OpneShift) 솔루션을, VMware는 탄주(Tanzu) 솔루션을 선보이며, 쿠버네티스 솔루션 시장에서 영향력을 발휘하고 있다.
이런 글로벌 대형업체 외에, 국내에서도 나무기술, 쿠버릭스, 맨텍 등 많은 업체들이 쿠버네티스 솔루션 시장에 뛰어들면서 쿠버네티스 솔루션 시장 확산에 불을 붙이고 있는 상황이다.
관련기사
- 코드형 인프라로 클라우드 환경과 데브옵스 설정을 편리하게
- 관리가 편한 쿠버네티스 클러스터 통합 운영 전략
- 복잡한 쿠버네티스 구축·관리, 간편한 쪽집게 비법은?
- '클라우드 네이티브' 성장 견인하는 '마이크로 서비스 아키텍처'
- '클라우드 네이티브'의 시작은 SDDC부터
- 완전관리형 쿠버네티스 플랫폼 '퓨어스토리지 포트웍스 엔터프라이즈'
- 쿠버네티스 데이터 관리 플랫폼으로 자율운영, 클라우드 네이티브 확장 지원
- VMware Tanzu와 맨텍 아코디언으로 쿠버네티스 쉽게 구축하고 관리하기
- 오픈시프트 전용 하이브리드 클라우드 데이터 플랫폼을 구축하려면?
- 클라우드 네이티브 구현의 핵심 ‘쿠버네티스’ ②
- [MWC 2023] 레드햇-삼성전자, 차세대 5G 망 구축·운용 위한 vRAN 솔루션 발표
- [MWC 2023]레드햇-엔비디아, 멀티·하이브리드 클라우드 기반 AI·5G 솔루션 개발 협력
- [MWC 2023]5G·RAN 활용 극대화하는 '스마트 클라우드'
- 윈도우 11 작업 표시줄과 결합한 AI 검색엔진 '빙'
- “한국 기업에 애자일 프레임워크 정착시키겠다”
- AWS 리스타트, 취업과 자기계발 돕는 클라우드 무료 교육 시동
- 레드햇, 새로운 파트너 서브스크립션 프로그램으로 파트너와 고객의 성공 돕는다
- 자동화로 효율성 높고 향상된 거버넌스 구현하는 인프라옵스
- 애자일 프로젝트 성공 위한 게이팅과 거버넌스 전략, “신뢰하되 검증하라”
- 이루인포, ‘VMware 올해의 파트너 밸류 상’ 수상
- VMware, '클라우드 카오스' 넘어 '클라우드 스마트'로의 여정 돕겠다
- 기업의 미래, 데브옵스의 도전과 기회
- 아태지역 IT-비즈니스 서비스 시장 반등, 하반기 수요 증가 전망
- 컨테이너·쿠버네티스 보안, 사이버 공격·마이크로서비스 도입 증가로 폭풍 성장
- 자동화 강화된 ‘레드햇 엔터프라이즈 리눅스 9.2’...하이브리드 클라우드 운영 효율성↑
- 에쓰핀테크놀로지, ‘마이크로소프트 애저 엑스퍼트 MSP’ 자격 획득
- [기고] 비즈니스 향상시키는 요구사항 관리와 애자일
- 클라우드 네이티브 개발 환경의 보안 지킴이 ‘리포지토리 파이어월’
- 오픈소스 기반 클라우드 네이티브, 에너지 등 공공 분야 진출
- 클라우드에서의 한계를 뛰어넘는 데이터 확장 전략
- KB국민은행, VMware 탄주 랩스 지원 통해 클라우드 네이티브 환경 구축
- 쿠버네티스 도입은 급증, 보안에 대한 투자는 '제자리 걸음'
- VMware, 자바 프레임워크 '스프링' 개발자 행사 '스프링원 투어 코리아' 개최
- 하이브리드 클라우드를 통한 비용 효율적인 AI 플랫폼 전략과 사례
