우노
[Kubernetes] 쿠버네티스를 사용해야하는 이유 본문
들어가기 앞서,
- 해당 포스트는 인프런의 ‘대세는 쿠버네티스 [초급~중급]’ 강의를 기반으로 작성되었으며,
- [기초편] 기초 다지기 - ‘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 라는 오브젝트를 통해, 업데이트 방식을 자동적으로 처리하도록 지원하고 있습니다.
결론
- 쿠버네티스를 사용하면 운영 환경이 더욱 더 편리해지고, 서비스 효율이 증가하게 됩니다.
- 따라서, 운영의 규모가 커질수록 쿠버네티스의 효과가 더욱 더 커지게 됩니다.
- 따라서, 다양한 기업들이 관심을 가질 수 밖에 없습니다.
참고
'DevOps > Kubernetes' 카테고리의 다른 글
[Kubernetes] 간단한 일반 서버, 도커, 쿠버네티스 비교 실습 (0) | 2022.02.16 |
---|---|
[Kubernetes] VM 과 Container 의 차이 (0) | 2022.02.16 |
[Kubernetes] CKA (Certified Kubernetes Administrator) 자격증이란? (5) | 2022.02.14 |
[Kubernetes] 쿠버네티스 기본 개념 (8) | 2020.09.18 |
[Kubernetes] 도커와 쿠버네티스 간단 비교 (19) | 2020.09.09 |
Comments