컨테이너 런타임에 대한 질문이 있습니다.
안녕하세요! 쉽배쿠부터 수업을 쭉 진행하고 있는데, 계속 의문점이 드는 부분이 있어 이것저것 시도해 보다가 질문드립니다..!
쉽배쿠 수업 당시, "컨테이너 런타임에 문제가 생겼다면?" 을 진행하면서 마스터 노드의 컨테이너 런타임인 containerd를 stop하는 테스트를 진행 했었습니다.
이를 통해 컨테이너 런타임을 지정할 때 containerd를 사용하는 것이 도커를 컨테이너 런타임으로 사용하는 것 보다, 더 안정성 있게 동작할 수 있다는 점도 알게 되었습니다.
당시 전체적인 구상도를 보며, VM의 마스터노드, 워커노드 그리고 파드와 컨테이너까지 "아 Docker는 사용되는 부분이 없구나" 라고 생각했습니다. (실제로 그림에도 도커는 없었으니까요 🙂 )
하지만, 이번 그배쿠 강의를 들으면서 환경 설정을 하는 쉘 스크립트에 도커를 설치하는 부분이 존재했고, 실제 docker --version / docker info 등의 명령어를 실행하니 도커가 동작 중이라는 것을 확인했습니다.

여기서 들게 된 의문점은 다음과 같습니다!
현재 그배쿠 강좌는 컨테이너 런타임으로 무엇을 사용하나요? 또한 쉽배쿠 강좌에서는 실제로 도커를 어디에도 사용하지 않았나요?
쿠버네티스가 현재 도커 지원 중단(컨테이너 런타임으로써의 중단)한 것으로 알고 있습니다.
따라서 현재 그배쿠 강좌에서 컨테이너 런타임으로 "컨테이너디"를 사용하는 것이 맞다면 "컨테이너디"가 알아서 컨테이너를 관리해줄 것으로 생각되는데, 현재 설치된 도커는 어떤 역할을 수행하는 것인가요?
컨테이너의 관리를 위해서는 도커와 컨테이너디 둘 다 설치하는 것은 필수적인가요?
어느정도 쓰다보니까 이해가 된 것 같기도 한데,,, 아리송하여 질문을 드립니다. 감사합니다!
답변 1
1
안녕하세요
좋은 질문에 감사드립니다.
답변은 아래와 같습니다.
현재 그배쿠 강좌는 컨테이너 런타임으로 무엇을 사용하나요? 또한 쉽배쿠 강좌에서는 실제로 도커를 어디에도 사용하지 않았나요?
시작할 때는 Docker (내부는 Containerd)를 사용하다가 1.24에서 Dockershim을 배제하기로 한 관계로 1.24부터 containerd로 변경되었습니다. 아마 강의 초반이 아니라 보강에서 살펴보시면 확인 가능하실꺼에요
docker ps,crictl ps쿠버네티스가 현재 도커 지원 중단(컨테이너 런타임으로써의 중단)한 것으로 알고 있습니다.
따라서 현재 그배쿠 강좌에서 컨테이너 런타임으로 "컨테이너디"를 사용하는 것이 맞다면 "컨테이너디"가 알아서 컨테이너를 관리해줄 것으로 생각되는데, 현재 설치된 도커는 어떤 역할을 수행하는 것인가요?
우선 도커 내부적으로 컨테이너 관리를 위해서 containerd를 사용합니다. 따라서 도커 시절에서도 containerd는 사용되고 있던거였고요.
쿠버네티스 처럼 매우 큰 범위의 인프라 시스템은 시대 변화와 상황에 따라 계속 시스템에 관련된 것들을 변경해야 할 필요가 있습니다. 1.24에서 dockershim을 제거했던게 그러한 큰 변화 중에 하나이고요.
현재 도커가 일부 유지되는 것은 컨테이너 빌드를 할 경우가 있을 때 이를 적용하기 위함이고, 향후에 제거할 가능성도 있습니다. 쿠버네티스만을 생각할 때는 굳이 필요하지 않아서요.
컨테이너의 관리를 위해서는 도커와 컨테이너디 둘 다 설치하는 것은 필수적인가요?
관리라는게 컨테이너 빌드를 해서 배포하는 것이라면 도커 (또는 다양한 컨테이너 빌드 도구)가 필요하고요. 순수하게 쿠버네티스(컨테이너 오케스트레이션) 관점이라면 필요하지 않습니다.
현재 구조 그리고 추가되는 보강들을(1.24, 1.27등) 이해하는데 도움이 되셨으면 좋겠네요.
참고로 현재 보강 B에 있는 구조에서 학습을 위해서라면 Docker를 제거하고 vagrant up 하도록 코드를 변경해 보시면 얻는게 있을 것 같다는 생각도 드네요.
위의 내용이 학습에 도움이 되시길 바랍니다.
섹션2. 1.5쿠버네티스_컨트롤플레인_노드와_워커_노드_그리고 kubeadm으로 쿠버네티스 직접 구성하기-v1.30 오류
0
40
2
[해결] 2.4. tabby config.yaml 파일 복사 실패 시
1
93
0
9.3 Error 발생 유도 테스트 확인 부탁드립니다.
0
95
2
livenessProbe 어플리케이션 재시작 의미
0
67
2
K8S 노들에 접근이 안됩니다.
0
168
6
arm virtualBox의 vagrant up 에러
0
115
2
추후 강의계획 질문
0
149
1
MAC 에서 사용할 수 있는 ova 파일은 없나요?
0
220
2
7.8. w3-affinity-leader 적용 에러 문제 질문드립니다.
0
211
5
커리큘럼 순서 문의
0
206
2
apply 실행 후 pod상태가 ContainerCreating 에서 변경이 안됩니다.
0
371
2
livenessProbe에 대한 설명이 조금 부족한거 같네요
0
218
3
controlplane_node.sh 실행 오류 문의
0
242
2
예제폴더의 경로와 영상의 경로가 너무나도 다릅니다
0
219
2
9.6강의 소스 수정 요청 및 에러 문의
0
165
2
8.6 강의 중 sysnet4admin/chk-info 이미지 bash 이슈
0
161
3
드디어 맥에서도 virtualbox가 지원 됩니다.
0
282
2
8.3강의 set-ctx-pod-admin.sh 수정 요청
0
120
3
7.5 강의 tardy-nginx 이미지 문제
0
3312
3
ch1. controlplan_node.sh 실행 시 에러가 뜹니다
0
306
3
Kubenetes 클러스터에 추가적으로 신뢰하는 CA를 넣을 수 있나요?
0
183
1
clusterrolebinding의 --namespace 옵션의 역할
0
165
2
A.0003 파일 vagrant file 수정 (자문자답)
0
167
2
nfs-client-provisioner 관련 생성 오류 질문
0
191
1





