컨테이너 인프라 환경이란

컨테이너 인프라 환경 구성 도구 5: 도커, 쿠버네티스, 젠킨스, 프로케테우스와 그라파나

쿠버네티스, 리눅스만큼이나 IT 전반적으로 파급 효과가 크다고 하는데 무엇일까? MLOps에 자주 등장하는 기술스택이라 오늘부터 공부해보기로 했습니다!!

쿠버네티스의 필요성

대규모 서비스를 운영할 때, 서버자원을 효율적으로 사용하기 위해 가상화 기술 이 필요하다.

1) 가상화 기술


가상화 기술 특 징 단 점
리눅스의 자원격리기술 프로세스(서비스)간 자원을 독립적으로 사용성이 떨어짐 (어려움)
VM 가상화기술 자동화 가능 시스템 효율이 떨어짐 (무거운 Guest OS를 띄어야 함)
Container 가상화기술 서비스간 자원격리에 별도의 OS 필요없음 (빠르고 효율적임) 개별의 서비스에 컨테이너로 가상화시켜 배포함. 따라서, 여러 서비스를 운영할 때 컨테이너 오케스트레이터 필요
Container 오케스트레이터 쿠버네티스가 끝판왕 (여러 기업의 협업)  
k8s 클라우드서비스 쿠버네티스 환경이 설치되어 있는 인프라를 서비스 함
(쿠버네티스 설치할 필요없음)
(쿠버네티스 설치해서 자신의 운영환경에 맞게 최적화할 수 있음)
 


2) 쿠버네티스 (Admin / User)

쿠버네티스는 컨테이너화된 애플리케이션을 배포, 관리, 확장할 때 수반되는 다수의 수동 프로세스를 자동화하는 컨테이너 오케스트레이션 플랫폼이다.

쿠버네티스 오케스트레이션을 사용하면 여러 컨테이너에 걸쳐 애플리케이션 서비스를 구축하고 클러스터 전체에서 컨테이너의 일정을 계획하고 이러한 컨테이너를 확장하여 컨테이너의 상태를 지속적으로 관리할 수 있다.

사용자입장에서 쿠버네티스 기능은 다음과 같이 구분할 수 있다.


Container 가상화 기술 (Docker)

(1) OS(Host OS)에서 제공하는 자원격리기술을 이용해서 container라는 단위로 서비스를 분리할 수 있게 하고, (2) 개발환경에 대해 걱정없이 배포가 가능하다.

여러 컨테이너간의 host 자원을 분리는 리눅스 고유 기술인 namespace와 cgroup을 사용해서 격리하는 것이다.

리눅스 자원격리기술  
namespace 커널 영역 분리 mnt, pid, net, ipc, uts, user
cgroup 자원 영역 분리 memory, CPU, I/O, network


컨테이너 인프라 환경

다시 큰 맥락으로 돌아와서, 컨테이너 기술을 활용하여 애플리케이션을 개발, 배포, 실행하고 관리하기 위한 환경을 컨테이너 인프라 환경이라고 한다.

  1. 버추얼박스와 vagrant를 통해 가상화 인프라 환경을 구축하고,

  2. 쿠버네티스 를 통해 다수의 컨테이너를 관리,

  3. 젠킨스 를 통해 프로그램 지속적 통합과 배포(CI/CD)

  4. 프로메테우스로 상태 데이터를 수집하고, 그라파나로 시각화하하여 모니터링


이미지 출처: Source


해당 게시글은 ‘대세는 쿠버네티스 초중급편’ 강의와 ‘컨테이너 인프라 환경 구축을 위한 쿠버네티스.도커_조훈’ 도서를 바탕으로 작성하였습니다.

Categories:

Updated:

Leave a comment