컨테이너 개념
소프트웨어를 실행하기 위한 가벼운 가상화 기술
애플리케이션의 실행 환경을 표준화하고 관리하는 기술
애플리케이션과 그 애플리케이션이 실행되는 데 필요한 모든 종속성(라이브러리, 설정 파일 등)을 함께 패키징 하는 방법
주요 용어
패키징
컨테이너는 애플리케이션 코드와 그 애플리케이션이 실행되기 위한 모든 종속성을 포함한다.
따라서 동일한 컨테이너를 다향한 환경(개발, 테스트, 생산 등)에서 일관되게 실행할 수 있다.
경량화
컨테이너는 운영체제의 커널을 공유하며, 격리된 환경에서 실행된다.
이식성
컨테이너는 환경에 독립적이어서, 개발자가 컨테이너를 한 환경에서 만들고, 다른 환경(예 : 로컬 개발 환경, 클라우드 등)에서도 동일하게 실행할 수 있다.
격리
컨테이너는 서로 격리되어 실행되며, 각 컨테이너는 자신의 파일 시스템, 프로세스, 네트워크를 갖고 있다.
이로 인해 여러 컨테이너가 동일한 호스트에서 동시에 실행될 수 있다.
스냅샷
컨테이너는 특정 시점의 애플리케이션 상태를 스탭샷으로 저장할 수 있다.
이를 통해 애플리케이션의 특정 버전을 쉽게 배포하고 복구할 수 있다.
컨테이너의 장점
- 이식성 : 애플리케이션이 어디에서나 동일하게 실행될 수 있다.
- 효율성 : 자원 사용이 적고, 빠르게 시작할 수 있다.
- 격리 : 애플리케이션 간의 충돌을 방지하고, 독립적으로 실행할 수 있다.
- 자동화 : CI/CD 파이프라인에서 자동화된 배포와 테스트를 지원한다.
컨테이너 주요 플랫폼
- Docker
가장 널리 사용되는 컨테이너 플랫폼.
컨테이너 이미지의 생성, 배포, 실행을 지원한다. - PodMan
Docker와 유사한 컨테이너 도구로, 보안 측면에서 독립적으로 설계되어있다.
Docker와 호환 가능하다. - Kubernetes
컨테이너화 된 애플리케이션의 배포, 스케일링, 운영을 자동화하는 플랫폼으로 여러 컨테이너를 클러스터에서 관리하고 조정할 수 있다.
'Kubernetes' 카테고리의 다른 글
Q4 Google Cloud Technical Series 후기 (6) | 2024.12.06 |
---|---|
VirtualBOX를 통해 Ubuntu 22.04에 쿠버네티스 1.31버전 설치하기 (4) | 2024.09.27 |
쿠버네티스(Kubernetes, K8s) 컨닝페이퍼 (1) | 2024.09.06 |