본문 바로가기
DevOps

도커(Docker), 쿠버네티스(K8S), CI/CD

by unknownomad 2025. 3. 1.

Docker (도커)

  • 컨테이너화 플랫폼
  • 애플리케이션을 컨테이너라는 독립적인 환경에 패키징하여 어디서나 실행할 수 있게 해줌
  • 이미지를 기반으로 컨테이너를 생성하고, 이를 실행하여 애플리케이션을 관리
  • 환경 일관성 제공 : 개발 환경과 운영 환경을 동일하게 유지할 수 있음

주요 개념

  • Docker 이미지 : 애플리케이션, 라이브러리, 설정 등을 포함한 읽기 전용 템플릿
  • Docker 컨테이너 : 이미지를 실행한 인스턴스, 가벼운 격리 환경 제공
  • Docker Hub : 이미지를 저장하고 공유하는 공용 레지스트리

Kubernetes (쿠버네티스)

  • 컨테이너 오케스트레이션 플랫폼
  • 여러 개의 컨테이너를 자동으로 배포, 확장, 관리하는 시스템
  • 컨테이너의 자동화된 배치, 확장, 로드 밸런싱 및 자원 관리 제공
  • 클러스터 기반으로 여러 노드를 연결하여 큰 규모의 애플리케이션 관리 가능

주요 개념

  • Pod: 하나 이상의 컨테이너가 실행되는 기본 단위
  • Node: 쿠버네티스 클러스터 내의 물리적 또는 가상 서버
  • Deployment: 애플리케이션의 배포 및 업데이트를 관리하는 리소스
  • Service: 컨테이너 간의 네트워크 연결을 관리하고, 로드 밸런싱 제공

Docker vs Kubernetes

항목 Docker Kubernetes
목적 컨테이너화된 애플리케이션을 쉽게 실행하고 관리 여러 컨테이너의 배포, 확장, 관리 자동화
역할 애플리케이션의 패키징, 배포, 실행 컨테이너의 클러스터 관리 및 오케스트레이션
중점 개발 환경의 일관성 유지 및 배포 간소화 대규모 애플리케이션 관리 및 확장성 제공
단일 호스트 단일 서버에서 컨테이너를 관리 여러 서버에서 컨테이너를 자동으로 배포하고 관리
스케일링 수동으로 스케일 업/다운 자동으로 컨테이너를 스케일링하고 부하 분산

CI/CD (지속적인 통합 / 지속적인 배포)

CI (Continuous Integration, 지속적인 통합)

  • 개발자들이 변경한 코드를 주기적으로 통합하고 자동화된 테스트를 실행하여 문제를 조기에 발견하는 과정
  • 주요 목표 : 코드 품질 향상, 빠른 피드백 제공, 빌드 및 테스트 자동화
  • 대표 도구 : Jenkins, GitLab CI, CircleCI, Travis CI

CD (Continuous Deployment, 지속적인 배포)

  • 자동화된 배포 프로세스를 통해 새로운 코드 변경 사항을 프로덕션 환경에 자동으로 배포
  • 지속적인 전달 : 코드 변경 후 프로덕션 환경에 배포하기 전까지의 자동화된 모든 과정
  • 지속적인 배포 : 코드 변경 후 테스트를 마친 후 자동으로 배포까지 진행
  • 주요 목표 : 배포 속도 향상, 리스크 최소화, 빠른 피드백 제공
  • 대표 도구 : Jenkins, GitLab CI, ArgoCD, Spinnaker

Docker, Kubernetes, CI/CD의 관계

  • Docker:애플리케이션을 컨테이너화하여 환경에 구애받지 않고 실행할 수 있게 함
  • Kubernetes: 이 컨테이너들을 효율적으로 배포하고 관리하는 오케스트레이션 플랫폼
  • CI/CD: 코드 변경 사항을 자동화된 방식으로 테스트하고 배포하여 빠르고 안정적인 배포 주기를 제공
  • Docker와 Kubernetes는 CI/CD 파이프라인에서 애플리케이션을 배포하고 운영 환경을 자동으로 관리하는 데 중요한 역할
  • 세 가지를 통합하면 유연하고 확장 가능하며 효율적인 개발, 테스트, 배포 환경을 만들 수 있음

 

https://blog.sparkfabrik.com/en/gitops-and-kubernetes

  • 개발자가 코드를 작성하고 Git 저장소에 푸시
  • CI/CD 파이프라인이 실행되어 코드 빌드 및 테스트 수행
  • Docker를 사용하여 애플리케이션을 컨테이너화
  • 컨테이너 이미지를 컨테이너 레지스트리(e.g., Docker Hub, AWS ECR)에 푸시
  • Kubernetes가 컨테이너 이미지를 가져와 클러스터에 배포 및 운영

 

'DevOps' 카테고리의 다른 글

리버스 프록시, 로드 밸런서  (1) 2025.03.20
[Docker] 명령어 풀이  (0) 2024.07.30
[Docker] RUN vs COPY  (0) 2024.07.30

댓글