[Kubernetes] Kubernetes 가 필요한 이유와 도입시 얻을 수 있는 장점에 대해서

  • Kubernetes 에 대해서는 언급하지 않고, 이점에 대해서만 정리하려고 합니다.

도입 전

  • 전통적인 운영방식은 물리서버를 발급받아 어플리케이션을 발급받아 서비스 등을 운영함.
    • 서비스별로 리소스를 많이 사용하는 곳이 있고, 여유로운 곳이 있어서 밸런싱이 맞지 않은 경우도 많았음. (리소스 효율이 떨어짐)
    • API 서버와 ADMIN 서버는 사용자 수에서도 많은 차이가 있고, 대부분 Admin 리소스는 남을 것 입니다.
  • 가상화 도입. 단일 물리 서버에 여러 VM 을 동작시켜서 어플리케이션 간 격리하여 운영함.
    • 리소스를 잘 분배하여 효율화 할 수 있었음.
  • 이후 컨테이버 배포 방식이 나오게됨.

컨테이버 배포 방식에 대한 장점

  • 빠른 생성과 배포가 가능함.
    • VM 이미지를 생성하고 관리하는 것에 비해서 컨테이너 이미지 생성 등은 더 효율적이다.
  • CI&CD 를 통하여 안정적으로 빌드하고, 배포를 진행할 수 있다. 이미 이전 버전에 대해서도 빌드 해놨기 때문에 쉽게 롤백도 가능하다.
  • 어느 환경에서든 쉽게 이용할 수 있게 됨. OS 에 종속되지 않고, 클라우드 등 어떤 환경에서나 배포하여 이용할 수 있게됨.
  • 리소스를 잘 나눠 쓰고(Software 로 개별 컨테이너의 사용량을 결정), 독립된 환경을 제공하므로 느슨한 구조(이벤트 드리븐과 같은)로 시스템을 개발 및 운영할 경우 기존 대비 더 효율적으로 서버를 사용할 수 있다.

그렇다면 왜 Kubernetes 인가?

  • 컨테이너를 배포하는데 있어서 필요한 많은 기능을 제공합니다.
  • 커뮤니티에서 많은 유저들이 레퍼런스를 공유하고, 기여자도 많은 상황으로 활발하게 운영되고 있는 서비스

요약

  • 개발 및 배포를 쉽게 할 수 있게 되고,
  • 서버의 리소스를 효율적으로 이용할 수 있고,
  • 컨테이너의 상태를 판단하고 자가 치유될 수 있는 라이프사이클이 있으므로 서비스의 안정성을 얻을 수 있음.
    • 오토스케일링, probe 등 많은 장치들이 있음.

Related Posts