Kubernetes
[Kubernetes] 가상머신 & 컨테이너
흐느적끄덕끄덕
2024. 11. 22. 14:51
Kubernetes
Kubernetes가 필요한 이유
거대한 모놀리스 애플리케이션을 작은 마이크로 서비스로 세분화함과 동시에 해당 애플리케이션을 실행하는 인프라의 변경으로 인한 것
모놀리스 애플리케이션-> 마이크로서비스
- 모놀리스 애플리케이션은 모든 것이 서로 강하게 결합돼 있고, 전체가 하나의 운영체제 프로세스로 실행되기 때문에 하나의 개체로 개발, 배포, 관리 되어야 합니다.
출처 : 6mini.log
마이크로서비스 애플리케이션
- 마이크로서비스 확장은 서비스별로 수행되므로 리소스가 더 필요한 서비스만 별도로 확장할 수 있으며 다른 서비스는 그대로 유지해도 됩니다.
출처 : 6mini.log
컨테이너
동일한 호스트 시스템에서 여러 개의 서비스를 실행할 수 있으며 동시에 서로 다른 환경을 만들어줄 뿐만 아니라 가상머신과 유사하게 서로 격리하지만 오버헤드가 훨씬 적다.
컨테이너에서 실행되는 프로세스는 다른 모든 프로세스와 마찬가지로 호스트 운영체제 내에서 실행
가상머신 vs 컨테이너
출처 : suyeonme - tistory
- 가상머신
- 가상머신 아래에는 물리적 하드웨어 리소스를 각 가상머신 내부의 운영체제에서 사용 가능한 더 작은 리소스로 나누는 호스트OS와 하이퍼바이저가 있다.
- 가상머신 내에서 실행되는 애플리케이션이 가상머신의 게스트OS 커널에 대한 시스템 콜을 수행하면, 커널은 하이퍼바이저로 호스트의 물리적CPU에서 x86 명령을 수행한다.
- 컨테이너
- 호스트 OS에서 실행되는 동일한 커널에서 시스템 콜을 수행한다.
- 이 커널은 호스트의 CPU에서 x86 명령을 수행하는 유일한 커널이며 CPU는 가상 머신과 같은 방식으로 별도의 가상화가 필요 없다.