티스토리 뷰

Cloud

Docker

딩가딩가 코딩 2024. 8. 10. 17:39

 

Q) Docker와 Kubernetes를 왜 사용해야 할까요?

A) Docker은 컨테이너 기술을 기반으로 한 일종의 가상화 플랫폼이고, Kubernetes는 컨테이너 런타임을 통해 컨테이너를 오케스트레이션하는 도구입니다

 

 

먼저,

Containter, Docker, Kubernetes란 무엇일까요?

 

Container이란 

실행되고 있는 호스트 OS의 기능을 그대로 사용하면서 프로세스를 격리해 독립된 환경을 만드는 기술을 의미한다

컨테이너에는 라이브버리, 시스템 도구, 코드, 런타임 등 SW를 실행하는데 필요한 모든 것이 포함되어 있다

 

컨테이너는 앱이 구동되는 환경까지 감싸서 어디서든 쉽게 실행할 수 있도록 하는 격리 기술이다

컨테이너를 다루는 도구가 컨테이너 런타임이고 컨테이너 런타임 중 가장 유명한 도구가 바로 Docker이다

 

 

출처 - https://velog.io/@markany/%EB%8F%84%EC%BB%A4%EC%97%90-%EB%8C%80%ED%95%9C-%EC%96%B4%EB%96%A4-%EA%B2%83-1.-%EB%8F%84%EC%BB%A4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

Docker란

컨테이너 기술을 기반으로 한 일종의 가상화 플랫폼이다

 

여기서 가상화란 물리적 자원인 하드웨어를 효율적으로 활용하기 위해서 하드웨어 공간 위에 가상의 머신을 만드는 기술

즉, 독립된 환경을 만들어서 하드웨어를 효율적으로 활용하는 기술을 의미한다

HyperVisor이 가상머신으로 컴퓨터가 가지고 있는 인프라 리소스들에 대해 가상머신 별로 배분하는 역할을 하고 독립적인 Guest OS를 가지고 있다

 

도커를 왜 사용할까?

1. 애플리케이션 독립성을 가진다. 호스트 OS, 다른 컨테이너와도 독립된 공간을 보장받아 충돌이 발생하지 않는다.

2. 컨테이너 내부에 작업 후 배포하려 한다면 도커 이미지로 만들어서 운영서버에 전달만 하면 된다.

3. 마이크로 서비스 구조로 변화가 쉽다. 컨테이너 하나당 하나의 기능을 제공하는 모듈로 만드는 등 조정이 가능하다.

 

Docker 이미지란?

컨테이너를 실행할 수 있는 실행파일, 설정 값들을 가지고 있는 것

더 이상 의존성 파일을 컴파일하거나 이것저것 설치할 필요가 없는 상태의 파일을 의미한다

이미지를 컨테이너에 담고 실행시키면 해당 프로세스 동작한다

 

Kubernetes란

쿠버네티스란 컨테이너 런타임을 통해 컨테이너를 오케스트레이션하는 도구를 말한다

여기서 오케스트레이션이란 여러 서버에 걸친 컨테이너 및 사용하는 환경 설정을 관리하는 행위를 뜻한다

쿠버네티스가 해 주는 일은 여러 서버(노드)에 컨테이너를 분산해서 배치하거나, 문제가 생긴 컨테이너를 교체하거나,

컨테이너가 사용할 비밀번호나 환경 설정을 관리하고 주입해 주는 일이다

컨테이너를 다루기 위해 도커 이외에도 다양한 컨테이너 런타임 소프트웨어를 사용할 수 있다.

 

 

쿠버네티스 왜 사용할까?

1. 컨테이너화된 애플리케이션 배포 컨테이너로 패키징된 애플리케이션을 여러 대의 컴퓨터 또는 클라우드 인프라에 쉽게 배포할 수 있다. 
2. 자동 스케일링(auto scaling) 애플리케이션의 부하에 따라 자동으로 서버를 늘리거나 줄일 수 있어 트래픽 증가에 대처하기 용이하다. 
3. 고가용성(high availability) 애플리케이션을 여러 서버에 복제하여 하나의 서버에 장애가 발생해도 시스템이 계속 동작할 수 있게 한다. 
4. 자동 복구(self-healing) 애플리케이션의 문제 또는 장애가 발생하면 자동으로 복구하거나 롤백할 수 있어 시스템 신뢰성을 높인다. 
5. 선언적 구성(declarative model) yaml 또는 JSON 파일을 사용하여 애플리케이션이 원하는 상태를 정의하고 그 상태를 유지할 수 있다.

 

 

 

 

 

 

https://squirmm.tistory.com/entry/Docker-%EB%8F%84%EC%BB%A4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

https://www.samsungsds.com/kr/insights/220222_kubernetes1.html

https://blog.goorm.io/kdt_kubernetes/

https://squirmm.tistory.com/entry/Docker-%EB%8F%84%EC%BB%A4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80