개발일기/CS(면접)

쿠버네티스란?

w.llama 2024. 9. 9. 22:31

쿠버네티스란?

컨테이너를 쉽고 빠르게 배포. 확장하고 관리를 자동화 해주는 오픈소스 플랫폼.

쿠버네티스 와 Docker Compose 차이점과 유사점

컨테이너를 관리하고 배포한다는점에서 비슷하다 느껴 두 기술의 차이점을 조사해보았고 다음 표와 같이 정리했다.

특징 Docker Compose 쿠버네티스
차이점 규모 단일 호스트에서 작은 규모의
애플리케이션
여러  호스트에 걸친 대규모
분산 시스템
복잡성 상대적으로 단순하고 배우기 쉬움 더 복잡하지만 강력한 기능 제공
기능 기본적인 컨테이너 관리기능 자동 스케일링, 롤링 업데이트,
자가복구 등 고급기능
네트워킹 단일 호스트 내
네트워킹에 중점
복잡한 다중 호스트
네트워킹 지원
상태 관리 제한적인 상태 관리 포드, 레플리 카셋등을 통한
강력한 상태 관리
유사점 컨테이너 오케스트레이션 여러 컨테이너를 관리하고 조율
선언적 구성 YAML 파일을 사용하여 애플리케이션 구조을 정의
서비스 정의  애플리케이션을 구성하는 서비스를 정의 할 수 있음

주요 개념

  • 파드(Pod)
    가장 작은 배포 단위, 하나 이상의 컨테이너 포함
  • 서비스(Service)
    파드 집합에 대한 단일 진입점 제공
  • 레플리카셋(ReplicaSet)
    지정된 수의 파드 복제본 유지
  • 디플로이먼트(Deployment)
    애플리케이션의 배포와 업데이트 관리
  • 노드(Node)
    노드란 하나의 VM(Virtual Machine)을 의미
    • 워커 노드(Worker Node)
      컨테이너화 된 애플리케이션을 실행하는 노드
    • 마스터 노드(Matser Node)
      워커 노드를 관리하는 노드
  • 볼륨 (Volume)
    데이터 저장 및 파드 간 데이터 공유
  • 네임스페이스 (Namespace)
    클러스터 자원의 논리적 분할

주요 특징

  • 컨테이너 오케스트레이션:
    • 여러 컨테이너를 관리하고 조율합니다.
    • 컨테이너의 배치, 재시작, 복제 등을 자동화합니다.
  • 클러스터 구조:
    • 마스터 노드
      클러스터 전체를 제어 중심
      • 주요 컴포넌트
        • API 서버: 모든 작업의 중심점. 내/외부 통신 관리
        • etcd: 클러스터의 모든 데이터를 저장하는 분산 키-값 저장소
        • 스케줄러: 새로운 파드를 노드에 할당
        • 컨트롤러 매니저: 다양한 컨트롤러 실행 (노드 컨트롤러, 레플리케이션 컨트롤러 등)
    • 워커 노드
      실제 애플리케이션이 실행되는 노드
      • 주요 컴포넌트
        • Kubelet: 노드의 주요 에이전트, 컨테이너 실행 관리
        • Kube-proxy: 네트워크 프록시와 로드 밸런서 역할
        • 컨테이너 런타임: Docker, containerd 등 컨테이너 실행 환경
  • 자동 스케일링:
    • 리소스 사용량에 따라 파드의 수를 자동으로 조절
  • 자가 복구:
    • 실패한 컨테이너를 자동으로 재시작
    • 응답하지 않는 노드의 워크로드를 다른 노드로 이동
  • 로드 밸런싱:
    • 네트워크 트래픽을 여러 파드에 분산
  • 롤링 업데이트 및 롤백:
    • 무중단 업데이트와 필요시 이전 버전으로 롤백 지원
  • 구성 관리:
    • ConfigMaps와 Secrets를 통한 애플리케이션 설정 관리
  • 스토리지 오케스트레이션:
    • 로컬 스토리지, 클라우드 제공업체의 스토리지 등 다양한 스토리지 시스템 지원
  • 선언적 관리:
    • YAML 또는 JSON 파일을 통해 원하는 상태를 선언적으로 정의

쿠버네티스 구조

https://kubernetes.io/docs/concepts/_print/

 

참조

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

 

쿠버네티스란 무엇인가?

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 쿠버네티스는 크고 빠르게 성장하

kubernetes.io

https://tech.ktcloud.com/67

 

쿠버네티스, 이것만 알면 된다! - #1 쿠버네티스란 무엇일까?

쿠버네티스란 무엇일까요? 쿠버네티스란 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈 소스 시스템입니다. 출처: https://kubernetes.io/ 1주일에 수십억 개의 컨테이너를 생성

tech.ktcloud.com

https://subicura.com/2019/05/19/kubernetes-basic-1.html

 

쿠버네티스 시작하기 - Kubernetes란 무엇인가?

쿠버네티스는 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼입니다. 1주일에 수십억 개의 컨테이너를 생성하는 구글이 내부 배포시스템으로 사용하던 borg를 기

subicura.com

 

'개발일기 > CS(면접)' 카테고리의 다른 글

HTTPS 란?  (0) 2024.09.12
공간 복잡도란?  (0) 2024.09.10
시간 복잡도란?  (0) 2024.09.08
OSI 7계층 이란?  (0) 2024.08.21
Transaction 전파 전략  (0) 2024.08.14