쿠버네티스의 개념

  • 대표적인 도커 오케스트레이션 툴
    • 도커
    • 도커 컴포트
    • 도커 오케스트레이션
      • Clustering : 여러 개의 컨테이너를 합쳐 하나의 시스템으로 만들어 컨테이너를 배치
      • Auto-placement : 여러 개의 서버를 가지므로 어떤 컨테이너를 어떤 서버에 적절히 배치하는가
      • Auto-restart : 장애로 인해 컨테이너를 새로 띄운다.
      • 무중단 배포 : 신규 컨테이너를 배포할 때 중단 없이 배포한다.
  • 네임스페이스
    • 논리적인 클러스터
    • 개별적인 Access control 정책, 네트워크 정책
  • 리소스
    • Pod : docker container와 유사하다, 최소단위
    • Node : 서버
    • Sevice : 네크워크 담당
  • 앱 정의서
    • 리소스의 정의 (YAML 파일 형식 - 선언형 명령)
  • Desired State : 바라는 상태
    • 쿠버네티스는 현재 상태가 있고 바라는 상태로 가려한다.
    • YAML 파일로 바라는 상태를 수정 → 현재 상태가 바라는 상태로 변경됨 ⇒ 기존에 현재 상태가 여러가지 이유로 리소스가 삭제 되거나 바뀌어도 바라는 상태로 계속 바뀌게 되는 형식이다.
    • 이러한 방식으로 새로운 기능이 추가된다.
  • 라벨 & 셀렉터
    • 리소스에 label을 달 수 있다.
    • selector를 통해서 해당 라벨을 가지고 있는 리소스를 선택할 수 있다.

쿠버네티스의 아키텍처

  • 마스터 노드와 워커 노드가 존재
  • Master
    • kube-api-server
      • 쿠버네티스의 모든 컴포넌트와 통신하는 역할
      • 모든 컴포넌트의 리퀘스트를 받고 리스폰스 하는 역할
      • 워커노드와 다리 역할
    • etcd
      • api 서버로부터 들어온 데이터를 저장 및 제공해주는 역할
      • RDB가 아닌 Key-Value 형태의 데이터
      • 쿠버네티스 안의 모든 메타정보를 저장하고있다.
    • kube-scheduler
      • Auto-Placement 기능 : 어떤 노드가 가능한지 확인 (Scheduling)
    • kube-controller manager
      • current state와 desire state를 확인하며 달라지면 kube-scheduler를 통해서 리소스 관리
      • 루프를 통해서 지속적으로 확인
    • cloud-controller manager
      • public cloud를 사용하는 경우 통신 기능 제공
  • Woker
    • kubelet
      • kube-api-server로 부터 어떤 컨테이너를 실행해야 하는지 전달 받아 실제로 컨테이너를 실행한다.
      • 워커노드의 상태를 전달
    • kube-proxy
      • 컨테이너간의 네트워크를 담당

쿠버네티스의 장점

  • 컨테이너 스케줄링이 편리
  • Auto Scaling을 통해 확장성이 좋다
  • 모니터링이 쉬워진다.
  • 장애에 견고해진다.
  • Hybrid / 멀티 클라우드 구현 ( aws, google, micro azure, on-promise )

'BACK > MSA' 카테고리의 다른 글

[MSA] MSA 개요  (0) 2021.12.15

+ Recent posts