본문 바로가기
Kubernetes

컨테이너 컨닝페이퍼

by 포잉띠 2024. 9. 6.

컨테이너 개념

소프트웨어를 실행하기 위한 가벼운 가상화 기술

애플리케이션의 실행 환경을 표준화하고 관리하는 기술

애플리케이션과 그 애플리케이션이 실행되는 데 필요한 모든 종속성(라이브러리, 설정 파일 등)을 함께 패키징 하는 방법

 

주요 용어

패키징

컨테이너는 애플리케이션 코드와 그 애플리케이션이 실행되기 위한 모든 종속성을 포함한다.

따라서 동일한 컨테이너를 다향한 환경(개발, 테스트, 생산 등)에서 일관되게 실행할 수 있다.

 

경량화

컨테이너는 운영체제의 커널을 공유하며, 격리된 환경에서 실행된다. 

 

이식성

컨테이너는 환경에 독립적이어서, 개발자가 컨테이너를 한 환경에서 만들고, 다른 환경(예 : 로컬 개발 환경, 클라우드 등)에서도 동일하게 실행할 수 있다.

 

격리

컨테이너는 서로 격리되어 실행되며, 각 컨테이너는 자신의 파일 시스템, 프로세스, 네트워크를 갖고 있다.

이로 인해 여러 컨테이너가 동일한 호스트에서 동시에 실행될 수 있다.

 

스냅샷

컨테이너는 특정 시점의 애플리케이션 상태를 스탭샷으로 저장할 수 있다.

이를 통해 애플리케이션의 특정 버전을 쉽게 배포하고 복구할 수 있다.

 

 

컨테이너의 장점

  1. 이식성 : 애플리케이션이 어디에서나 동일하게 실행될 수 있다.
  2. 효율성 : 자원 사용이 적고, 빠르게 시작할 수 있다.
  3. 격리 : 애플리케이션 간의 충돌을 방지하고, 독립적으로 실행할 수 있다.
  4. 자동화 : CI/CD 파이프라인에서 자동화된 배포와 테스트를 지원한다.

 

컨테이너 주요 플랫폼

  1. Docker
    가장 널리 사용되는 컨테이너 플랫폼.
    컨테이너 이미지의 생성, 배포, 실행을 지원한다.
  2. PodMan
    Docker와 유사한 컨테이너 도구로, 보안 측면에서 독립적으로 설계되어있다.
    Docker와 호환 가능하다.
  3. Kubernetes
    컨테이너화 된 애플리케이션의 배포, 스케일링, 운영을 자동화하는 플랫폼으로 여러 컨테이너를 클러스터에서 관리하고 조정할 수 있다.