쿠버네티스 : 2021년 기준 컨테이너 오케스트레이션 시스템 세계의 사실 상 표준

1.1 컨테이너

리눅스는 원래 프로세스별로 자원을 격리해서 사용하는 cgroup과 특정 디렉터리로 권한을 제한하는 chroot 등으로 격리 환경을 구성할 수 있었음

여기에 디스크의 파일 변경 사항을 레이어 형태로 저장하는 파일시스템을 합해 컨테이너라는 개념이 탄생

도커는 컨테이너를 손쉽게 사용할 수 있도록 한 것(container runtime)

Untitled

도커를 이용하면 간단한 명령으로 컨테이너 이미지를 만들고 저장소에 저장 가능

도커를 설치한 호스트에 해당 컨테이너 이미지를 다운로드해서 컨테이너를 실행 가능

1.2 컨테이너 오케스트레이션 시스템

컨테이너를 이용하면 개발 환경과 운영 환경의 차이 때문에 일어나는 많은 장애 방지 가능

하지만 컨테이너 만으로는 실제 상용 서비스를 운영하기 부족 ⇒ 컨테이너 오케스트레이션 시스템 사용

컨테이너 오케스트레이션 시스템으로 상용서비스에 사용할 서버들을 클러스터로 구성하면 서버 1대든 100대든 컨테이너를 한 번의 명령으로 자동 배포 가능

클러스터 일부에 장애가 발생하면 알아서 장애가 발생한 서버에 있는 컨테이너들을 정상 운영 중인 다른 서버로 옮겨서 실행. 장애가 발생한 서버로 향하는 트래픽도 자동으로 중지, 새로 옮긴 컨테이너로 보냄 → 개발자는 장애가 발생한 서버만 고치면 됨

1.3 쿠버네티스

배의 조타수라는 그리스 단어에서 유래

GCP, Azure, AWS에서 k8s 지원

1.4 쿠버네티스의 특징(장점)

1.4.1 선언적 API