반응형
출처:https://velog.io/@zuckerfrei/Docker-vs-ContainerD
역사
- 맨 처음에는 k8s가 컨테이너 런타임을 도커만 사용함
- rkt같은 다른 컨테이너 런타임도 추가하고자 함 → 이러려면 필요한게 CRI였음
- cri = container runtime interface
- cri 도입으로 oci 표준을 준수하는 다른 컨테이너 런타임을 지원할 수 있게 됨
- oci = open container initiative
- 표준을 만들기 위해 구성됨
- 이미지 스펙 : 이미지 빌드 방식에 대한 기준을 정의
- 도커는 cri를 지원하려고 만들어진게 아니라서(cri 이전부터 존재함) k8s는 도커를 계속 지원하기 위해 dockershim을 도입했음
- dockershim : cri 밖에서 docker를 지원하기 위한 임시 방편
- 그러나 도커는 여러 구성요소로 이루어져 있어서 k8s와 충돌, 불편함이 발생
- 결국 dockershim 지원을 중단하기로 결정 (v1.23 까지만) → 도커는 더이상 k8s 런타임이 아니게 됨
- 대신 도커에서 사용하던 containerd라는 cri는 여전히 지원되며, cri-o와 함께 가장 많이 사용되는 런타임 중 하나가 됨
CLI
namectrnerdctlcrictl
purpose | debugging | general purpose | debugging |
community | ContainerD | ContainerD | k8s |
works with | ContainerD | ContainerD | all cri compatible runtimes |
- containerd
- ctr
- containerd와 함께 제공
- 디버깅 목적으로만 사용, 기능 제한적 → 사용x
- nerdctl
- 도커 명령어와 유사
- 앞으로 더 많이 사용될 가능성 있음
- ctr
- 모든 cri
- crictl
- 모든 컨테이너 런타임에서 사용 가능
- 어떤 컨테이너 런타임을 사용할지 설정해야 함, 설정하지 않을 경우 아래의 순서대로 연결을 시도함
# 설정 방법 crictl --runtime-endpoint export CONTAINER_RUNTIME_ENDPOINT
# 설정하지 않을 경우 연결되는 우선순위 unix:///var/run/dockershim.sock unix:///run/containerd/containerd.soc unix:///run/crio/crio.sock unix:///var/run/cri-dockerd.sock
- 별도 설치 필요
- 디버깅용도로만 사용됨
- 도커 명령어와 유사 + 다른점은 pods명령어 사용 가능
- 앞으로 crictl을 사용할 것을 권장
- crictl
반응형
'IT기술 관련 > 쿠버네티스' 카테고리의 다른 글
[쿠버네티스 kubernetes] etcdctl command 가이드 (1) | 2024.10.12 |
---|