k8s

DevOps를 위한 쿠버네티스 마스터 강의 정리(1)

Joon0464 2024. 3. 12. 18:02

아래 강의에서 필요하거나 핵심적인 내용만 정리하였습니다.

https://inf.run/wAfB2

 

데브옵스(DevOps)를 위한 쿠버네티스 마스터 강의 - 인프런

컨테이너 기반 오픈 소스 가상화 프로젝트인 "쿠버네티스"를 이용한 컨테이너 환경의 분산 시스템을 탄력적으로 실행하기 위한 프레임 워크를 활용하는 방법을 입문부터 활용까지 다룹니다., [

www.inflearn.com

- 범위: 색션 0: 쿠버네티스 이슈 ~ 마이크로서비스 성공 사례-1

 

 

클라우드 네이티브란?


  • 클라우드의 장점을 최대한 활용하여 정보 시스템을 구축 및 실행하는 환경
  • 클라우드 네이티브 기술, 애플리케이션, 아키텍처, 개발 방법론, 조직, 프로세스 등 다양한 용어와 결합하여 다양한 의미로 사용
  • 쿠버네티스는 클라우드 네이티브 구성요소를 완전히 수행할 수 있는 플렛폼
  • 조직이 퍼블릭, 프라이빗 그리고 하이브리드 클라우드와 같은 현대적이고 동적인 환경에서 확장 가능한 애플리케이션을 개발하고 실행할 수 있게 해줌

 

 

 

기존 애플리케이션 vs 클라우드 네이티브 애플리케이션


1. 기존 애플리케이션

  • 모놀리식 구조 -> 여러 서비스 단위(회원가입, 장바구니, 결제, 등등)가 하나의 소스코드로 개발되어 있는 형태
  • 크고 조밀한 결합
  • 물리서버, VM 중심 환경
  • 수직 확장 방식 사용 (Scale-up)
  • 인프라 의존적
  • 폭포수(Waterfall) 개발 방법 사용
  • 수작업 배포로 인한 긴 시간 소요
  • 단절된 개발, 운영, 보안팀

2. 클라우드 네이티브 애플리케이션

  • 마이크로서비스 구조 -> 여러 서비스 단위별로 각각의 컨테이너에 올라가 각 컨테이너가 느슨하게 결합되어 전체 서비스가 동작하는 형태
  • 느슨한 결합, 서비스 기반 구조
  • 가상 컨테이너 환경
  • 수평 확장 방식 사용 (Scale-out)
  • 인프라 독립적이고 이식성이 보장됨
  • 애자일(Agile) 개발 방법 사용
  • CI/CD 자동화, 짧은 시간 & 지속적 배포
  • DevOps 협업

 

 

모놀로식 서비스 아키텍처의 단점


  • 하나의 애플리케이션에 여러 서비스가 존재하기 때문에 인기 있는 특정 서비스로 인해 부하가 발생하여 Scale-out 하면 인기 없는 서비스까지 확장된다.
  • 종속적인 라이브러리 충돌이 잦음
  • 약간의 수정에도 전체 애플리케이션을 빌드 및 배포해야 함

 

마이크로서비스 아키텍처의 장점


  • 각각의 기능을 하나의 서비스 단위로 구분하여 개발하기 때문에 개발자가
  • 특정 비즈니스 로직에 대해서 집중하여 개발이 가능하여 빠른 개발이 가능
  • 서비스 단위로 개발, 패키징, 빌드, 테스트, 배포로 각 서비스마다 유연한 스케줄링 가
  • 서비스 단위로 스케일 아웃이 가능 (고효율 저비용 Scale-out 구조)
  • 장애를 하나의 모듈에만 고립시켜 전체 서비스에는 영향을 미치지 않음
  • 전체 애플리케이션이 아닌 서비스 단위로 Scale-in/out을 하기 때문에 스케일 시간이 단축됨

-> 하지만 분산 시스템 환경에서 트랜젝션 보장, 테스트, 배포, 관리가 복잡해지는 문제가 있음 -> Kubernetes 의 필요성 대