클라우드

☁️ 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, 블록체인까지 거의 모든 최신 기술의 기반을 이해하게 된다.

 

반응형