개발/Infra

(인강복습) 쿠버네티스 어나더 클래스 Sprint 1 - 컨테이너 한방 정리

희묭 2024. 2. 24. 23:56
A : 이제 도커가 유료화 된다던데 이걸 런타임으로 써도되요?
B : 안되지 컨테이너D가 나왔는데 이걸로 다 바뀌어 다시만든다고 고생할껄?

OS변천사

  1. 태초에 유닉스가 있었는데 비싸서 대중적으로 사용하기 꺼려했다
  2. 91년 리눅스의 등장 → 데비안(무료), 레드헷(유료)
  3. 데비안 → 우분투
  4. 레드헷 → 페도라(무료) → 안정화 → 엔터프라이즈(유료) → CentOS
  5. CentOS 지원종료예정(24년) → IBM인수
  6. IBM인수후 → 페도라 → CentOS(스트림) → 안정화 → 레드헷
  7. 레드헷 → 복제 → 로키리눅스, 알마리눅스

컨테이너변천사

  1. 리눅스의 격리기술이 발전함 → namespace : 프로세스 격리
  2. LXC (Linux Container) : 최초의 컨테이너가 등장, OS가상화목적
  3. 이후 누구나 쓰기쉬운형태로 도커 등장 : 앱을띄우기위한목적
  4. rkt → 도커의 보안을 강화하여 등장
  5. rkt → coreOs → 레드헷인수 → 페도라coreOS (문제는 레드헷에서 cri-o를 밀고있음)
  6. 쿠버네티스에서 도커가빠진다는 이슈발생
  7. containerd, cri-o 두개가 도커대용으로 급부상 (CNCF에 기부된 기술)
  8. 도커 → 미란티스에 인수 → 쿠버에서 안빠지려고 노력

오케이스트레이션변천사

  1. 오케스트레이션 : 농축된 운영노하우를 가지고 앱을 컨테이너에 담아서 배포한다
  2. 쿠버네티스 : 가장 높은 점유율, 거의 유일하게 살아남음

쿠버네티스 동작순서

  1. kube-apiserver에게 팟생성요청
  2. kube-apiserver 이 kubelet 에게 팟생성 요청
  3. kubelet 에게 컨테이너 런타임에게 컨테이너생성(docker, rkt등) 요청
  4. kublet에는 각 컨테이너런타임의 인터페이스(CRI)가 존재
  5. OCI에서 인터페이스 공통관리 → lxc에서 runc사용 (커널레벨 바로접근)
  6. 인터페이스중 dockershim 을 빼기로함(버그많음) → 도커빠진다는 이야기가됨
  7. dockershim 은 cri-dockerd 로 미란티스가 부활시킴
  8. CRI대신 각 컨테이너런타임쪽에 플러그인을 두도록 변경(cri-plugin, cri-docker)