본문 바로가기
책 정리/15단계로 배우는 도커와 쿠버네티스

7. 매니페스트와 파드

by 이석준석이 2021. 8. 21.


매니페스트란?

  • 쿠버네티스 오브젝트를 생성하기 위한 메타정보를 YML / JSON 으로 만든 파일이다.

적용

  • kubectl apply -f [manifest_file]

제거

  • kubectl delete -f YAML [manifest_file]

Pod 설정 시, 옵션

항목 설명
apiVersion 버전을 설정한다.
kind 쿠버네티스 리소스 유형을 정의한다.
metadata 메타데이터로 name 은 필수항목이며, unique 해야 한다.
spec Pod 의 스펙을 기술하며, 아래의 표에 있는 옵션을 사용할 수 있다.

Pod 스펙 정의

항목 설명
containers 각 컨테이너의 스펙을 기술한다.
initContainers 위의 containers 와 동일하나, 초기화 전용 컨테이너의 스펙을 기술한다.
volumes Pod 내 공유할 수 있는 볼륨을 설정한다.

컨테이너 설정

항목 설명
image 컨테이너로 사용할 이미지를 기술한다.
name 컨테이너의 이름을 정의한다.
Pod 내의 여러개의 컨테이너를 기술하는 경우 필수 항목
이다.
livenessProbe 어플리케이션이 정상적으로 동작하는지 검사하는 프로브이다.
- 실패시, 컨테이너를 종료하고 재시작한다.
readinessProbe 어플리케이션이 요청을 받을 준비가 됐는지 검사하는 프로브이다.
- 실패시, 트래픽 전송을 중지한다.
ports 외부로 요청을 받기위한 포트 목록을 기술한다.
resources CPU, memory 를 기술한다.
volumeMounts Pod 에 정의한 볼륨컨테이너의 파일 시스템에 마운트하는 설정이다.
command 컨테이너 기동 시, 실행할 커맨드를 기술한다.
args 위의 커맨드를 실행할 인자를 기술한다.
env 컨테이너 내의 환경변수를 기술한다.

추가 정보

  • Pod 간 통신이 가능하다.
  • Pod 의 IP 목록을 보고싶은 경우 아래의 커맨드를 입력한다.
    • kubectl get po -o wide