Overview

cluster architecture

Scheduling, Preemption, Eviction

workload

service, loadBalancing, networking

Cluster Administration

Configuration

API


역사

출처: https://kubernetes.io/ko/docs/concepts/overview/

image.png

전통 배포시대 → 애플리케이션을 물리 서버에서 실행했다. 한 물리 서버에서 여러 애플리케이션의 리소스 한계를 정의할 방법이 없었기 때문에 (1)리소스 할당의 문제가 발생했음. 여러 애플리케이션 중 특정 인스턴스가 리소스를 다 차지해버리낟면 다른 애플리케이션의 성능이 저하된다. 해결책으로 여러 물리서버를 두는 것도 (2)확장성의 문제(3)리소스 낭비의 문제가 있었다.

가상화 배포시대 → 단일 물리 서버의 CPU에서 여러 가상 시스템(VM)을 실행해 애플리케이션을 (1)격리시킬 수 있어 일정 수준의 보안성을 제공할 수 있었다.

또한 물리 서버의 리소스를 더 효율적으로 활용할 수 있고, 더 나은 확장성을 제공했음. 물리 리소스는 이제 가상머신 클러스터가 되었다. 이때 각 VM은 자체 운영체제를 포함한 모든 구성요소를 실행하는 하나의 완전한 머신이었음.

컨테이너 배포시대 → 컨테이너는 VM과 유사하지만 격리 속성을 완화해 애플리케이션간 OS를 공유한다. VM보다는 가볍지만 여전히 기존 인프라에 종속성도 없어서 어디에든지 이식가능함.

안정적이고 주기적으로 컨테이너 이미지를 빌드해서 배포 가능, 마이크로서비스에 유리함.

왜 필요한가?