오늘은 ‘쿠버네티스’에 대해서 공유해 드리겠습니다.

쿠버네티스가 클라우드 환경에서 쉽고 간편하게 개발을 도와 주는 플랫폼으로 자리를 잡으면서 쿠버네티스 관련 시장도 커지고, 관심도도 많이 높아졌습니다.

그래서 오늘은 이에 대해서 간략하게 공유해 드릴까 합니다.

쿠버네티스 이해하기 1단계: 클라우드 네이티브는 무엇인가?

클라우드 핵심 기술로 손꼽히는 쿠버네티스를 알기 위해서는 우선 ‘클라우드 네이티브’라는 개념을 이해하셔야 합니다. 애플리케이션 개발 환경과 인프라 구조는 생산성과 민첩성을 높이는 방향으로 계속해서 변화해 왔습니다. 최근 가장 각광받고 있는, 아니 이제 업계 주류로 자리 잡은 트렌드는 ‘클라우드 네이티브’인데요. 세계 최대 규모의 오픈 소스 개발자 컨퍼런스를 운영하는 비영리 재단 ‘CNCF(Cloud Native Computing Foundation)는 2022년이 클라우드 네이티브가 표준이 된 원년이라고 발표하기도 했습니다. 쉽게 풀어 말하자면, 클라우드 네이티브는 ‘클라우드의 장점을 최대한 활용할 수 있도록 애플리케이션을 개발하고 또 구축하고 실행하는 방식’이죠.

클라우드와 쿠버네티스

를 대표하는 것들을 들으시면 좀 더 빠르게 이해가 가실 겁니다. 대부분 다 들어본 것들이거든요. 클라우드 네이티브 애플리케이션의 방법론은 데브옵스(DevOps), 애플리케이션 운영 구조는 마이크로서비스, 애플리케이션 운영 인프라는 컨테이너로 이야기할 수 있습니다. 지속적인 통합/배포(CI/CD)는 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 자동화 프로세스를 말합니다.

데브옵스와 MSA(마이크로서비스 아키텍처)에 대해서는 아래 블로그 글을 참조해 주세요.

 데브옵스(DevOps)의 핵심, 자동화!

 요즘 대세 MSA, 마이크로 서비스 아키텍처!

쿠버네티스 이해하기 2단계: 그렇다면 컨테이너는 뭐지?

컨테이너는 환경과 상관없이 실행을 위해 필요한 모든 요소를 포함하는 소프트웨어 패키지입니다. 컨테이너라는 분리된 공간에 애플리케이션과 운영 환경이 모두 들어있고, 그 덕에 분리된 공간마다 다른 환경을 제공할 수 있죠. 마치 하나하나가 별도의 서버인 것처럼 사용할 수 있게 만든 기술인데요.

쿠버네티스 컨네이너

Source: Kubernetes

항구의 컨테이너를 떠올려 보시면 컨테이너에 각종 수하물이 담겨 포장되어 있죠. 컨테이너 채로 어디로든 쉽게 이동시킬 수 있고 층층이 쌓을 수도 있어 적재 및 하역 작업에 소요되는 시간이 크게 줄어듭니다.

여기에서의 컨테이너도 마찬가지라고 생각하시면 됩니다. 애플리케이션을 실행하기 위한 컴퓨팅 작업을 패키징하여 이미지로 만들기 때문에 경량화되어 있고, 종속적이지 않아 이식성을 실현할 수 있고 독립적입니다. 즉, 소프트웨어를 컨테이너화시키면 인프라와 상관없이 어디서나 동일하게 실행할 수 있는 거죠.

운영 환경에 구애받지 않으니 환경을 구축하거나 테스트하는데 필요한 시간이 오래 걸리지 않습니다. 같은 기반 위에서 한꺼번에 개발된 게 아니니, 고객의 니즈에 맞춘 수정이나 교체도 훨씬 용이합니다. 프로세스 수준에서 실행되어 필요한 컴퓨팅 자원의 소비가 적고 동작과 확장(scale-out)도 빠르죠. 즉, 애플리케이션을 포장하고 실행하기에 최적의 방법이라고 할 수 있겠습니다.

한 조사에 따르면, 응답 조직의 78%가 컨테이너를 사용하고 있다고 밝혔고요. 클라우드 네이티브 기술을 정기적으로 이용하지 않는 조직조차 62%가 컨테이너를 보유하고 있다고 합니다. 그리고 컨테이너를 사용하는 조직의 절반이 쿠버네티스를 통해 컨테이너를 배포하고 관리하는 것으로 나타났습니다.

쿠버네티스

쿠버네티스 이해하기 3단계: 쿠버네티스 소개!

쿠버네티스를 한마디로 정의하자면, ‘오픈소스 컨테이너 오케스트레이션 플랫폼’입니다. 컨테이너 오케스트레이션이 컨테이너의 배포, 관리, 확장 및 네트워킹을 자동화하는 것을 의미하기 때문에 쿠버네티스란 컨테이너화된 애플리케이션의 관리를 자동화할 수 있도록 도와주는 플랫폼이죠. 구글이 십수 년 간 방대한 컨테이너를 운영한 경험을 바탕으로 공개한 오픈소스 시스템이며, 외국 웹에서는 줄여서 ‘K8s’라고 표기하기도 합니다.

쿠버네티스는 데브옵스, MSA 등과 매우 밀접한 관계에 있는데요. 이는 당연합니다. 모두 클라우드 네이티브를 가장 효과적으로 구현하기 위한 일환으로 사용되고 있기 때문이죠.  쿠버네티스를 이용하여 MSA를 관리할 때, 주요 이점은 아래와 같습니다.

  • 컨테이너 오케스트레이션 비용 절감
  • MSA를 위한 데브옵스 효율성 향상
  • 멀티 클라우드 환경에서 워크로드 배포 용이
  • 종속 가능성 없는 이식성 제고
  • 배포 자동화 및 확장성 강화
  • 클라우드 환경에서의 앱 안정성 및 가용성 강화
  • 오픈소스 생태계의 일부로서 이용하기 편리

쿠버네티스는 보유 리소스를 최대 활용하고 효율적인 워크플로우를 제공하기 때문에 자연히 비용이 절감됩니다. 또, 이전에는 수동으로 처리되었던 많은 데브옵스 프로세스를 자동화하고 소프트웨어 개발자의 작업을 단순화해줍니다. 자연히 어플리케이션의 확장성을 높여주고 유연하게 뒷받침하며 이를 통해 생산성도 커지죠. 또 쿠버네티스 환경에서 쓸 수 있으면 OS와 관계없이 이용할 수 있는데요. 즉, 쿠버네티스를 이용하면 구글에서 사용하던 컨테이너화된 애플리케이션을 AWS로 그대로 마이그레이션할 수도 있습니다.

퍼블릭 클라우드는 물론, 프라이빗 클라우드 등 다양한 유형의 인프라에서 컨테이너를 관리할 수 있고 자동으로 배포, 확장 및 축소가 가능합니다. 컨테이너화된 애플리케이션의 안정적 실행도 지원하고요. 마지막으로 가장 많은 사람들이 이용하는 오픈소스 프로젝트 중 하나이니 만큼, 지속적인 피드백과 이에 따른 개선이 뒷받침하고 있습니다.

이제 쿠버네티스는 컨테이너 배포를 위한 업계 표준이나 다를 바가 없는데요. 작년 초 발표된 CNCF의 조사에 따르면 응답 조직의 96%가 쿠버네티스를 사용하거나 평가하고 있다고 하고요. 쿠버네티스 엔지니어 수는 전 세계 560만 명으로 전체 백엔드 개발자 숫자의 30%가 넘는다고 하니 컨테이너 오케스트레이션 경쟁에서 쿠버네티스 외에 다른 대안이 거의 없는 수준입니다. 그리고 재작년보다 작년에 더 크게 성장하며, 아직도 클라우드 네이티브는 초기 단계임을 보여주고 있습니다.

클라우드 네이티브

오늘은 쿠버네티스와 함께, 쿠버네티스를 이해하기 위해서 꼭 알아야 할 개념들 위주로 설명을 드렸는데요. 쿠버네티스에 대한 기술적 측면들은 물론, 아디다스·오픈AI·IBM·화웨이 등 굴지의 기업들이 쿠버네티스를 어떻게 이용하고 있는지에 대해서는 공식 홈페이지에 잘 설명되어 있습니다. 쿠버네티스에 대해 더 자세히 알고 싶은 분들은 아래의 페이지를 참고해 주시기 바랍니다.

 쿠버네티스에 대해 더 자세히 알고 싶다면?

 

클라우드나 SaaS와 관련하여 다른 궁금한 점이 있으시면 언제든지 저희에게 문의해 주세요.

 OpsNow에 문의하기

 

본 내용은 베스픽 뉴스레터를 통해서 제공되는 내용입니다.

클라우드에 대한 최신 트렌드 정보가 필요하시면 뉴스레터를 구독해 주세요.