쿠버네티스 (kubernetes)
쿠버네티스(kubernetes) 라는 단어를 몇일전 Kubernetes Forum Seoul을 잠여한 지인에게 처음 들었습니다.
저와 같이 쿠버네티스(kubernetes)에 대해 몰랐던 분들이 많을꺼 같아서 밑 링크에 자세히 나와있지만
참조 https://developer.ibm.com/kr/cloud/2019/02/01/easy_container_kubernetes/
제가 해석한대로 간단하게 포스팅 해보려고 합니다.
1. 쿠버네티스 란?
컨테이너화된 workload와 서비스를 관리하기 위한 이식성이 있고 확장가능한 오픈소스 플랫폼.
* woarload(할당량) : 시스템에 의해 실행되어야 할 작업의 할당량.
* 컨테이너 : 애플리케이션과 애플리케이션을 구동하는 환경을 격리한 공간.
2. 쿠버네티스는 왜 컨테이너를 사용할까?
- Traditional Deployment
물리서버 -> 운영체제 -> 애플리케이션, 애플리케이션, ... 애플리케이션
(ex.운영체제 -> 웹서버)
애플리케이션을 물리 서버에서 실행.
문제점 : 한 물리 서버에서 여러 애플리케이션의 리소스 한계를 정의할 방법이 없었기에, 리소스 할당의 문제가 발생.
* 리소스(resource) : 프로그램이 요구하는 자원
- Virtualized Deployment
물리서버 -> 운영체제 -> VM -> 운영체제 -> 애플리케이션
-> VM -> 운영체제 -> 애플리케이션
-> VM -> 운영체제 -> 애플리케이션
문제점 : VM간에 애플리케이션을 격리하고 애플리케이션의 정보를 다른 애플리케이션에서 자유롭게 엑세스 할 수 없음.
- Container Deployment
물리서버 -> 운영체제 -> 컨테이너, 컨테이너, ... 컨테이너 -> 웹서버
위에 그림을 보면 Virtualized Deployment 와 Container Deployment가 비슷해보입니다.
그럼 쿠버네티스는 왜 컨테이너를 사용하는지 알아보겠습니다.
VM(Virtual Machine)과 Container의 차이점
위 사진처럼 VM은 여러개의 운영체제의 사용 할 수있어 여러 개의 환경을 구성 할 수있습니다.
VM은 운영체제가 갖춰져 있고 그 위에 애플리케이션을 구성하고 있어 운영체제간의 접근성이 용이하지 않습니다.
반면 Container는 물리서버의 운영체제 하나를 공유하고 있습니다. 이 부분 말고도 다른 차이점이 있습니다.
- 기민한 애플리케이션 생성과 배포: VM 이미지를 사용하는 것에 비해 컨테이너 이미지 생성이 보다 쉽고 효율적임.
- 지속적인 개발, 통합 및 배포: 안정적이고 주기적으로 컨테이너 이미지를 빌드해서 배포할 수 있고 (이미지의 불변성 덕에) 빠르고 쉽게 롤백할 수 있다.
- 개발과 운영의 관심사 분리: 배포 시점이 아닌 빌드/릴리스 시점에 애플리케이션 컨테이너 이미지를 만들기 때문에, 애플리케이션이 인프라스트럭처에서 디커플된다.
- 가시성은 OS 수준의 정보와 메트릭에 머무르지 않고, 애플리케이션의 헬스와 그 밖의 시그널을 볼 수 있다.
- 개발, 테스팅 및 운영 환경에 걸친 일관성: 랩탑에서도 클라우드에서와 동일하게 구동된다.
- 클라우드 및 OS 배포판 간 이식성: Ubuntu, RHEL, CoreOS, on-prem, Google Kubernetes Engine 및 다른 어디에서든 구동된다.
- 애플리케이션 중심 관리: 가상 하드웨어의 OS에서 애플리케이션을 구동하는 수준에서 OS의 논리적인 자원을 사용하여 애플리케이션을 구동하는 수준으로 추상화 수준이 높아진다.
- 느슨하게 커플되고, 분산되고, 유연하며, 자유로운 마이크로서비스: 애플리케이션은 단일 목적의 머신에서 모놀리식 스택으로 구동되지 않고 보다 작고 독립적인 단위로 쪼개져서 동적으로 배포되고 관리될 수 있다.
- 자원 격리: 애플리케이션 성능을 예측할 수 있다.
- 자원 사용량: 고효율 고집적
'n년차 개발자' 카테고리의 다른 글
27인치 모니터 추천(27Q3 AHIPS 리얼 AdobeRGB 미인) (0) | 2020.02.26 |
---|---|
meta X-UA-Compatible, IE 버전별로 css 적용하기 (0) | 2020.02.20 |
크로스 브라우징 Cross Browsing 이란? (0) | 2020.02.20 |
WBS란? 작업 분할 구조 (0) | 2020.01.10 |
REST API 란 (0) | 2019.12.17 |