컨테이너와 쿠버네티스에서의 Pod 개념 정리
컨테이너(Container)란?
컨테이너는 애플리케이션과 실행에 필요한 모든것(코드, 런타임, 시스템 도구, 시스템 라이브러리 등)을 패키지화하는 가벼운, 독립적인 실행 환경이다.
독립성
컨테이너는 리눅스의 컨테이너화 기술(cgroups 및 namespaces)을 사용하여 운영 체제 수준에서 프로세스를 격리한다.
이는 컨테이너가 각각 독립된 파일 시스템을 가지고, 네트워크, 사용자, 프로세스 공간 등에서 호스트 시스템과 분리되어 실행된다는 의미이다.
환경일관성
개발, 스테이징, 프로덕션 등 모든 환경에서 동일하게 실행될 수 있습니다.
이는 호스트 시스템이 Windows, CentOs, Ubuntu, Arch linux등을 사용하던지 모든 환경에서 동일하게 실행될 수 있음을 뜻합니다.
파드(Pod)란?
파드는 하나 이상의 컨테이너를 감싸는 쿠버네티스의 최소 배포 단위입니다. 컨테이너를 직접 다루기보다는 파드 단위로 관리합니다.
공유 자원
파드 내의 컨테이너는 네트워크(IP 주소 및 포트 공간)와 저장 공간(Volumes)을 공유합니다. 이는 밀접하게 협력하는 컨테이너들이 서로 통신하고 데이터를 공유하는 데 유용합니다.
생명주기
파드는 한 묶음으로서 스케줄링되고, 생성되며, 삭제된다. 파드 내의 컨테이너는 같이 시작되고 종료됩니다.
파드 내의 컨테이너 중 하나라도 실패하면, 쿠버네티스는 파드의 재시작 정책에따라 해당 컨테이너나 전체 파드를 재시작할 수 있다.
그렇기에 파드를 삭제하면, 파드 내의 모든 컨테이너가 종료되고, 클러스터에서 리소스가 해제되어, 저장 곤간이 아닌 경우, 파드와 관련된 모든 데이터도 함께 제거 된다.
컨테이너와 파드의 차이
스케일링
쿠버네티스에서 스케일링은 파드 수준에서 이루어 진다. 컨테이너의 수를 직접 늘리는 것이 아니라 파드의 인스턴스를 늘리는 것이다.
관리 단위
쿠버네티스는 컨테이너를 직접 관리하지 않습니다. 대신, 파드를 통해 컨테이너를 조정하고 관리한다.
간단히 말해, 컨테이너는 애플리케이션의 실행을 위한 격리된 환경을 제공하는 반면, 파드는 이러한 컨테이너들의 공동 운명 공동체로서, 컨테이너들이 함께 배치되고 관리되는 쿠버네티스의 기본적인 작업 단위이다.
'Learning > Kubernetes' 카테고리의 다른 글
namespace, privilege mode 비허용 lable (0) | 2025.06.09 |
---|