살아가는 이유_EU 2024. 12. 4. 09:10
728x90
반응형

쿠버네티스(Kubernetes)는 컨테이너화된 애플리케이션을 자동으로 배포, 확장, 관리하는 오픈소스 플랫폼입니다. Google이 개발해 2014년 오픈소스로 공개했으며, 현재는 **클라우드 네이티브 컴퓨팅 재단(CNCF)**에서 관리하고 있습니다. 주로 컨테이너 오케스트레이션 도구로 사용되며, Docker와 같은 컨테이너 런타임과 함께 동작합니다.

주요 개념

  1. 컨테이너(Container):
    • 애플리케이션과 그 실행 환경을 패키지화하여 어디서든 실행 가능.
    • Docker는 가장 널리 사용되는 컨테이너 기술.
  2. 노드(Node):
    • 애플리케이션이 실행되는 물리적/가상 서버.
    • 마스터 노드: 클러스터 관리와 제어를 담당.
    • 워커 노드: 실제 컨테이너 워크로드를 실행.
  3. 클러스터(Cluster):
    • 노드들의 집합.
    • 쿠버네티스는 클러스터를 기반으로 컨테이너를 오케스트레이션.
  4. 파드(Pod):
    • 쿠버네티스의 최소 배포 단위.
    • 하나 이상의 컨테이너가 포함되며, 동일한 네트워크와 스토리지를 공유.
  5. 서비스(Service):
    • 파드의 집합에 대해 네트워크 접근을 제공하는 안정적인 엔드포인트.
  6. 디플로이먼트(Deployment):
    • 파드와 컨테이너를 선언적으로 관리.
    • 애플리케이션 업데이트와 롤백이 가능.
  7. 네임스페이스(Namespace):
    • 클러스터 리소스를 논리적으로 구분하는 단위.
    • 다중 사용자와 프로젝트를 지원.
  8. 컨트롤러(Controller):
    • 애플리케이션의 상태를 지속적으로 모니터링하고 원하는 상태를 유지.

쿠버네티스의 주요 기능

  1. 자동화된 배포 및 관리:
    • 설정한 상태에 따라 애플리케이션 배포를 자동화.
    • 리소스를 효율적으로 사용하도록 조정.
  2. 확장성:
    • 수평 확장(Horizontal Scaling)을 통해 파드를 자동으로 추가하거나 제거.
  3. 셀프 힐링(Self-Healing):
    • 실패한 컨테이너를 자동으로 재시작.
    • 사용 불가능한 노드를 대체.
  4. 서비스 디스커버리와 로드 밸런싱:
    • 서비스 디스커버리 도구 없이도 파드 간의 통신 가능.
    • 클러스터 내부에서 로드 밸런싱 수행.
  5. 롤아웃 및 롤백:
    • 애플리케이션 배포를 단계적으로 실행.
    • 문제가 발생하면 이전 상태로 롤백.
  6. 스토리지 오케스트레이션:
    • 다양한 스토리지 시스템(CSI)과 통합.
    • 로컬, 클라우드, 네트워크 스토리지 지원.

쿠버네티스의 장점

  • 이식성: 온프레미스와 클라우드 간에 쉽게 애플리케이션을 이전 가능.
  • 확장성: 대규모 애플리케이션 관리에 적합.
  • 탄력성: 장애가 발생한 상태에서도 서비스를 유지.
  • 생태계: Helm, Istio, Prometheus와 같은 도구와 통합 가능.

쿠버네티스 사용 사례

  1. 마이크로서비스 관리:
    • 복잡한 마이크로서비스 구조를 손쉽게 배포 및 관리.
  2. CI/CD 파이프라인:
    • Jenkins, GitLab CI/CD와 연동하여 지속적인 배포 환경 구축.
  3. 멀티 클라우드 및 하이브리드 클라우드:
    • AWS, GCP, Azure 등 다양한 클라우드 제공업체와 통합.
  4. 데이터 분석 및 AI/ML:
    • GPU 및 대규모 데이터 처리 클러스터에 적합.

쿠버네티스의 단점

  • 복잡성:
    • 초기 설정과 학습 곡선이 가파름.
    • 많은 구성 요소와 개념으로 인해 관리가 어려울 수 있음.
  • 리소스 요구량:
    • 관리 노드와 워커 노드 모두 상당한 하드웨어 리소스를 요구.
  • 운영 부담:
    • 높은 수준의 관리 및 모니터링이 필요.

쿠버네티스 배포 방식

  1. 매니지드 서비스:
    • AWS EKS, Google Kubernetes Engine(GKE), Azure Kubernetes Service(AKS) 등의 클라우드 서비스.
  2. 자체 구축:
    • On-Premise 환경에서 쿠버네티스를 직접 설치 및 관리.
  3. K3s:
    • 경량화된 쿠버네티스, 소규모 환경에 적합.
728x90
반응형