도커 로고

1. 쿠버네티스란?

  • 쿠버네티스는 컨테이너화된 애플리케이션의 배포, 확장 등을 관리하는 것을 자동화하기 위한 플랫폼(컨테이너 오케스트레이션 엔진)
  • 도커 단독으로는 도커가 설치된 호스트(도커 호스트)를 동시에 여러 대 동작시키거나 중앙에서 통합, 관리할 수 없음
  • 컨테이너 오케스트레이션 엔진에는 도커 스웜, 아파치 메소스가 있지만 쿠버네티스가 가장 인기가 많다고 하고 표준이 되고있다고 함

 

2. 쿠버네티스의 역사

  • 구글 내부적으로 사용하던 컨테이너 클러스터 관리 도구 'Borg' 에서 아이디어를 얻어 만들어진 오픈 소스 소프트웨어
  • 리눅스 재단 산하의 클라우드 네이티브 컴퓨팅 파운데이션(CNCF : Cloud Native Computing Foundation) 으로 이관되었으며, 호스트로서 개발을 주도하고 있음
  • 구글이 Google Kubernetes Engine 으로 먼저 서비스로 제공했고 이후에 MS Azure Container Service, Amazon Elastic Kubernetes Service 가 이어서 출시 되었고, 모두 GA(Generally Available, 일반적으로 사용 가능한 서비스) 가 됨

 

3. 쿠버네티스를 사용하면 할 수 있는 것

  • 선언적 코드를 사용한 관리 (IaC : Infrastructure as Code)
    • 코드로 써 관리함 (YAML 문법)
  • 스케일링/오토 스케일링
  • 스케줄링
    • 어떤 쿠버네티스 노드에 배포할 것인지 결정
  • 리소스 관리
    • CPU, 메모리의 여유 리소스 상태에 따라 쿠버네티스 노드가 자동으로 추가 및 삭제
  • 자동화된 복구
    • 헬스 체크의 성공 여부를 보고 컨테이너 자동으로 재배포 할 수 있음
  • 로드 밸런싱과 서비스 디스커버리
  • 데이터 관리
    • 쿠버네티스는 etcd를 사용하여 컨테이너의 설정 파일, 인증 정보, 데이터를 저장함