
현대 애플리케이션은 유연한 확장성, 신속한 배포를 위해 Monolithic설계에서 Micro Service Architecture로 전환되고 있다. MSA는 서비스가 분리되어 있기 때문에 필요한 서비스만 확장 하거나 장애상황에서 보다 빠르게 대응할 수 있다.
MSA 설계에서 가장중요한 것이 바로 컨테이너이다.

왼쪽은 가상머신 구조 오른쪽은 컨테이너 구조이다.
가상머신은 서버 하드웨어 위에 Hypervisor가 설치되고 그 위에 Guest OS가 설치된다. 윈도우에서 VirtualBox로 Ubuntu를 구동하거나 맥에서 패러렐즈로 윈도우를 구동시킬 때 Hypervisor위에 Guest OS가 설치된다. 원래 컴퓨터에 깔려있는 OS가 Host OS, 하이퍼바이저 위에 설치한 OS가 Guest OS가 된다. Hypervisor는 가상머신의 리소스 할당량을 관리하고 다른 종류의 OS의 커널 간 통역 역할을 한다. Guest OS에서 시스템 콜을 호출하면 Hypervisor를 통해 Host OS의 시스템콜이 불리는 구조로 동작한다. 가상 머신 방식으로 MSA를 구성하려면 많은 Guest OS가 설치돼야 하고 이는 곧 성능저하로 이어진다.
오른쪽은 컨테이너 구조이다. 컨테이너는 HostOS 커널을 공유하며 라이브러리, 애플리케이션, dependency만을 가진다. Guest OS가 없기 때문에 VM 방식보다 더 빠르게 애플리케이션을 실행할 수 있다. 또한 컨테이너를 사용할 경우 어떤 환경에서도 동일하게 실행된다. 이러한 장점으로 컨테이너를 사용하는 것이 유리하다.
쿠버네티스는 이러한 컨테이너들을 자동으로 배포, 확장, 관리하는 컨테이너 오케스트레이션 플랫폼이다.쿠버네티스를 이용하면 다음과 같은 장점이 있다.
1. 안정적인 업데이트, 롤백
2. 로드밸런싱
3. 자동화된 스케일 업, 다운으로 HW리소스 최적화
4. 컨테이너에 문제가 발생한 경우 재시작 => 운영의 안정성 보장
5. 인프라 관리를 추상화하여 비즈니스 로직에 더 집중할 수 있는 환경 조성
'Kubernetes' 카테고리의 다른 글
| Kubernetes Object (0) | 2024.01.31 |
|---|---|
| Kubernetes Architecture (0) | 2024.01.31 |