-
쿠버네티스(Kubernetes) 란?Kubernetes 2022. 1. 6. 22:08728x90
과거에는 대부분의 서비스들이 하나의 큰 프로그램이였다. 그래서 개발자의 코드 수정 이후 이 큰 프로그램을 패키징하여 배포하고, 유지 보수하는 일이 여간 쉽지 않았다. 그래서 배포 주기는 점점 길어졌고, 효율성은 떨어져갔다.
쿠버네티스는 하드웨어 인프라를 추상화하고 데이터 센터 전체를 하나의 컴퓨팅 리소스로 제공한다. 쉽게 말해서 버튼 하나, 명령어 하나 만으로 컴퓨팅 머신을 세팅하고, 프로그램을 배포/실행 할 수 있게된 것이다. 이로 인해 컴퓨팅 리소스 및 애플리케이션 간의 통신이 원활해지고, 마이크로 아키텍쳐가 가능해졌다.
모놀리시스 애플리케이션
- 하나의 큰 프로그램
- 하나로 강하게 결합되어 있기에 작은 수정에도 모든 코드를 배포해야함
- 규모가 커질수록 비효율적
- 하나의 하드웨어 컴퓨터에 올라가있으므로 수직적 확장(Scale up)을 할 수 밖에 없음 (수평적 확장도 가능은 하지만 코드 수정 없이 하기란 쉽지 않다.)
마이크로서비스
- 작은 서비스들로 큰 애플리케이션을 구성하는 방법
- 수정 범위에 해당되는 서비스만 배포할 수 있음
- 수평적 확장(Scale out)이 가능
- 서비스 간의 통신을 잘 정의하는것이 관건
- 서비스와 같은 배포 컴포넌트가 많아지면 의사결정이 어려워질 수 있음
- 디버깅과 오류 추적이 어려움
- 서로 다른 서비스가 같은 라이브러리의 다른 버전을 사용할 경우 종속성 관리가 어려움
'Kubernetes' 카테고리의 다른 글
[Kubernetes] Minikube 설치 및 애플리케이션 실행 (0) 2022.01.12 [Kubernetes] Spring 프로젝트 Docker hub 올려보기 (0) 2022.01.12 [Kubernetes] 쿠버네티스란 (0) 2022.01.10 [Kubernetes] 도커란? (0) 2022.01.07 [Kubernetes] 컨테이너의 이해 (0) 2022.01.06