본문 바로가기
Public Cloud/AWS

[Container] 도커, 쿠버네티스 Basic

by SE_123 2023. 6. 6.
반응형

 

1.  배경 및 개요

기존 요구사항

  • 다양한 어플리케이션 스택
  • 다양한 하드웨어
  • 다양한 환경
  • 마이그레이션의 필요성

새로운  패러다임

  • Immutable Infrastructure - 배포된 이후 절대 변경되지 않는 형태의 인프라 패러다임으로 수정을 하지 않습니다. 
  • Container - 모던 어플리케이션 구축에 용이합니다. 
    • SW 단위의 배포
    • Lightweight, portable, consistent
    • 운영과 개발간의 일관성 

 

2.  컨테이너 란(Docker)

도커(Docker)는 컨테이너화된 애플리케이션을 개발, 배포 및 실행하기 위한 오픈소스 플랫폼으로, 애플리케이션과 그에 필요한 종속성을 격리된 환경인 컨테이너로 패키징하여 실행합니다. 

  • OS  수준에서 가상화 하여 다른 어플리케이션과 논리적으로 격리된 환경을 제공합니다. 
  • 어플리케이션 구동에 필수적으로 필요한 최소한의 환경을 구축하여 빠른 실행이 가능합니다. 
  • 복잡한 워크로드 일수록 유리합니다. 

 

3.  쿠버네티스 란

쿠버네티스(Kubernetes)는 컨테이너화된 애플리케이션의 배포, 스케일링, 관리를 자동화하기 위한 오픈소스 플랫폼으로, 복잡한 컨테이너 환경을 효과적으로 관리할 수 있습니다. 

쿠버네티스 기능

쿠버네티스의 상태 관리와 배포 관리 기능은 애플리케이션의 가용성, 안정성, 확장성을 향상시키고, 개발자와 운영팀의 작업을 단순화하며, 무정지 배포와 롤백을 가능하게하여 운영과 유지보수에 용이합니다.

1. 상태 관리(State Management):

  • 쿠버네티스에서는 각각에 파드에  control loop를 사용하여 일관된 상태(desired state)를 유지합니다. 
  • 비정상인 상태인 경우, 쿠버네티스는 파드를 자동으로 다시 시작하거나 다른 노드로 스케줄링합니다. 

2. 배포 관리(Deployment Management):

  • 쿠버네티스에서 배포관리는 중앙에서 롤링 업데이트 및 scheduling 방식으로 이루어집니다. 자원이 여유가 있는 서버에 오토 스케일링, 롤아웃과 롤백을 적절하게 수행합니다.