why Kubernetes

- 운영 환경 편리, 서비스 효율 증가, 유지보수 비용 절감
VM vs Container


- 공통
- VM(Virtual Machine)
- Hypervisor ⊃ Guest OS * n 로 여러 VM을 만듦
- 각각의 OS를 띄워야하는 구조 → Container보다 느림
- VM은 Linux OS, Window OS 모두 사용 가능
- 하나의 Guest OS가 보안상 뚫려도 다른 OS나 host OS는 분리되어 안전, 피해가 가지 않음
- Container
- docker, rkt, LXC ⊃ Container
- 하나의 OS를 공유하는 구조
- A service는 자신의 Image 안에 있는 OpenJDK 라이브러리를 사용하므로 안정적으로 시스템 구동 가능
- 개발환경에 대한 걱정 없이 배포가 가능해짐
- 단, 컨테이너는 Linux OS에서 Window용 컨테이너 사용 불가
- 하나의 Container가 보안상 뚫리면 다른 Container, OS에 피해가 갈 수 있음
시스템 개발 사상적 차이점


한 서비스를 만들 때, 한가지 언어를 사용해 여러 모듈로 분리되어 돌아감
- VM의 경우 하나를 더 띄우게 되면 사용하지 않는 모듈도 같이 확장됨
- Container 별 모듈이 각각 들어감 한 Pod로 묶임. 한 pod가 하나의 배포 단위. 시스템을 모듈 별로 쪼개서 개발 시 큰 효과를 발휘할 수 있음