파드 속 컨테이너의 장애

개요

컨테이너는 쉽게 휘발될 수 있다.
파드는 기본적으로 스펙에 명시된 restartPolicy에 맞춰 컨테이너의 장애를 처리한다.

컨테이너의 장애 정의에 대해서는 컨테이너 프로브를 참고한다.
쿠버네티스에서는 이를 보완하기 위해 파드를 두지만, 사실 클러스터의 관점에서는 파드 역시 어느 정도 휘발성이 있는 것으로 취급한다.
이후에 볼 Deployment에서 보면 알 수 있겠지만 파드는 생겼다 줄었다하는 게 원래 존재 방식이다.

재시작 절차

재시작은 일단 다음 정도의 과정을 거친다.

CrashLoopBackOff

이 중 CrashLoopBackOff 상태는 컨테이너 실패에 따라 자주 보게 되는 상태일 것이다.
크룹백은 언제 주로 발생하는가?

뭐가 많지만, 결국 컨테이너가 제대로 실행되지 않는 상태들이다.
하지만 이 에러를 대응하기 위해서는 다양한 방법을 시도해볼 필요가 있어서 이렇게 세분화한 것이다.
얼마나 이 에러에 대한 질문이 많았으면 공식 문서에도 떡하니 박아놨다.

재시작 정책(restartPolicy)

그래서 재시작 정책에는 무엇이 있단 말인가?

이 정책은 파드 내부의 앱 컨테이너, 초기화 컨테이너에 대해 동작한다.
사이드카 컨테이너는 재시작 정책이 always인 초기화 컨테이너 내부에서 정의되기에 이를 무시한다.

재시작은 항상 같은 노드 내에서 이뤄지는 것이 보장된다.

참고