여씨의 개발이야기
[입문] Docker와 K8s(Kubernetes) 본문
1. docker가 뭡니까
1-1. docker를 알기 전에 구분해야 할 것들
- dockerfile : 도커이미지를 생성하기 위한 커맨드 명령어가 적혀있음
- image : 도커파일에 의해 공개 비공개 레포지터리에 생성되며 이미지를 이용하여 컨테이너를 생성함
- container : 프로그램을 빌드 또는 실행할 때 어떤 기기에서도 똑같은 환경을 조성할 수 있게 도와주는 패키징 서비스이다. 컨테이너에는 프로그램을 실행할 때 필요한 것들이 모두 정의되어있다.
1-2. docker란
리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 기술이다. 컨테이너화란 아래 그림과 같다.
2. K8s(kubenetes)가 뭡니까
2-1. K8s란
Kubernetes, 또는 쿠버네티스, 또는 간단히 "쿠베(kube)"는 Linux 컨테이너 작업을 자동화하는 오픈소스 플랫폼을 뜻한다. 컨테이너가 개수가 많아지면 관리 및 운영이 어렵기 때문에 오케스트레이션을 하는 툴이 필요한데, 바로 이에 적절한 툴이 K8s이다. K8s는 컨테이너화된 애플리케이션을 배포하고 확장하는 데 수동 프로세스가 필요없다. 즉, Linux 컨테이너를 실행하는 호스트 그룹을 함께 클러스터링할 수 있고 쿠버네티스를 통해 이러한 클러스터를 쉽고 효율적으로 관리할 수 있다.
클러스터는 퍼블릭 클라우드, 프라이빗 클라우드 또는 하이브리드 클라우드 전체로 호스트를 확장할 수 있다. 이러한 이유로 쿠버네티스는 Apache Kafka를 통한 실시간 데이터 스트리밍과 같이 신속한 확장을 요하는 클라우드 네이티브 애플리케이션을 호스팅하는 데 이상적인 플랫폼이다.
3. 그래서 K8s와 Docker의 차이가 뭔가요?
3-1. K8s vs Docker
간단하게 설명하자면, Docker는 컨테이너화를 시켜주는 도구이자 곧 이 자체로 개념이 되며, K8s는 도커를 종합적으로 관리하는 툴이라고 보면 될 것이다. 이미지를 컨테이너에 올리고 구동까지 하는 기술 자체를 도커라고 부르며 이를 이용해 관리까지 하는 툴 또는 서비스를 K8s라고 할 수 있을 것이다.
참고로 Docker는 하나의 컨테이너를 실행 및 관리, K8s는 여러개의 컨테이너를 실행 및 관리하는데 용이하다고 볼 수 있다.
'☁ Cloud > 🐳 Docker&K8s' 카테고리의 다른 글
[입문] DevOps란? (0) | 2022.01.06 |
---|---|
[입문] Monolithic Architecture vs Microservice Architecture (0) | 2022.01.06 |