쿠버네티스(Kubernetes)란

salgu·2023년 2월 2일
2

kubernetes

목록 보기
1/16
post-thumbnail

설명


쿠버네티스란

쿠버네티스는 여러개의 컨테이너화된 애플리케이션을 여러 서버(쿠버네티스 클러스터)에 자동으로 배포, 스케일링 및 관리해주는 오픈소스 시스템

클러스터란

여러 개의 서버를 하나로 묶은 집합, 하나의 서버처럼 동작

쿠버네티스 클러스터란


애플리케이션 컨테이너를 배포하기 위한 서버(Node)의 집합

'쿠버네티스에 애플리케이션 컨테이너를 배포한다'란?

쿠버네티스 오브젝트 Manifest 파일을 작성해서 마스터 노드에 있는 API Server에게 요청을 보내는 행위

Master 노드의 Control Plane(역할)

클러스터의 상태를 저장하고 관리

  • etcd (key-value data store)
    • 클러스터에 배포된 애플리케이션 실행 정보를 저장
  • API Server
    • 클러스터의 상태 조회, 변경을 위한 API 인터페이스 제공
  • Scheduler
  • Controller Managers

Wocker 노드의 역할

  • 컨테이너 실행을 담당
    • Kublelet, Container Runtime(Docker)
    • kube-proxy



쿠버네티스가 제공하는 기능


자동화된 빈 패킹

컨테이너화된 작업을 실행하는데 사용할 수 있는 쿠버네티스 클러스터 노드를 제공합니다.
각 컨테이너가 필요로 하는 CPU와 메모리(RAM)를 쿠버네티스에게 지사합니다.
쿠버네티스는 컨테이너를 노드에 맞추어서 리소스를 가장 잘 사용할 수 있도록 해줍니다.

자동화된 복구

쿠버네티스는 실패한 컨테이너를 다시 시작하고, 컨테이너를 교체하며, '사용자 정의 상태 검사'에 응답하지 않는 컨테이너를 죽이고, 서비스 준비가 끝날 때까지 그러한 과정을 클라이언트에 보여주지 않습니다.

자동화된 롤아웃과 롤백

쿠버네티스를 사용하여 배포된 컨테이너의 원하는 상태를 서술할 수 있으며 현재 상태를 원하는 상태로 설정한 속도에 따라 변경할 수 있습니다.
예를 들어 쿠버네티스를 자동화해서 배포용 새 컨테이너를 만들고, 기존 컨테이너를 제거하고, 모든 리소스를 새 컨테이너에 적용할 수 있습니다.





reference:
https://kubernetes.io/ko/docs/home/
Kubernetes와 Docker로 한 번에 끝내는 컨테이너 기반 MSA

profile
https://github.com/leeeesanggyu, leeeesanggyu@gmail.com

0개의 댓글