데브옵스(DevOps)를 위한 쿠버네티스 마스터/쿠버네티스 들어가기

쿠버네티스 소개

webmaster 2022. 6. 2. 12:13
728x90
  • 오랜 세월 동안 구글은 보그(Borg)라는 내부 시스템을 개발
  • 애플리케이션 개발자와 시스템 관리자가 수천 개의 애플리케이션과 서비스를 관리하는 데 도움
  • 조직 규모가 클 때 엄청난 가치를 발휘
  • 수십만 대의 시스템을 가동할 때 사용률이 조금만 향상돼도 수백만 달러의 비용 절감 효과
  • 구글은 보그와 오메가를 15년 동안 비밀로 유지
  • 2014년 구글 시스템을 통해 얻은 경험을 바탕으로 한 오픈소스 시스템인 '쿠버네티스'를 출시

인프라의 추상화

쿠버네티스를 통해 추상화 하여 관리

  • 컨테이너 시스템에서 컨테이너 애플리케이션을 쉽게 배포, 관리하도록 돕는 소프트웨어 시스템 
  • 기본 인프라를 추상화해 개발 및 운영 팀의 개발, 배포, 관리를 단순화 
  • 모든 노드가 하나의 거대한 컴퓨터인 것처럼 수천개의 컴퓨터 노드에서 소프트웨어 애플리케이션을 실행

쿠버네티스 장점

  • 애플리케이션 배포 단순화
    • 특정 베어메탈을 필요로 하는 경우(예: SSD/HDD)
  • 하드웨어 활용도 극대화
    • 클러스터의 주변에 자유롭게 이동하여 실행 중인 다양한 애플리케이션 구성 요소를 클러스터 노드의 가용 리소스에 최대한 맞춰 서로 섞고 매치 
    • 노드의 하드웨어 리소스를 최상으로 활용
  • 상태 확인 및 자가 치유
    • 애플리케이션 구성 요소와 실행되는 노드를 모니터링하고 노드 장애 발생 시 다른 노드로 일정을 자동으로 재조정 
    • 운영자는 정규 근무 시간에만 장애가 발생한 노드를 처리(일이 편해진다!) 
  • 오토스케일링 
    • 개별 애플리케이션의 부하를 지속적으로 모니터링할 필요 없이
    • 자동으로 리소스를 모니터링하고 각 애플리케이션에서 실행되는 인스턴스 수를 계속 조정하도록 지시 가능
  • 애플리케이션 개발 단순화 
    • 버그 발견 및 수정 (완전히 개발환경과 같은 환경을 제공하기 때문)
    • 새로운 버전 출시 시 자동으로 테스트, 이상 발견 시 롤 아웃

쿠버네티스 역할

개발자 돕기: 핵심 애플리케이션 기능에 집중 

  • 애플리케이션 개발자가 특정 인프라 관련 서비스를 애플리케이션에 구현하지 않아도 됨
  • 쿠버네티스에 의존해 서비스 제공 
    • 서비스 검색, 확장, 로드 밸런싱, 자가 치유, 리더 선출 등 
  • 애플리케이션 개발자는 애플리케이션의 실제 기능을 구현하는 데 주력
  • 인프라와 인프라를 통합하는 방법을 파악하는데 시간을 낭비할 필요 없음

운영 팀 돕기: 이 효과적으로 리소스를 활용

  • 실행을 유지하고 서로 통신할 수 있도록 컴포넌트에 정보를 제공
  • 애플리케이션이 어떤 노드에서 실행되는 상관없음(신경 쓰지 않아도 됨) 
  • 언제든지 애플리케이션을 재배치 가능 
  • 애플리케이션을 혼합하고 매칭시킴으로써 리소스를 매칭
728x90