클라우드/Docker & K8s

(1) - 쿠버네티스란 무엇인가?

게임이 더 좋아 2025. 4. 17. 22:12
반응형
728x170

https://kubernetes.io/ko/docs/concepts/overview/

 

쿠버네티스란 무엇인가?

 

 

전통적 배포

  • 단일 물리 서버 기반 실행
    하나의 물리 서버에서 여러 애플리케이션을 실행하는 방식.
  • 리소스 충돌 문제 발생
    특정 애플리케이션 인스턴스가 서버 자원을 독점함에 따라, 다른 애플리케이션 성능 저하 문제 발생.
  • 물리 서버 분리 실행 시도
    각 애플리케이션을 별도의 물리 서버에서 실행하려는 방식 도입. 하지만 리소스 활용률 저하 및 높은 유지 비용 문제 발생.

가상화된 배포

  • 가상 머신(VM) 기술 도입
    단일 물리 서버에서 여러 VM을 실행하여 리소스를 효율적으로 분할하는 방식.
  • 격리성과 보안성 확보
    VM 간 애플리케이션 격리를 통해 정보 접근 제한 및 보안성 향상.
  • 유연한 리소스 활용 가능성 확보
    리소스를 클러스터화하여 필요 시 가상 머신 단위로 유연한 운영 가능.
  • 독립적인 시스템 구성 가능
    각 VM은 자체 OS를 포함하며 독립적으로 구성된 완전한 시스템으로 간주됨.

컨테이너 개발

  • 운영체제 공유 기반의 경량화 구조
    컨테이너는 VM과 유사하나, OS를 공유하여 보다 가볍고 빠른 실행 환경 제공.
  • 이식성과 일관성 확보
    클라우드, 온프레미스, 다양한 OS 배포판 간 동일한 동작 보장.
  • 주요 특징
    • 애플리케이션 이미지 생성 및 배포의 기민성
    • CI/CD와의 자연스러운 통합
    • 개발-운영 관심사 분리 구조
    • OS 수준을 넘어선 애플리케이션 상태 관측 가능성 확보
    • 개발-테스트-운영 환경의 일관성
    • 마이크로서비스 기반의 느슨한 결합 및 유연한 배포 구조
    • 자원 격리를 통한 예측 가능한 성능
    • 높은 자원 효율성과 집적도 제공

쿠버네티스의 등장 배경과 역할

  • 컨테이너 관리 자동화 필요성 대두
    컨테이너는 뛰어난 기술이나, 장애 시 자동 복구 및 확장 등을 수동으로 관리하는 것은 비효율적임.
  • 분산 시스템 실행 프레임워크로서의 쿠버네티스
    애플리케이션 배포, 스케일링, 자가 복구, 배포 전략 관리 등을 포함한 자동화된 인프라 운영 환경 제공.

쿠버네티스의 주요 기능

  • 서비스 디스커버리 및 로드 밸런싱
    DNS/IP 기반의 서비스 노출 및 로드 밸런싱 지원
  • 스토리지 오케스트레이션
    로컬, 퍼블릭 클라우드 등 다양한 스토리지 마운트 자동화 지원.
  • 롤아웃 및 롤백 자동화
    선언적 상태 기술을 기반으로, 원하는 상태로 시스템을 점진적 또는 즉각적으로 전환 가능.
  • 빈 패킹 최적화 (bin packing)
    각 컨테이너의 자원 요청을 기반으로 최적의 노드 배치 수행.
  • 자가 복구(Self-Healing)
    실패한 컨테이너 자동 재시작 및 교체, 상태 점검 미통과 시 종료 등의 복구 처리 자동화.
  • 시크릿 및 구성 관리
    민감 정보(예: OAuth 토큰, SSH 키 등)와 애플리케이션 설정을 분리 관리하고 재배포 없이 적용 가능

 

-> 어떻게 위 기능들을 지원하느냐가 기술의 근간

 


쿠버네티스가 아닌 것들

  • PaaS(Platform as a Service)가 아님
    로깅, 모니터링, 알림 등은 기본 제공하지 않으며 사용자가 선택적으로 통합.
  • CI/CD 시스템이 아님
    소스 코드 빌드나 배포를 직접 수행하지 않음. 외부 시스템과의 연동 필요.
  • 미들웨어나 DB와 같은 애플리케이션 레벨 서비스 미제공
    Spark, Kafka, MySQL 등은 쿠버네티스 위에서 구동 가능하나, 자체 제공 기능은 아님.
  • 로깅 및 모니터링 기능 포함하지 않음
    메트릭 수집은 가능하나, 외부 솔루션과의 통합을 통해 완성됨.
  • 기본 설정 언어 미제공
    Jsonnet 등 고정된 언어나 구성 시스템 요구 없음.
  • 머신 관리 자동화 시스템 아님
    VM 및 하드웨어 관리 기능은 직접 포함되지 않음.
  • 쿠버네티스는 단순한 오케스트레이션 시스템이 아님
    •  독립적이고 조합 가능한 제어 프로세스들로 구성
      • 프로세스는 지속적으로 현재 상태를 입력받은 의도한 상태로  유지하려고 함
    • 중앙 집중형 제어 시스템의 불필요성
      • 분산적이고 선언적인 방식으로 구성되어 확장성, 회복성, 견고성 확보 가능.

 

 

728x90
반응형
그리드형

'클라우드 > Docker & K8s' 카테고리의 다른 글

(2-1) - kube apiserver  (0) 2025.04.17
(2) - 쿠버네티스 컴포넌트 개요  (0) 2025.04.17
Docker_Window  (0) 2023.01.21
구글 스터디잼  (0) 2022.10.21
K8s, Kubernetes - 기본 개념 (추가 중)  (0) 2022.10.06