리눅스와 컨테이너의 발전 역사

2025. 9. 5. 18:46·개발 공부/k8s

리눅스 흐름으로 이해하는 컨테이너

리눅스와 컨테이너 발전 흐름

리눅스 흐름 설명

  • 유닉스에서 파생된 리눅스는 무료라 인기가 많았음
    • 그래서 여러 버전으로 배포됨
  • 대표적인 것이 debian 계열(대표적으로 ubuntu)과 Red Hat 계열
  • RedHat 계열의 경우 원래는 fedora(테스트), RedHat(유료), CentOS(무료, 복제판)로 이어져서 무료인 CentOS는 인기가 많았음.
    • 하지만 IBM에 인수된 후로 RedHat으로 사용자가 옮겨가게 하기 위해 fedora(테스트), Centos stream(테스트), RedHat(유료)으로 바뀜
    • 그 이후 RedHat의 복제판을 만들기 위해 rocky linux, alma linux가 나옴 (rocky linux가 점유율이 높기에 이것을 강의에서 사용)

컨테이너 흐름 설명

  • 기본적으로 chroot(사용자 격리, 파일 격리, 네트워크 격리), cgroup(자원격리), namespace(프로세스 격리)라는 개념이 존재함
  • LXC(Linux Containers)가 위 세가지를 합쳐서 최초의 컨테이너를 만듦
  • 도커는 LXC를 기반으로 훨씬 쉽게 만든거
  • rkt는 도커에 보안을 강화해서 만들어짐
    • coreos, fedora coreos
  • CNCF는 컨테이너 계열 비영리 단체로 graduated와 incubating이 존재함
    • 여기 졸업하면 웬만해서는 그냥 써도 됨
    • 대표적으로 containerd(graduated)와 cri-o(graduated)가 존재함

컨테이너 오케스트레이션 흐름 설명

  • 특징
    • App을 컨테이너에 담아서 배포한다
    • 시스템 운영 노하우를 많이 가지고 있다.
    • 컨테이너 생성, 조회, 수정, 삭제에 해당하는 모든 범위를 해줌.
  • 대표적으로 쿠버네티스, 노마드, 도커 스웜 등이 존재함
  • 쿠버네티스 기능이 많기에 이것의 관리를 더 용이하게한 것들이 등장함
    • OPENSHIFT, RANCHER, VMware Tanzu
    • private하게 서버 돌릴 때 많이 사용
  • 현재의 컨테이너는 쿠버네티스와의 연결이 중요해짐

쿠버네티스 흐름으로 이해하는 컨테이너

컨테이너와 쿠버네티스의 연결 관계

  • 컨테이너에는 여러 수준이 존재함
  • 커널 수준
    • chroot, namespace, cgroup
  • 컨테이너 런타임
    • 프로그래밍 언어처럼 저수준은 컴퓨터와 가까운 것 고수준은 사람과 가까운 것이라고 생각하면 됨
    • 고수준
      • docker (libcontainer 기반)
        • dockererd
    • 저수준
      • LXC
      • libcontainer
      • rkt
  • 쿠버네티스 구조
    • kube-apiserver
      • 쿠버네티스로 가는 모든 요청을 받음
    • kubelet
      • 컨테이너 맞춤형 API를 호출
      • 1.5부터 인터페이스와 구현부를 분리함
        • 해당 인터페이스를 CRI로 부름
  • 현재 대부분의 컨테이너 런타임들은 OCI를 맞추기 때문에 이미지 공유가 가능함

출처: https://inf.run/7dm3q

저작자표시 (새창열림)

'개발 공부 > k8s' 카테고리의 다른 글

Application 기능으로 이해하기 - Configmap, Secret  (0) 2025.09.12
Application 기능을 이해하기 - pod(probe)  (0) 2025.09.12
Object 그려보며 이해하기  (0) 2025.09.08
쿠버네티스를 써야하는 이유  (0) 2025.09.07
쿠버네티스 설치하며 이해하기  (0) 2025.09.06
'개발 공부/k8s' 카테고리의 다른 글
  • Application 기능을 이해하기 - pod(probe)
  • Object 그려보며 이해하기
  • 쿠버네티스를 써야하는 이유
  • 쿠버네티스 설치하며 이해하기
Jamey
Jamey
  • Jamey
    컴공 대학생의 이야기
    Jamey
  • 전체
    오늘
    어제
    • 분류 전체보기 (36)
      • 개발 공부 (33)
        • k8s (24)
        • kafka (8)
        • AI (1)
      • 개발기 (2)
      • 프로젝트 홍보 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    Kafka
    current offset
    consumer
    llm최적화
    sql자동화
    serialDB
    langchain
    K8S
    Rag
    Linux
    토픽
    카프카
    Graphana
    Producer
    topic
    Jenkins
    AI
    조인 쿼리
    Kubernetes
    cloudflare workers
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Jamey
리눅스와 컨테이너의 발전 역사
상단으로

티스토리툴바