[CKA] containerd와 런타임 도구
CRI를 통한 containerd 연동과 ctr, nerdctl, crictl의 용도를 구분합니다.
쿠버네티스는 CRI(Container Runtime Interface)를 통해 컨테이너 런타임과 통신합니다. 노드의 kubelet이 CRI 요청을 보내면 containerd가 이미지와 컨테이너의 수명 주기를 관리하고, 저수준 실행에는 runc를 사용합니다.
도커 지원이 사라졌다는 표현은 Docker 이미지나 컨테이너가 사라졌다는 뜻이 아닙니다. 쿠버네티스 1.24에서 dockershim이 제거되었고, CRI를 구현하는 containerd 같은 런타임을 직접 사용하게 되었습니다.
ctr: containerd에 포함된 저수준 디버깅 도구nerdctl: Docker CLI와 유사한 사용성을 제공하는 containerd용 도구crictl: CRI 호환 런타임을 검사하고 디버깅하는 도구
crictl로 kubelet이 관리하는 컨테이너를 임의로 만들더라도 원하는 파드 상태에 포함되지 않으면 kubelet이 정리할 수 있습니다. 일반적인 워크로드 관리는 Kubernetes API로 하고, 런타임 도구는 노드 문제를 조사할 때 사용합니다.
kubelet → CRI → containerd → runc