본문 바로가기

DevOps

내부 구조로 알아보는 kubernetes와 container 기술

(pod안에는 한개 이상의 컨테이너가 포함된다)(kubernetes는 pod을 사용하여 container를 생성)

  1. kubernetes를 통해 pod을 생성할 때, kube-apiserver를 통해 사용자의 요청을 받고, kubelet으로 전달하고 container runtime에게 요청하여, container runtime이 container를 설치하는 구조를 가진다.
  2. kuber1.0 버전에서는 직접 컨테이너 맞춤형 api를 날려서 container runtime과 연결 했다.
  3. kuber1.5 버전부터는 인터페이스를 제공하고 각 runtime 회사에서 구현체를 만들어 연결점을 설정했다.
  4. OCI 탄생으로, OCI를 절차를 준수한 컨테이너 이미지는 다른 컨테이너 런타임과 연동가능이다. 특징으로는 libcontainer기술이 아닌 runC(kernel)기반 container runtime 기술로 변경하였다.
  5. dockershim 지원을 종료하고, container runtime 변경이 있을 때 직접적으로 소통할 수 있는 인터페이스방식으로 변경

+호환성 문제로 kubernetes에서 더 이상 dockeer를 지원하지 않는다는 말이 나왔다. 하지만 docker에서는 dockershim, cri-dockerd를 제공하면서 계속해서 docker지원을 이어갔다.