본문 바로가기
기술, 개발/DevOps

컨테이너 한방 정리

by Jaejin Sim 2025. 9. 14.
반응형

컨테이너 한방 정리

리눅스 이야기

최초 유닉스가 등장하였고... 유닉스는 유료였다. 사용자는 유료면 안써.유닉스는 이렇게 점점 잊혀졌다.. 이때 리눅스가 등장! 리눅스 기반으로 엉청 많은 배포판이 만들어졌다. 우린 2개만 알면 된다. 무료인 데비안 유료인 레드햇

우분투

  • 최초로 UI 를 제공 했음

래드햇

  • 리눅스 배포판이 만들어지는 순서가 있다.
  • 페도라 (무료) → 안정화 → RedHat (유료) → 래드햇을 복제 한것이 CentOS (무료)
  • CentOS7 은 2024년 부터 지원이 종료 된다.
  • 래드햇은 IBM에 인수 되었고, IBM 의 전략은 CentOS 점유율을 RedHat 으로 끌어오는 것이 목표다

CentOS 사용하던 기업은 어떻게?

  • RedHat 으로 전환
  • RedHat 리눅스를 복제 해서 무료판으로 만든게 있음. 그것은 Rocky Linux (Centos 설립자중 한명이 로키리눅스를 만들었다)

컨테이너 이야기

프로세스를 격리 시키는 기술이 나옴 LXC -> 도커가 나왔음

컨테이너 오케스트레이션

 

컨테이너
APP V1 생성 -> 컨테이너 생성 -> APP V1 실행

컨테이너 오케스트레이션
APP V1 생성 -> 쿠버네티스 명령 -> 컨테이너 생성 -> APP V1 실행

컨테이너 간의 싸움

도커의 위세가 꺽인다. 이유? 쿠버네티스에 도커가 빠진다라는 이야이가 있었음.

도커와 쿠버네티스 인터페이스가 잘 안 맞음

중요한건 쿠버네티스와 호환성이 좋은지가 컨테이너를 선택하는 중요한 결정요소가 되었음

컨테이너D

도커에서 컨테이너를 만들어주는 기능이 분리된 것

 

처음엔 도커처럼 사용자들이 쓰기 편한 컨테이너가 주목되었으나,

컨테이너와 컨테이너오케스트레이션이 한 몸처럼 움직이기 시작하여 컨테이너를 직접 다룰 일이 줄어든다.

도커

미란티스에 인수 되고 쿠버네티스의 인터페이스를 잘 맞추려고 하고 있다.

쿠버네티스에서 도커가 빠지지 않게 된다.

요약

1. 쿠버네티스는 현재 표준을 넘어 여러 분야에서 활용되고 있다.
2. 쿠버네티스는 컨테이너를 더 쉽게 사용 할 수 있게 해준다.
3. 컨테이너는 쿠버네티스와의 인터페이스가 중요하다.

 

오케스트레이션 (쿠버네티스)

컨테이너 런타임 (컨테이너를 생성해주는 역할)

컨테이너를 실행하는 '컨테이너 런타임'은 역할에 따라 여러 계층으로 나뉩니다.

 

1. (High-Level) 런타임: 도커(Docker)

  • 여러 기능이 있는데 컨테이너를 만들어주는 역할을 하는건 컨테이너D 이다.
  • 컨테이너 D는 libcontainer (로우레벨) 를 이용한다.
  • 쿠버네티스는 컨테이너 D만 사용하기 때문에 도커의 부가적인 기능은 좀 과해보일 수 있다.

2. 로우레벨 런타임

  • LXC
  • libcontainer
  • rkt
  • runC
  •  

컨테이너 오케스트레이션

  • kube-apiserver (컴포넌트)
    • Pod 생성 API 호출
  • kubelet (컴포넌트)
    • 도커인지, rkt 인지 API 를 호출해준다.
    • 1.5 버전부터 인터페이스 규격을 정하고 구현부를 따로 만들었음.
    • 구현부는 쿠버네티스 프로젝트에 있고
    • 쿠버네티스는 오픈소스이기 때문에 각각의 런타임측 (도커) 에서 쿠버네티스 소스를 컨트리뷰트 한다.

도커에서 컨테이너D로 런타임을 바꾸게 되면 기존에 쓰던 이미지를 다시 만들어야 할까요?

아니요 도커도 어짜피 컨테이너D를 사용하기 때문에 만들어지는 이미지는 같다.

컨테이너 표준에 대한 이야기 … (OCI)

  • 컨테이너 종류가 점점 많아지면서 표준의 필요성을 느끼게 되었고 OCI (표준 컨테이너 규약) 단체가 만들어짐
  • 규약을 지켜서 컨테이너를 만들면 런타임 끼리 컨테이너를 사용 할 수 있다.
  • 도커는 표준을 지키기 위해 runC 를 따로 만들었고, runC는 LXC 를 사용하지 않고 바로 커널 레벨 가상화 기술을 사용한다.
  • libcontainer 안 씀. LXC 안 씀
  • 도커에서 돌던 컨테이너 이미지를 rkt 에서도 사용할 수 있다.

쿠버네티스와 런타임 연동 방식의 진화

도커의 새기능이 생기면 쿠버네티스도 패치를 해야한다.

 

V1.5 ~ V1.23

  • 컨테이너 기능이 변경 될 때 마다 CRI에 대한 규현체도 수정을 해야 하니, 쿠버네티스 패치가 되야 함.

V1.24

  • 큐블렛(kubelet)에서 컨테이너 런타임으로 바로 받을 수 있게 구조를 바꾼다
  • 이런 구조를 지원하기 위해 컨테이너 D에서는 CRI-Plugin 이라는 기능이 추가가 되었다

V1.27

쿠버네티스에서 Pod 를 만들라고 했을 때 이 구조를 ( CRI-Plugin) 기본으로 동작 한다

반응형