오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-02 05:05
관리 메뉴

우노

[Kubernetes] 쿠버네티스를 사용해야하는 이유 본문

DevOps/Kubernetes

[Kubernetes] 쿠버네티스를 사용해야하는 이유

운호(Noah) 2022. 2. 16. 14:45

들어가기 앞서,

  • 해당 포스트는 인프런의 ‘대세는 쿠버네티스 [초급~중급]’ 강의를 기반으로 작성되었으며,
  • [기초편] 기초 다지기 - ‘Why Kubernetes?’ 에 해당하는 내용입니다.

서비스에 따른 서버 자원

  • 우리는, 어떤 서비스든 원활하게 유지하기 위해선,
  • 충분한 서버 자원들이 뒷받침 되어야 한다는것을 너무나 잘 알고 있습니다.
  • 하지만, 기업 입장에선, 트래픽의 양을 예측하기 어려울 뿐더러,
  • 엄청 많은 자원들을 준비해놓기에는 비용적인 측면에서 쉽지 않습니다.
  • 또한, 한 서비스가 아닌 여러 서비스를 운영한다면, 상황은 더더욱 어려워집니다.
  • 따라서, 아래 예제를 통해, 쿠버네티스가 서비스 운영에서 어떠한 이점을 제공하는지에 대해 다뤄보겠습니다.

쿠버네티스 사용 이점

  • 예를 들어, 한 회사는 아래 그림과 같이 3개의 서비스(A, B, C)를 오픈하고 있습니다.

    • 이른 아침에, A 서비스의 트래픽을 처리하기 위해선 3대의 서버가 필요하고
    • 점심에, B 서비스의 트래픽을 처리하기 위해선 3대의 서버가 필요하고
    • 저녁에, C 서비스의 트래픽을 처리하기 위해선 3대의 서버가 필요합니다.
    • 즉, 각각의 서비스는 시간대별로 트래픽의 양이 다르기 때문에, 해당 회사는 총 9대의 서버를 상시 구동시키고 있습니다.
  • 이러한, 상황에서 쿠버네티스의 가상화 기술을 사용해봅시다.

    • 하루동안 A, B, C 서비스 전체 트래픽양의 평균 계산했을 때, 4대의 서버가 필요하다면
    • 쿠버네티스는 오토 스케일링 기능을 통해, 4대의 서버만으로 A, B, C 서비스를 구동시킬 수 있습니다.
  • 또한, 기존 시스템의 경우, 서버 장애 상황에 대비해서 서비스 별로 1대의 백업 서버가 추가로 필요하므로, 총 3대의 서버가 필요합니다.

  • 하지만, 쿠버네티스가 적용된 시스템은, 장애가 난 서버의 서비스들을 여분 서버로 자동으로 옮겨주는 기능이 있기 때문에, 어떠한 서버에 장애가 나더라도, 여분의 서버 1대만 있으면 알아서 서비스를 유지시켜줍니다.

  • 그리고 이번엔 서비스의 버전 업데이트가 필요한 경우를 생각해보겠습니다.

  • 예를 들어, 기존 시스템의 경우, 두 가지 방법을 통해 서버별로 버전을 업데이트할 수 있습니다.

  • 만약, 서비스의 중단이 허용되는 경우, 모든 서버를 내린 뒤, 업데이트 작업 후에, 다시 올리게 되고

  • 무중단 서비스를 진행해야하는 경우, 한 서버씩 내렸다가 업데이트 작업 후에, 서비스를 다시 올리는 방식으로 진행됩니다.

  • 하지만, 쿠버네티스는 Deployment 라는 오브젝트를 통해, 업데이트 방식을 자동적으로 처리하도록 지원하고 있습니다.

결론

  • 쿠버네티스를 사용하면 운영 환경이 더욱 더 편리해지고, 서비스 효율이 증가하게 됩니다.
  • 따라서, 운영의 규모가 커질수록 쿠버네티스의 효과가 더욱 더 커지게 됩니다.
  • 따라서, 다양한 기업들이 관심을 가질 수 밖에 없습니다.

참고

Comments