[TIL] 도커(Docker)와 쿠버네티스(Kubernetes)
👀Today I Learn
도커(Docker)란?
- 컨테이너를 만들고 실행하는 기술
- 컨테이너(Container): 하나의 애플리케이션과 그 실행에 필요한 모든 환경을 패키징해서 어디서든 동일하게 실행할 수 있게 해주는 기술
- Docker는 이 컨테이너를 쉽게 만들고, 배포하고, 실행할 수 있도록 도와주는 도구이자 플랫폼
- Dockerfile을 이용해서 이미지를 만들고, 그 이미지를 기반으로 컨테이너를 실행
도커의 특징
- 애플리케이션을 격리된 환경에서 실행
- 환경 구성을 코드로 정의 가능 (Dockerfile)
- 경량 가상화(가상 머신보다 빠르고 가볍다)
- 로컬 환경과 배포 환경을 일치시킬 수 있음
쿠버네티스(Kubernetes)란?
- 여러 컨테이너를 효율적으로 관리하고 운영하는 플랫폼
- 많은 컨테이너를 자동으로 배포, 스케일링, 로드밸런싱, 복구하는 데 사용하는 컨테이너 오케스트레이션 도구
- Google이 만들고 CNCF(Cloud Native Computing Foundation)에서 유지 관리하고 있음
- Docker뿐만 아니라 다양한 컨테이너 런타임(container runtime)과 함께 사용 가능
쿠버네티스의 주요 기능
- 여러 대의 서버에 컨테이너를 배포하고 관리
- 장애 발생 시 자동 복구(헬스 체크, 자동 재시작 등)
- 자동 스케일링(트래픽에 따라 컨테이너 수 조절)
- 롤링 업데이트 및 롤백
- 로드 밸런싱
요약
구분 | Docker | Kubernetes |
---|---|---|
역할 | 컨테이너 생성 및 실행 | 컨테이너 오케스트레이션(자동화된 배포/운영) |
사용 목적 | 애플리케이션 환경을 패키징하고 실행 | 다수의 컨테이너 관리, 스케일링, 복구 |
단독 실행 | 가능 | 단독으로는 컨테이너 실행 불가 (컨테이너 런타임 필요) |
주 대상 | 개발자 (개발 & 테스트) | 운영자 (배포 & 인프라 관리) |
의존 관계 | 쿠버네티스 없이 사용 가능 | 컨테이너 런타임이 필요함 (예: Docker, containerd) |
- Docker는 컨테이너를 “만들고” 실행하는 기술
- Kubernetes는 그 컨테이너를 “관리”하고 “운영”하는 기술
- 실제 운영 환경에서는 Docker로 만든 컨테이너를 Kubernetes로 배포하는 식으로 함께 사용
🎯 Today’s Goals
- 사이드 프로젝트 회의
- 도커/쿠버네티스 정리
- JavaScript 코드카타 1문제
- TIL 작성
💡Today I Thought
- 사이드 프로젝트를 시작하려고 한다. 빨리 SA문서 작성하고 개발을 하는 것을 목표로.
- 이번에는 정해진 시간이 없으니까 좀 꼼꼼히 공부하면서 진행하는 것이 좋을 것 같다.
- 그리고 자바스크립트 공부도 꾸준히..!
댓글남기기