파드를 자세히 들여다보자.
파드가 컨테이너를 하나만 갖고 있을 때 kubelet이 정말 한개의 컨테이너만 실행할까?
실제 파드에 접속해 docker ps로 컨테이너 목록을 보면 pause 컨테이너가 하나 더 있는 것을 볼 수 있습니다.
퍼즈 컨테이너는 파드의 모든 컨테이너를 함께 담고 있는 컨테이너입니다.
이게 뭔 소리야 싶죠..?
파드의 모든 컨테이너가 동일한 네트워크와 리눅스 네임스페이스를 공유하는데 그게 어떻게 가능할까요?
퍼즈 컨테이너는 이러한 네임스페이스를 모두 보유하는 게 유일한 목적인 인프라스트럭처 컨테이너입니다.
파드의 다른 사용자 정의 컨테이너는 파드 인프라스트럭처 컨테이너(pause)의 네임스페이스를 사용합니다.
애플리케이션이 종료되고 다시 시작될 때도 컨테이너가 다시 시작하기 위해서는 이전과 동일한 리눅스 네임스페이스의 일부가 되어야합니다.
인프라스트럭처 컨테이너의 라이프사이클은 파드의 라이프사이클과 똑같기 때문에 이를 가능하게 합니다.
이 컨테이너는 파드가 스케줄링될 때 시작해서 파드가 삭제되기 전까지 실행합니다.
만일 인프라스트럭처 컨테이너가 중간에 종료되면, kubelet이 인프라스트럭처와 파드의 모든 컨테이너를 다시 생성합니다.