Kubernetes 기초 (1) - 쿠버네티스와 클러스터 방식

이것저것 개발자·2022년 4월 12일
0

kubernetes 기초

목록 보기
1/16

쿠버네티스가 왜 필요할까?

배포해야 할 마이크로서비스가 수백 개인 경우에 사람이 처리할 수 있을까?
수많은 마이크로서비스를 여러 서버에 효율적으로 배치하는 것은 어렵다.

여러 서버와 마이크로서비스 배포 조합 수를 전부를 사람이 계산할 수 없다.

  • 충분한 리소스를 할당한다면 리소스의 낭비, 비용이 발생할 것!

간단한 재시작만으로도 전체 서비스의 복구 시간이 오래걸린다.

쿠버네티스의 대표적인 기능

  • 자동화된 빈 패킹 (bin packing)
    - 각 컨테이너가 필요로 하는 CPU와 메모리를 쿠버네티스에게 지시
  • 자동화된 복구 (self-healing)
    - 실패한 컨테이너를 다시 시작, 컨테이너 교체 등
  • 자동화된 롤아웃과 롤백
    - 롤아웃(배포과정)

쿠버네티스의 의미

조타수: 주어진 명령을 핸들에 반복 실행해야 한다

그리스어로 조타수라는 의미를 가지고 있다.

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


클러스터

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

쿠버네티스 클러스터

어플리케이션 컨테이너를 배포하기 위한 서버 집합

Master 노드의 Control Plane

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

Worker 노드

컨테이너 실행을 담당

  • Kubelet, Container Runtime (Docker, ...)
  • kube-proxy

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

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

  • Manifest
    쿠버네티스 오브젝트를 생성하기 위한 필수 정보

중요한 단어

kubectl, master node, kubelet, kube-proxy, iptables

profile
조호영, Developing something

0개의 댓글