ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클라우드 A to Z | 컨테이너 오케스트레이션
    기술이야기/전문가 기술기고 2021. 8. 25. 09:48

     

    컨테이너 오케스트레이션이란?

    컨테이너 오케스트레이션은 복잡한 컨테이너 환경에서 소수의 인원으로 많은 서버와 컨테이너를 효과적으로 관리하기 위해 등장한 개념입니다. 쉽게 말해 컨테이너가 대규모로 운영될 때 생기는 스케줄링 문제나 관리 등을 지원해주는 도구인데요. 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화하여 수동 프로세스가 거의 필요하지 않습니다. 또한 컨테이너를 사용하는 모든 환경에 적용이 가능하며, 동일한 애플리케이션을 부가적인 재설계 없이 각기 다른 환경에 배포할 수 있으므로, 워크로드의 로드 밸런싱(부하 분산)이 용이해집니다.

     

    오케스트레이션 시스템은 프로비저닝 및 배포를 비롯하여 인프라 전반의 컨테이너들의 상태를 모니터링하고 스케일링합니다. 그 밖에도 스케줄링, 리소스 할당 등 단순히 컨테이너의 배포만이 아니라, 애플리케이션을 관리하기 위한 기능들을 포함합니다.

     

    왜 오케스트레이션이 등장했을까요? 그 배경을 함께 살펴보겠습니다.

     

     

    VM(Virtual Machine)

    VM이란, 물리적인 서버에 구축되어 자체의 리소스를 지니고 작동하는 가상 환경을 의미합니다. 가상화 기술을 사용하면 소수의 컴퓨팅 자원으로 하드웨어의 리소스에 관계없이 여러 서비스를 동시에 운영할 수 있어 VM이 주목을 받게 되었습니다.

     

    인프라 담당자는 더 이상 물리적 리소스의 추가 구매 및 서버가 위치할 추가 공간을 마련할 필요 없이 단순히 물리 서버에 수많은 가상 서버를 배치함으로써, 하드웨어 활용률을 개선함과 동시에 유연한 컴퓨팅 환경을 구축할 수 있습니다.

     

     

    구조적으로 VM은 애플리케이션과 게스트OS 및 하이퍼바이저와 같은 소프트웨어를 포함합니다.

    (* 하이퍼바이저 : 호스트OS에서 다수의 게스트 OS를 실행할 수 있게 하는 플랫폼)

    가상화를 통해 애플리케이션이 구동되는 서버의 종류와 관계없이 VM에 담겨 움직일 수 있게 되어 하드웨어와 애플리케이션 간의 의존성이 제거되었습니다. 하지만 애플리케이션마다 게스트OS가 필요하므로 오버헤드가 발생한다는 단점이 있습니다.

     

     

    컨테이너(Container)

    컨테이너란 호스트OS 상에 마치 현실 세계의 컨테이너처럼 애플리케이션을 동작시키기 위한 구성 요소들을 한곳에 모아 논리적으로 격리된 공간을 만든 것입니다.

     

    VM과 달리 컨테이너는 하이퍼바이저와 같은 별도의 소프트웨어와 게스트OS를 필요로 하지 않습니다. 오직 호스트OS만을 필요로 하고, 커널을 공유하여 애플리케이션 단위로 추상화합니다. 따라서 VM보다 부팅 속도가 빠르고, 단일 서버에서 컨테이너들이 서로 간의 독립성을 유지한 채 실행됩니다.

    도커 컨테이너

    도커 엔진을 사용하면서 애플리케이션의 배포가 호스트OS에 구애받지 않게 됩니다. 이로 인해, OSVM환경에 대한 애플리케이션의 의존성이 제거되면서 운영의 표준화가 가능해졌습니다.

     

     

    이제 사용자는 단 몇 초 만에 서버의 규모를 확장 또는 축소시키는게 가능해졌습니다. 또한 애플리케이션을 컨테이너 이미지로 패키징하여 어디서든 쉽게 배치하고 재사용할 수 있게 되었습니다.

     

     

    쿠버네티스(Kubernetes)

    컨테이너 오케스트레이션 툴은 컨테이너와 MSA(마이크로서비스아키텍처)를 규모에 따라 관리할 프레임워크를 제공합니다. 컨테이너 오케스트레이션 툴의 종류는 여러 가지가 있지만, 이 글에서는 가장 대표적인 쿠버네티스에 대해 살펴보겠습니다.

     

    버네티스란 컨테이너화 된 애플리케이션을 자동으로 배포, 스케일링 해주는 컨테이너 오케스트레이션 시스템입니다. 컨테이너 기술이 보편화되면서 도커 컨테이너 기반의 소프트웨어들이 증가하였습니다. 배포 서버를 결정하는 업무부터, 죽은 컨테이너를 다시 올리는 업무까지 수동으로 처리하기엔 너무나 늘어나 버린 컨테이너의 수에 작업 자동화의 필요성이 대두되었습니다.

     

    쿠버네티스는 클러스터(여러 대의 서버를 하나의 시스템으로 군집화)를 구성하여 서버의 수와 관계없이 클러스터 내 모든 컨테이너를 한 번의 명령으로 자동으로 배포할 수 있습니다. 또한 클러스터 내 특정 서버에 장애가 발생하면 해당 서버 내에 있는 컨테이너들을 정상적으로 운영 되는 서버에 올려 실행합니다. 따라서 사용자는 지속적인 운영에 신경 쓰지 않고, 장애가 발생한 서버에 보다 역량을 집중할 수 있습니다.

     

     

    컨테이너 오케스트레이션 모니터링

     

    컨테이너 오케스트레이션이 정상적으로 이루어져 고객에게 원활한 서비스를 제공하고 있는지 확인하기 위해서는 모니터링 시스템이 필요합니다. CloudMOA(클라우드모아)는 쿠버네티스에 의해 이루어지고 있는 오케스트레이션을 추적하기 위해 3D 토폴로지, 워크로드 오버뷰, 서비스 디테일 등 다양한 뷰를 제공하고 있습니다. 현재 애플리케이션의 상태는 물론이고, 호스팅된 서버를 한눈에 알 수 있어 장애 발생 시 담당자가 신속하게 파악하고 대응할 수 있도록 도와줍니다.

     

     

     

     

     

     

     

     

     

    댓글 0

© Copyright 2001 ~ 2021 EXEM CO., LTD. All Rights Reserved