<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>CDI - 태그 - lee's blog</title><link>https://ken-0913.github.io/myblog/tags/cdi/</link><description>CDI - 태그 - lee's blog</description><generator>Hugo -- gohugo.io</generator><language>ko-kr</language><managingEditor>hyeonjae0913@gmail.com (ken-0913)</managingEditor><webMaster>hyeonjae0913@gmail.com (ken-0913)</webMaster><lastBuildDate>Fri, 11 Sep 2026 09:00:00 +0900</lastBuildDate><atom:link href="https://ken-0913.github.io/myblog/tags/cdi/" rel="self" type="application/rss+xml"/><item><title>컨테이너에 GPU를 붙이는 두 가지 방법 - nvidia-container-runtime과 CDI</title><link>https://ken-0913.github.io/myblog/posts/gpu/gpu-container-runtime-vs-cdi/</link><pubDate>Fri, 11 Sep 2026 09:00:00 +0900</pubDate><author><name>ken-0913</name></author><guid>https://ken-0913.github.io/myblog/posts/gpu/gpu-container-runtime-vs-cdi/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/banners/gpu-container-runtime-vs-cdi-056613aa.png" referrerpolicy="no-referrer">
            </div><h2 id="일반적인-컨테이너-생성-흐름" class="headerLink">
    <a href="#%ec%9d%bc%eb%b0%98%ec%a0%81%ec%9d%b8-%ec%bb%a8%ed%85%8c%ec%9d%b4%eb%84%88-%ec%83%9d%ec%84%b1-%ed%9d%90%eb%a6%84" class="header-mark"></a>일반적인 컨테이너 생성 흐름</h2><p>쿠버네티스에서 컨테이너를 생성하는 과정은 아래와 같다. kubelet은 gRPC 소켓통신으로 containerd에게 파드 생성에 필요한 명세를 전달한다.  파드 명세를 containerd는 OCI spec으로 바꾸는데 이 과정에서 이미지 레이어를 받아 파일 시스템을 준비하고 CDI 이름을 보고 /etc/cdi에서 실제 디바이스, 마운트, hook을 채워 넣고, cgroup 경로 및 네임스페이스 설정을 확정한다. </p>
<p>그 후 shim을 띄우고 이는 파드(sandbox) 마다 하나씩 뜨는 별도 프로세스이다. 별도 프로세스인 이유는 containerd가 죽거나 업그레이드 되어도 컨테이너는 살아 남아야하기때문이다. 즉, 수명이 분리되어있다.  컨테이너의 stdout/stderr 중계, 종료 코드 수집, 좀비 프로세스 수확도 shim 몫이다. </p>]]></description></item></channel></rss>