Today I Learned

250507 TIL | 쿠버네티스와 도커 이해하기

shinelee26 2025. 5. 7. 20:15

오늘 진행한 학습 요약

쿠버네티스 및 도커

  • 쿠버네티스를 배워야 하는 이유
  • 컨테이너 기술 이해하기

쿠버네티스 및 도커

 

쿠버네티스를 배워야 하는 이유

  • 시스템 운영을 잘하려면?
    • 고가용성과 내결함성을 고려하면서 앱을 개발하고 운영
    • 고가용성
      • 고가용성이란 앱이 지속적으로 가동될 수 있는 속성
      • 클러스터 -> 고가용성을 고려한 예시
    • 내결함성
      • 시스템 일부가 잘못되어도 전체 시스템이 크게 영향받지 않는 속성
      • MSA (마이크로 서비스 아키텍처) -> 내결함성을 고려한 예시
    • 고가용성과 내결함성을 챙기는 방법
      • 쿠버네티스와 같은 컨테이너 오케스트레이션 툴 사용하기
      • 대용량 트래픽을 수용할 수 있는 서비스를 구축하는 원리를 알 수 있음
  • 쿠버테니스가 나온 배경
    • 구글 내부 Borg->Omega 툴 개발 -> Kubernetes 툴을 오픈소스로 공개
    • 쿠버네티스의 다른 이름
      • kube(큐브)
      • k8s(케이츠)

 

컨테이너 기술 이해하기

  • 컨테이너와 도커
    • 가장 대표적인 플랫폼~! 도커!!
  • 컨테이너란?
    • 어떤 프로그램을 실행하기 위한 환경과 실행파일을 모두 하나로 묶어서 실행할 수 있도록 하는 기술
    • 컨테이너란 컨테이너 기술로 실행되는 앱
  • 컨테이너 기술과 쿠버네티스
    • 쿠버네티스는 컨테이너 기술을 바탕으로 복잡한 운영환경을 잘 운영할 수 있도록 도와줌
    • 최신 버전의 쿠버네티스는 containerd, CRI-O와 같은 플랫폼을 사용
    • 도커를 기준으로 만들어진 앱도 다른 컨테이너 플랫폼에서도 똑같이 실행 가능
  • VM기술과 컨테이너 기술
    • 컨테이너 기술은 호스트 OS와 자원을 공유
      • 운영체제 수준 가상화
    • VM 기술은 하드웨어의 자원을 나누어서 직접 게스트 OS에 설치하는 방법
      • 하드웨어 수준 가상화
    • 컨테이너 기술을 이용해서 만들어진 앱을 실행시키면 어떤 환경에서 개발된 앱이라도 항상 동일한 조건으로 실행이 가능!
      • 운영체제가 달라도 Docker 같은 컨테이너 엔진이 중간에서 번역
      • 컨테이너는 커널을 제외한 환경만 포함하며, Docker내부적으로 적절한 커널 환경(WSL2, VM 등)만들어서 실행
    • VM 기술보다 컨테이너 기술이 훨씬 가볍기 때문에 성능이 좋음