클라우드
☁️ Docker와 Kubernetes 완전 정복!
Mostlove
2025. 5. 13. 17:08
728x90
반응형
🔹 1. Docker & Kubernetes 개요
구분 | 설명 |
Docker | 컨테이너 기반 가상화 플랫폼 (OS, 라이브러리, 앱을 이미지로 패키징 후 실행) |
Kubernetes(K8s) | Docker 등 컨테이너 오케스트레이션* 도구 (클러스터 관리, 스케줄링 등 자동화) |
* 오케스트레이션: 여러 컨테이너를 자동으로 배포, 확장, 관리하는 기능 |
🔹 2. 클라우드 환경 구성 흐름
[물리 장비(L1)]
→ [가상 인프라(OpenStack 등, L2)]
→ [OS 설치(Ubuntu, CentOS 등, L3)]
→ [Docker 설치 및 이미지 실행(L4)]
→ [Kubernetes로 컨테이너 관리(L5)]
→ [Docker Cloud or Helm(L6)]
→ [클러스터 구성(L7)]
- Private Cloud: OpenStack + Docker/K8s (삼성전자 등 내부 시스템)
- Public Cloud: AWS, GCP, Azure 등
🔹 3. Docker 특징 요약
- VM과 비교
- VM: 전체 OS 가상화 → 무거움
- Docker: OS 없이 앱만 컨테이너로 실행 → 가벼움 ⚡
- 컨테이너 = 프로세스 단위로 격리 실행
- 리눅스 커널 공유(cgroup, namespace) 기반
- MicroService Architecture 방식 → 유지보수, 확장성에 유리
- 이미지 재사용, 버전 관리, 배포 용이
🔹 4. CI/CD 연계 개념
- CI(지속적 통합): 코드 변경 사항을 자동 빌드 & 테스트
- CD(지속적 배포/전달): 테스트된 코드 → 프로덕션 자동 릴리스
- 파이프라인 도구: Jenkins, GitLab CI, CircleCI, ArgoCD 등
✅ CI/CD = 통합 지옥(integration hell)을 해결해주는 자동화 DevOps 시스템
🔹 5. Kubernetes 핵심 기능
- Pods: 컨테이너 실행 단위
- Deployment: 버전 관리 및 롤링 업데이트
- Service: 컨테이너 접근을 위한 추상화
- Ingress: 외부 접근 관리
- Auto-scaling, Resource Limit 설정 가능
기업은 K8s를 통해 수십~수백 대의 노드를 자동 제어하고 비용 절감 효과를 본다 💡
🔹 6. 실습 환경 구성 예시
# 설치 전 작업
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release
# Docker GPG 키 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Docker 저장소 등록
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 설치
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
Docker는 Ubuntu 18 이상, K8s는 Ansible로 관리하면 편리!
🔹 7. Docker 명령어 요약 🧠
명령어 | 기능 |
docker run | 이미지 실행 및 컨테이너 생성 |
docker ps | 실행 중 컨테이너 목록 |
docker exec -it [name] bash | 컨테이너 내부 접속 |
docker stop/start | 컨테이너 중지/재시작 |
docker rm/rmi | 컨테이너/이미지 삭제 |
docker commit | 현재 컨테이너 → 새 이미지 저장 |
docker pull | DockerHub에서 이미지 가져오기 |
🔹 8. 실무 활용 팁
- 컨테이너는 저장 기능이 없으므로 외부 스토리지 연결 필수!
- 커스텀 이미지 생성 시
- docker commit (수동)
- Dockerfile 작성 후 docker build (자동화, 기업용 추천)
🔹 9. Kubernetes Ecosystem
K8s도 Hadoop처럼 생태계가 있음!
- Helm: 패키지 매니저
- Prometheus / Grafana: 모니터링, 시각화
- fluentd, Elastic, Kibana, Jenkins: 로그 및 DevOps 도구
🔹 10. 결론
컨테이너 기술은 단순 실행을 넘어서 개발→배포→운영 전체를 자동화하는 현대 소프트웨어 개발의 핵심이다!
도커와 쿠버네티스를 배우면 클라우드 개발부터 DevOps, AI, IoT, 블록체인까지 거의 모든 최신 기술의 기반을 이해하게 된다.
반응형