컨테이너 인프라 환경이란
컨테이너 인프라 환경 구성 도구 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 |
컨테이너 인프라 환경
다시 큰 맥락으로 돌아와서, 컨테이너 기술을 활용하여 애플리케이션을 개발, 배포, 실행하고 관리하기 위한 환경을 컨테이너 인프라 환경이라고 한다.
-
버추얼박스와 vagrant를 통해 가상화 인프라 환경을 구축하고,
-
쿠버네티스 를 통해 다수의 컨테이너를 관리,
-
젠킨스 를 통해 프로그램 지속적 통합과 배포(CI/CD)
-
프로메테우스로 상태 데이터를 수집하고, 그라파나로 시각화하하여 모니터링
이미지 출처: Source
해당 게시글은 ‘대세는 쿠버네티스 초중급편’ 강의와 ‘컨테이너 인프라 환경 구축을 위한 쿠버네티스.도커_조훈’ 도서를 바탕으로 작성하였습니다.
Leave a comment