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 파이프라인에서 애플리케이션을 배포하고 운영 환경을 자동으로 관리하는 데 중요한 역할
- 세 가지를 통합하면 유연하고 확장 가능하며 효율적인 개발, 테스트, 배포 환경을 만들 수 있음
- 개발자가 코드를 작성하고 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 |
댓글