쿠버네티스(Kubernetes)
'컨테이너(Container)화된 애플리케이션을 효율적으로 배포하고 운영하기 위해 설계된 오픈 소스 플랫폼'이다.
공식 설명: 컨테이너화 된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼
- Kubernetes.io
쿠버네티스의 필요성
컨테이너 운영환경이 필요한 이유에 대해서는 조대협 선생님께서 잘 정리해놓으셔서 블로그 글의 내용을 인용하였다.
컨테이너를 하드웨어나 VM에 배포하여 사용하게 될 경우 적은 수라면 수동으로 직접 배포하면 되지만, 하드웨어와 컨테이너의 수가 많아지면 이 컨테이너를 어디에 배포해야 하는지에 대한 결정이 필요하다.
애플리케이션의 특성에 따라서, 같은 물리 서버에 배포가 되어야 하거나 또는 가용성을 위해서 일부러 다른 물리 서버로 배포되어야 하는 일이 있는데, 이렇게 컨테이너를 적절한 서버에 배포해주는 역할을 스케쥴링이라고 한다.
- 조대협
내가 진행해온 프로젝트들은 대부분 온프레미스(On-premise) 환경에서 운영되어왔고, 또한 클라우드 기반 서비스들 역시 소수의 컨테이너 환경에서 기업 내부용 도로 사용되어 왔기 때문에 폭발적인 인프라에 대한 수요가 많이 일어나지 않았다. 하지만 스타트업에서 B2C 기반 서비스를 준비해오면서 트래픽(동시접속자에 따른)에 탄력적으로 대응하기 위해서는 이러한 기술들에 대한 이해 및 적용이 반드시 필요하다고 생각한다.
쿠버네티스 기능
- 배포 계획에 맞춰 애플리케이션을 신속하게 배포 가능
- 컨테이너 개수, CPU 사용률, 메모리 사용량을 설정 가능
- 저장공간, 네트워크 접근 제어, 로드 벨런싱 기능 설정 가능
- 가동 중인 애플리케이션을 스케일 업/다운 가능
- 요청이 많을 때 -> 컨테이너 수를 늘림
- 요청이 적을 때 -> 컨테이너 수를 줄여서 자원 점유율을 낮춤
- 새로운 버전의 애플리케이션을 무정지로 업그레이드 가능
- 하드웨어 가동률을 높여 자원 낭비를 줄임
쿠버네티스 특징
- 다양한 인프라 환경에서 쿠버네티스를 사용 가능
- 퍼블릭 클라우드, 프라이빗 클라우드, 멀티 클라우드, 하이브리트 클라우드(온프레미스 + 퍼블릭 클라우드), 온프레미스
- 높은 유연성과 확장성
- 마이크로 서비스화된 애플리케이션에 최적화된 실행 환경
- 느슨한 결합에 의한 유연성과 교체 용이성
- 다양한 스펙의 서버가 혼재하는 클러스터에서 사용 가능 (알아서 판단하여 애플리케이션을 배치하기 때문으로 보임)
- 서버의 정지, 추가, 제거가 용이함
- 저장소나 로드밸런서의 동적 프로비저닝(자원 준비과정)
- 퍼블릭 클라우드 API와 연동한 쿠버네티스 조작
- 고가용성과 성능 관리
- 서버 정지 시 애플리케이션 재배포 자동화
- 애플리케이션 이상 종료 시 자동 재기동
- 필요한 인스턴스의 개수를 유지
- 높은 부하에서 자동 스케일 조정
다음 글에서는 쿠버네티스가 해결하는 과제에 대해서 정리하도록 한다.
참고자료
[1] 조대협의 블로그 | 링크
쿠버네티스 #1 - 소개
Kubernetes #1 - 소개 조대협 (http://bcho.tistory.com) 배경 도커와 쿠버네티스를 알게 된건 수년전인데, 근래에 들어서 다시 쿠버네티스를 보기 시작하였다. 컨테이너 기반의 환경은 배포에 장점이 있고
bcho.tistory.com
[2] 15단계로 배우는 도커와 쿠버네티스 | 타카라 마호 | 2020.10 | 링크
15단계로 배우는 도커와 쿠버네티스 - 교보문고
이 책은 컨테이너 기술에 처음 입문하는 독자도 체계적으로 실력을 쌓아갈 수 있도록 도커부터 시작하여 쿠버네티스의 전반적인 기능을 기초부터 단계별로 학습할 수 있도록 구성되어 있다. 독
www.kyobobook.co.kr
[3] kubernetes.io | 링크
개요
쿠버네티스와 그 컴포넌트에 대한 하이-레벨(high-level) 개요를 제공한다.
kubernetes.io
'클라우드 컴퓨팅 & NoSQL > Kubernetes' 카테고리의 다른 글
쿠버네티스(Kubernetes) 공식 튜토리얼 #3 (0) | 2021.04.01 |
---|---|
쿠버네티스( Kubernetes) 공식 튜토리얼 #2 (0) | 2021.04.01 |
쿠버네티스( Kubernetes) 공식 튜토리얼 #1 (0) | 2021.03.31 |
쿠버네티스 컴포넌트(component) (0) | 2021.03.30 |
쿠버네티스(Kubernetes)가 해결하는 과제 (0) | 2021.03.29 |