개발/Infra
(인강복습) 쿠버네티스 어나더 클래스 Sprint 1 - 컨테이너 한방 정리
희묭
2024. 2. 24. 23:56
A : 이제 도커가 유료화 된다던데 이걸 런타임으로 써도되요?
B : 안되지 컨테이너D가 나왔는데 이걸로 다 바뀌어 다시만든다고 고생할껄?
OS변천사
- 태초에 유닉스가 있었는데 비싸서 대중적으로 사용하기 꺼려했다
- 91년 리눅스의 등장 → 데비안(무료), 레드헷(유료)
- 데비안 → 우분투
- 레드헷 → 페도라(무료) → 안정화 → 엔터프라이즈(유료) → CentOS
- CentOS 지원종료예정(24년) → IBM인수
- IBM인수후 → 페도라 → CentOS(스트림) → 안정화 → 레드헷
- 레드헷 → 복제 → 로키리눅스, 알마리눅스
컨테이너변천사
- 리눅스의 격리기술이 발전함 → namespace : 프로세스 격리
- LXC (Linux Container) : 최초의 컨테이너가 등장, OS가상화목적
- 이후 누구나 쓰기쉬운형태로 도커 등장 : 앱을띄우기위한목적
- rkt → 도커의 보안을 강화하여 등장
- rkt → coreOs → 레드헷인수 → 페도라coreOS (문제는 레드헷에서 cri-o를 밀고있음)
- 쿠버네티스에서 도커가빠진다는 이슈발생
- containerd, cri-o 두개가 도커대용으로 급부상 (CNCF에 기부된 기술)
- 도커 → 미란티스에 인수 → 쿠버에서 안빠지려고 노력
오케이스트레이션변천사
- 오케스트레이션 : 농축된 운영노하우를 가지고 앱을 컨테이너에 담아서 배포한다
- 쿠버네티스 : 가장 높은 점유율, 거의 유일하게 살아남음
쿠버네티스 동작순서
- kube-apiserver에게 팟생성요청
- kube-apiserver 이 kubelet 에게 팟생성 요청
- kubelet 에게 컨테이너 런타임에게 컨테이너생성(docker, rkt등) 요청
- kublet에는 각 컨테이너런타임의 인터페이스(CRI)가 존재
- OCI에서 인터페이스 공통관리 → lxc에서 runc사용 (커널레벨 바로접근)
- 인터페이스중 dockershim 을 빼기로함(버그많음) → 도커빠진다는 이야기가됨
- dockershim 은 cri-dockerd 로 미란티스가 부활시킴
- CRI대신 각 컨테이너런타임쪽에 플러그인을 두도록 변경(cri-plugin, cri-docker)