파드란?
파드는 쿠버네티스에서 컨테이너를 실행하는 최소 단위로 한개 혹은 여러 개의 컨테이너를 포함한다.
하나의 파드에 속하는 모든 컨테이너들은 같은 노드에서 동작한다.
파드는 다음과 같은 특징을 가진다.
컨테이너 재사용 촉진을 위한 플랫폼
파드는 하나의 목적을 위해 만들어진 컨테이너를 부품처럼 조합할 수 있도록 설계되었다.
- 파드 내부의 컨테이너들은 파드의 IP 주소와 포트번호를 공유한다.
- 파드의 내부 컨테이너들은 localhost로 서로 통신할 수 있다.
- 파드의 내부 컨테이너들은 System V 프로세스 통신이나 POSIX 공유 메모리를 사용하여 서로 통신할 수 있다.
- 파드의 내부 컨테이너들은 파드의 볼륨을 마운트하여 파일 시스템을 공유할 수 있다.
이 기능들은 같은 파드 내의 컨테이너 사이에서만 가능하며, 다른 파드에 있는 컨테이너와는 불가능하다.
파드는 일시적인 존재
파드는 일지적 존재로 설계되어 파드 내의 컨테이너는 이미지로부터 매번 생성된다.
같은 오브젝트 이름으로 몇 번이고 파드를 기동해도 이전에 컨테이너에서 수행한 변경 이력은 남지 않고, 이미지의 초기 상태에서 시작할 뿐이다.
파드의 IP 주소도 고정적이지 않다. 파드의 IP 주소는 기동 시 부여되고, 종료 시에 회수되어 다른 파드가 기동할 때 사용된다. 파드의 기동과 삭제는 컨트롤러에 의해 동적으로 실행되기 때문에 해당 파드가 언제까지 같은 IP 주소를 가지고 있을지 알 수 없다. 그래서 파드에 요청을 보내고 싶은 경우에는 반드시 서비스를 사용해야 한다.
파드는 컨테이너의 실행 상태를 관리
파드가 정지한 경우에는 담당 컨트롤러가 재기동 등의 정해진 처리를 수행하는 한편, 파드 내부의 컨테이너가 정지한 경우에는 파드가 해당 컨테이너를 재시작한다.
설정에 따라서는 정지한 컨테이너를 그대로 유지한 채 로그를 참조할 수 있도록 하는 것도 가능하다.
파드는 활성 프로브(Liveness Probe)와 준비 상태 프로브(Readiness Probe)를 설정하여 내부 애플리케이션의 상태를 감시할 수 있다.
예를 들어, 활성 프로브를 설정하면 애플리케이션이 멈춰 있는 상태를 감지하여 컨테이너를 강제 종료 시킬 수 있다.
준비 상태 프로브를 설정하면 파드가 요청을 받을 준비가 될 때까지 서비스 오브젝트가 요청을 전송하지 않는다.
파드는 초기화 전용 컨테이너를 실행
파드에 초기화만을 담당하는 컨테이너를 설정할 수 있다.
파드가 기동된 후 초기화 담당 컨테이너가 제일 먼저 실행되며 초기화가 끝나면 핵심 기능을 수행하는 컨테이너들이 실행된다.
정리하자면 파드는 IP 주소를 가지며, 복수의 컨테이너를 내포하며,
하나의 가상 서버처럼 동작하지만 기존에 서버를 관리하던 것처럼 친숙한 호스트 이름을 붙여 오랫동안 정성들여 관리하는 것과는 다른 방식으로 설계되었다.
즉, 쓰고 버리고 새롭게 시작할 수 있도록 설계된 것이다.
파드는 단독으로 사용할 수도 있지만 서비스, 컨트롤러, 퍼시스턴트 볼륨, 컨피그맵, 시크릿 등의 오브젝트와 함께 사용될 때 그 진가를 발휘한다.
'Docker & Kubernetes' 카테고리의 다른 글
클러스터 네트워크 (0) | 2021.11.23 |
---|---|
파드의 라이프 사이클과 종료 처리 (0) | 2021.11.23 |
쿠버네티스 API 오브젝트 (0) | 2021.11.23 |
쿠버네티스의 아키텍처 및 계층 구조 (0) | 2021.11.23 |
컨테이너의 이해(3/3) - 도커와 쿠버네티스의 관계 (0) | 2021.11.21 |