해당 강의를 구매해서 듣는 결정적인 이유는 "책을 읽으면서 공부하기에는 이해가 잘 안되었다..."
3장 쿠버네티스, 4장 도커, 5장 젠킨스 쯤 읽을 때... 안되겠다 싶어 강의를 구매했다.
공부 속도가 더욱 늦어지겠지만, 강의를 들으면서 책도 읽도록 하겠다.
강사님께서도 자료를 바탕으로 자신의 스타일에 맞게 정리를 하면 된다고 했기 때문에 열심히 정리를 해본다..!!
01. 리눅스 흐름으로 이해하는 컨테이너
Container와 Container Orchestration 차이
기술의 흐름
- Container Orchestration
- kubernates / docker swarm / Nomad / MESOS
- → (기업관리형) OPENSHIFT / RANCHER / VMware Tanzu (기업 서버에서 프라이빗 하게 사용)
- kubernates / docker swarm / Nomad / MESOS
- Conatiner
- chroot: 유저 격리/파일 격리/네트워크 격리 (1979)
- → cgroup: 자원 격리(cpu, memory) (2006)
- → namespace: 프로세스 격리 (2008)
- → LinuX Container: 최초 Container (2008)
- → docker: root 모드로 설치하고 실행을 해야해서 보안에 문제가 있었음 (2013)→ rootless 기능 추가
- → rkt: 보안강화 → Core OS: 컨테이너 전용 OS (2014)→ fedora Core OS (OS)→ cri-o (container) (2020)
- → docker: root 모드로 설치하고 실행을 해야해서 보안에 문제가 있었음 (2013)→ rootless 기능 추가
- → LinuX Container: 최초 Container (2008)
- → namespace: 프로세스 격리 (2008)
- → cgroup: 자원 격리(cpu, memory) (2006)
- chroot: 유저 격리/파일 격리/네트워크 격리 (1979)
- Linux OS
- Unix → Linux
- → debian(무료) → ubuntu
- → Red Hat(유료) → fedora →RedHat Enterprise Linux(안정화) → CentOS(무료)
- (IMB 인수 이후) fedora →CentOS Stream → Redhat Enterprise Linux →Rocky Linux/Alma Linux
- Unix → Linux
- Cloud Service
- Google Cloud Platform / amazon webservices / Azure / Naver Cloud Platform (퍼블릿한 서비스)
- Virtualization
- KVM, VirtualBox, VMWare, openstack, Xen
---------
초반에 docker가 보안에 약하다는 문제가 있지만 보완이 된다면 문제가 없다고 생각.
그러나, docker의 위세가 조금씩 약해지기 시작했다.
왜? 쿠버네티스에서 docker가 빠진다는 얘기가 계속 나오고 있다.
docker가 쿠버네티스 인터페이스가 잘 맞지 않다.
처음에는 docker를 메인으로 쿠버네티스가 만들어졌지만, 쿠버네티스가 표준화가 되면서 docker가 걸림돌이 되고 있다.
=> 도커도 결국 컨테이너이다.
이후에 나온 대표적인 컨테이너가 containerd랑 cri-o가 있다.
- containerd는 docker에 컨테이너를 만들어 주는 기능이 분리된 것이다.
- containerd는 CNCF(Cloud Native Computing Foundation) 클라우드 분야의 표준을 관장하는 곳에 기부된 상황
→ Graduated project - cri-o는 redhat에서 만들었는데 CNCF에 기부되었다.
→ Incubating project
처음에는 docker 처럼 사용자들이 쓰기 편한 컨테이너가 주목을 했었다.
그러나 이제 점점 컨테이너랑 컨테이너 오케스트레이션이 한 몸처럼 움직이기 시작했다.
그러면서 컨테이너를 직접 다루는 일이 줄어들기 시작했다.
쿠버네티스가 컨테이너 런타임을 알아서 조작을 해주고 있다.
그러나!! docker가 MIRANTIS에 인수되면서 쿠버네티스에 인터페이스를 잘 맞추려고 하고 있기 때문에 빠지지 않게 된다.
중요 포인트
- 쿠버네티스는 현재 표준을 넘어 여러 분야에서 활용되고 있다.
- 쿠버네티스는 컨테이너를 더 쉽게 사용할 수 있게 해준다.
- 컨테이터는 쿠버네티스와의 이넡페이스가 중요하다.
02. 쿠버네티스 흐름으로 이해하는 컨테이너
- Continaer Orchestration
- kube-apiserver : pod 생성해줘
- kubelet: pod안에 컨테이너 보고 container runtime에 컨테이너 생성 요청
- Container
- container runtime
- High Level
- (libcontainer) ← docker
- Low Level
- 이전 (Kernel) ← LXC(LinuX Container) ← libcontainer
=> 도커는 LXC의 기술을 이용한다. - 이후 (Kernel) ← runC ← container-d
- 이전 (Kernel) ← LXC(LinuX Container) ← libcontainer
- High Level
- Kernel
- chroot / cgroup / namespace
- container runtime
LXC는 운영체제를 컨테이너 가상화로 나누기 위한 목적 (for OS)
도커는 App을 독립적인 호나경에서 띄울려고 사용 (for App)
'온라인 강의 > DevOps' 카테고리의 다른 글
섹션 4. 쿠버네티스 무게감 있게 설치하기 (0) | 2024.09.24 |
---|