• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

CRI docker 와 containerd 차이점

23.10.15 15:37 작성 23.10.15 15:40 수정 조회수 324

0

강의 9분대에서 실습하면서 궁금한 점이 있어 질문드립니다!

 

k8s 에서 docker 를 CRI로 사용할 때 파드를 배포한 후에 docker 를 중지하고 curl 접속을 하면 접속이 안되고

 

containerd 를 CRI로 사용할 때 파드를 배포한 후에 containerd 를 중지하고 curl 접속을 하면 접속이 되는데

 

무슨 차이일까요??

docker와 containerd 의 어떤 차이점이 있어서 그런걸까요?

 

알려주시면 감사하겠습니다!![root@m-k8s ~]# k create deployment sy-deploy --image=nginx
deployment.apps/sy-deploy created

[root@m-k8s ~]# k get po
NAME                         READY   STATUS    RESTARTS       AGE
static-web-m-k8s             1/1     Running   1 (156m ago)   153m
sy-deploy-84f55cfcf9-6twr9   1/1     Running   0              3s
[root@m-k8s ~]# k scale deployment sy-deploy --replicas=6
deployment.apps/sy-deploy scaled

[root@m-k8s ~]# k get po
NAME                         READY   STATUS              RESTARTS       AGE
static-web-m-k8s             1/1     Running             1 (157m ago)   153m
sy-deploy-84f55cfcf9-6twr9   1/1     Running             0              30s
sy-deploy-84f55cfcf9-9jxwz   0/1     ContainerCreating   0              2s
sy-deploy-84f55cfcf9-dd7pg   0/1     ContainerCreating   0              2s
sy-deploy-84f55cfcf9-jzsrv   0/1     ContainerCreating   0              2s
sy-deploy-84f55cfcf9-l5qpr   0/1     ContainerCreating   0              2s
sy-deploy-84f55cfcf9-zl9zt   0/1     ContainerCreating   0              2s

[root@m-k8s ~]# k get po -o wide
NAME                         READY   STATUS    RESTARTS       AGE    IP               NODE     NOMINATED NODE   READINESS GATES
static-web-m-k8s             1/1     Running   1 (157m ago)   153m   172.16.171.71    m-k8s    <none>           <none>
sy-deploy-84f55cfcf9-6twr9   1/1     Running   0              46s    172.16.221.156   w1-k8s   <none>           <none>
sy-deploy-84f55cfcf9-9jxwz   1/1     Running   0              18s    172.16.132.30    w3-k8s   <none>           <none>
sy-deploy-84f55cfcf9-dd7pg   1/1     Running   0              18s    172.16.132.31    w3-k8s   <none>           <none>
sy-deploy-84f55cfcf9-jzsrv   1/1     Running   0              18s    172.16.221.157   w1-k8s   <none>           <none>
sy-deploy-84f55cfcf9-l5qpr   1/1     Running   0              18s    172.16.103.162   w2-k8s   <none>           <none>
sy-deploy-84f55cfcf9-zl9zt   1/1     Running   0              18s    172.16.103.161   w2-k8s   <none>           <none>

# containerd 중지
[root@w1-k8s ~]# systemctl stop containerd

[root@w1-k8s ~]# systemctl status containerd
● containerd.service - containerd container runtime
   Loaded: loaded (/usr/lib/systemd/system/containerd.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Sat 2023-10-14 23:49:00 KST; 8s ago
     Docs: https://containerd.io

[root@m-k8s ~]# k get po -o wide
NAME                         READY   STATUS    RESTARTS       AGE    IP               NODE     NOMINATED NODE   READINESS GATES
static-web-m-k8s             1/1     Running   1 (158m ago)   154m   172.16.171.71    m-k8s    <none>           <none>
sy-deploy-84f55cfcf9-6twr9   1/1     Running   0              75s    172.16.221.156   w1-k8s   <none>           <none>
sy-deploy-84f55cfcf9-9jxwz   1/1     Running   0              47s    172.16.132.30    w3-k8s   <none>           <none>
sy-deploy-84f55cfcf9-dd7pg   1/1     Running   0              47s    172.16.132.31    w3-k8s   <none>           <none>
sy-deploy-84f55cfcf9-jzsrv   1/1     Running   0              47s    172.16.221.157   w1-k8s   <none>           <none>
sy-deploy-84f55cfcf9-l5qpr   1/1     Running   0              47s    172.16.103.162   w2-k8s   <none>           <none>
sy-deploy-84f55cfcf9-zl9zt   1/1     Running   0              47s    172.16.103.161   w2-k8s   <none>           <none>

[root@m-k8s ~]# curl 172.16.221.156
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

답변 3

·

답변을 작성해보세요.

0

+CRI의 관점에서 Docker도 ContainerD를 이용하기 때문에 차이는 거의 없습니다. 다만 일부 타이밍 이슈(그래서 시간대 / 기다린 시간 물어봄)가 있을 수도 있습니다.

0

내용을 다시 읽어보니 2개가 차이가 발생했다고 적어주셨는데...

실습하신 내용에는 ContainerD만 있고..정확한 재현 순서 및 시간(시간 1분인지 5분인지...) 등의 정보가 없어서 정확한 설명이 어려울 것 같습니다.

 

설명이 필요하시다면 각각의 CRI의 상태와 재현 순서 및 기다린 시간대등 제가 실제로 테스트 또는 해석해서 적을 수 있는 정보를 제공해 주시기를 부탁드립니다.

0

안녕하세요

현재 실습 환경(v1.25)에서는 docker는 (정확하게는 docker 내부에 있는 ContainerD는 사용하지 않습니다.)

간단하게 ps를 살펴보시면 아마 현재 상태를 확인하실 수 있을 것 같습니다.

위의 내용도 이와 연관해서 확인되신 내용 같습니다. (v1.22 환경/main 브랜치가 아니라 1.22 브랜치 으로 작성하신다면 해당 내용과 다른 결과를 확인하실 수 있을 것 같습니다.)

[root@cp-k8s ~]# docker ps 
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@cp-k8s ~]# crictl ps 
CONTAINER           IMAGE               CREATED             STATE               NAME                      ATTEMPT             POD ID              POD
4855194303f5c       821b3dfea27be       5 minutes ago       Running             kube-controller-manager   2                   475b6ae5de7e4       kube-controller-manager-cp-k8s
94d57f6a5098c       45ae357729e3a       5 minutes ago       Running             calico-kube-controllers   1                   76403fafddbc2       calico-kube-controllers-74d5f9d7bb-66sz8
9a4543bcbf16c       ead0a4a53df89       5 minutes ago       Running             coredns                   1                   80132c0caad23       coredns-5dd5756b68-7p6kj
af099f333f37a       ead0a4a53df89       5 minutes ago       Running             coredns                   1                   c9817ee93f9f0       coredns-5dd5756b68-xtdrt
b8a76b6db4449       191b3797a6626       5 minutes ago       Running             speaker                   2                   6f88e00121268       speaker-2h2jw
e69af43fccd8b       44f52c09decec       6 minutes ago       Running             calico-node               1                   73d0ff86839e1       calico-node-2f4wc
09a16bda7b0f9       6cdbabde3874e       6 minutes ago       Running             kube-proxy                1                   70e73d88a6a88       kube-proxy-hlk5c
b2656eaadcbb0       73deb9a3f7025       6 minutes ago       Running             etcd                      1                   0161db4e70b29       etcd-cp-k8s
71b000e3e6bac       b462ce0c8b1ff       6 minutes ago       Running             kube-scheduler            1                   5e981713ef1e5       kube-scheduler-cp-k8s
3f3f85151c14e       5c801295c21d0       6 minutes ago       Running             kube-apiserver            1                   71710e8974aee       kube-apiserver-cp-k8s