๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[DevOps]/Kubernetes

Docker image -> Containerd image๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•

by ํŒกํŽ‘ํ 2025. 1. 7.
728x90
๐Ÿ“Œ
Kubernetes์—์„œ ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„์œผ๋กœ ๋„์ปค๋ฅผ ๋” ์ด์ƒ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Containerd์˜ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜, Containerd์—์„œ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ง์ ‘ ๋นŒ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์—†๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ pod๊ฐ€ ์‚ฌ์šฉํ•  ์ด๋ฏธ์ง€์˜ ์ถœ์ฒ˜๋กœ  docker private registry๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.
๋‚˜๋Š” ๋ณด๋‹ค ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด Docker์˜ ์ด๋ฏธ์ง€๋ฅผ Containerd ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ๋‹ค.

๐Ÿฅธ
์ฐธ๊ณ ๋กœ ๋งˆ์Šคํ„ฐ๋…ธ๋“œ๊ฐ€ ์•„๋‹Œ ์›Œ์ปค๋…ธ๋“œ์—์„œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. Pod๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋…ธ๋“œ๊ฐ€ ์›Œ์ปค๋…ธ๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.(์ด๋ฏธ์ง€ ์ฐธ์กฐ ์‹œ ์›Œ์ปค ๋…ธ๋“œ ๋‚ด containerd ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•จ.)
๋˜ํ•œ, pod๋ฅผ ์ƒ์„ฑํ•  yaml ํŒŒ์ผ ๋‚ด ์ง์ ‘ ๋งŒ๋“  ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋ฏ€๋กœ imagePullPolicy: Never์„ ์„ค์ •ํ•ด ์ฃผ์ž.

 

Docker ์ด๋ฏธ์ง€ ์กฐํšŒ ํ›„ ๊ธฐ์กด ์ด๋ฏธ์ง€ or ๋Œ•๊ธ€๋ง ์žˆ๋‹ค๋ฉด ์‚ญ์ œ

$ docker images
...
<none>              <none>    ...

# ๊ธฐ์กด ์ด๋ฏธ์ง€ ์žˆ์œผ๋ฉด ์‚ญ์ œ
$ docker rmi <Image ID>
  • ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๊ธฐ์กด or ๋Œ•๊ธ€๋ง ์ด๋ฏธ์ง€๋ฅผ ์‚ญ์ œํ•˜์ž.

 

Docker Image ์ƒ์„ฑ

# docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ(Dockerfile ๊ฒฝ๋กœ์—์„œ ์ง„ํ–‰ํ•ด์•ผํ•จ)
docker build -t <์ƒ์„ฑํ•  Image๋ช…> .

 

๊ธฐ์กด์— tar ํŒŒ์ผ์ด ์žˆ๋‹ค๋ฉด ์‚ญ์ œ

# tar ํŒŒ์ผ ์ €์žฅ๊ฒฝ๋กœ์—์„œ ๊ธฐ์กด tar ํŒŒ์ผ ์‚ญ์ œ
rm- rf <tar ํŒŒ์ผ๋ช…>.tar
  • ์ด ๊ณผ์ • ์—ญ์‹œ ์—ฌ๋Ÿฌ ๋ฒˆ ๋นŒ๋“œ ์‹œ ๊ธฐ์กด tar ํŒŒ์ผ์„ ๊น”๋”ํžˆ ์ง€์šฐ๊ธฐ ์œ„ํ•ด ๋„ฃ์—ˆ๋‹ค.

 

tar ํŒŒ์ผ ์ƒ์„ฑ

# ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ๋กœ์— ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ tar ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ €์žฅ
docker save -o <์ƒ์„ฑํ•  tar ํŒŒ์ผ๋ช…>.tar <tar ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•  Docker Image๋ช…>

 

Containerd ์ด๋ฏธ์ง€ ์กฐํšŒ ํ›„ ๊ธฐ์กด ์ด๋ฏธ์ง€ or ๋Œ•๊ธ€๋ง ์ด๋ฏธ์ง€ ์žˆ๋‹ค๋ฉด ์‚ญ์ œ

# containerd image ์กฐํšŒ
sudo crictl images
IMAGE                                   TAG                 IMAGE ID            SIZE
docker.io/library/xxx ...

# containerd ๋‚ด ์ด์ „ ์ด๋ฏธ์ง€ ์‚ญ์ œ
sudo crictl rmi <docker.io/library/<Image๋ช…>์˜ container id>
  • ์ด ์—ญ์‹œ conatinerd ๋‚ด์˜ ๊น”๋”ํ•œ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ๋ฏธ๋ฆฌ ์‚ญ์ œํ•˜์ž.

 

tar ํŒŒ์ผ -> Conatainerd ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜

# containerd namespace ์กฐํšŒ
sudo ctr ns list
NAME   LABELS 
k8s.io  
...

# docker์—์„œ ์ถ”์ถœํ•œ tar ํŒŒ์ผ์„ containerd ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ import
# tar ํŒŒ์ผ ๊ฒฝ๋กœ์—์„œ ํ•ด์•ผ ํ•จ
sudo ctr --namespace k8s.io image import <(๋ณ€ํ™˜ํ•œ tar ํŒŒ์ผ๋ช…).tar>

# ์ด๋ฏธ์ง€๊ฐ€ ์—…๋ฐ์ดํŠธ๋จ.
# containerd image ์กฐํšŒ
sudo crictl images
IMAGE                                   TAG                 IMAGE ID            SIZE
docker.io/library/xxx ...
  • ์—ฌ๊ธฐ์„œ ํ•ต์‹ฌ์€ --namespace๋ฅผ k8s.io ์ฆ‰, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ์„ค์ •ํ•˜์—ฌ import ํ•ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ์ ์ด๋‹ค.
  • ์ด๋ฏธ์ง€๊ฐ€ ์—…๋ฐ์ดํŠธ๋œ๋‹ค๋ฉด yaml ํŒŒ์ผ์—๋Š” docker.io/library/xxx์™€ ๊ฐ™์ด ์ด๋ฏธ์ง€๋ช… ๊ทธ๋Œ€๋กœ ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

์ฐธ๊ณ 

https://yes-admit.tistory.com/124

728x90