[Docker] 컨테이너와 도커 그리고 쿠버네티스

2022. 1. 18. 23:24·Ops

Cloud를 공부하다보면 컨테이너/도커/쿠버네티스라는 개념이 자주 등장한다.

간단히 말하면 과거 가상머신의 불편함을 해결하고자 컨테이너와 도커라는 개념이 생겨났고, 컴퓨팅 파워가 늘어나다보니 다수의 도커와 컨테이너를 운영해야하는 상황이 발생하여 쿠버네티스가 생겨났다. 해당 글에서는 이 항목들에 대해서 살펴볼 것이다.

 

 

도커와 컨테이너


소프트웨어는 OS와 라이브러리에 의존한다. 따라서 성격이 다른 컴퓨터(OS, 라이브러리 버전이 다름)에서 같은 소프트웨어를 실행할 때 어려움을 느낄 수 있다.

Docker는 Container기반의 가상화 플랫폼이다. Docker를 사용하여 Container를 생성할 수 있으며, 같은 Container를 여러 개 생성하는 것도 가능하다. 이렇게 위의 문제를 해결할 수 있는 것이다.

하나의 OS에서 다수의 Container를 동시에 실행할 수 있다. 이는 동적이며, 독립적이기 때문에 효율적으로 운용할 수 있다. 예를 들어 Java앱이 인기가 많아지면 Java 컨테이너의 수를 늘리고, 트래픽이 줄면 컨테이너를 원상태로 바꾸면 된다.

 

기존 가상머신의 한계

컨테이너 서버와 기존 가상머신

  • 기존 가상머신은 HyperVisor에서 인프라 리소스를 가상머신별로 배분한다. 또한 각 VM은 독립적인 OS를 가진다.
  • 컨테이너 서버는 하나의 Host OS에서 CPU, RAM, Disk, Network와 같은 OS 자원을 필요한 만큼 격리하여 컨테이너에 할당한다.

 

 

 

쿠버네티스


 

쿠버네티스는 Container 오케스트레이션 툴이다.

다수의 컨테이너를 실행하기 위해서는 실행을 관리 및 조율하는 과정이 필요하다. 여기에는 생성과 삭제, 시작 및 중단 시점 제어, 스케줄링, 로드밸런싱, 클러스터링 등의 과정이 있다.

 

쿠버네티스의 목적

  1. 다수의 Docker 서버를 하나의 Pool로 구성
    • 쿠버네티스는 다중 서버의 도커 데몬에 연결하여 사용한다. 이때 사용자는 서버에 도커가 몇 개인지 컨테이너는 몇 개 실행 중인지 알 필요가 없다.
    • 사용자는 필요한 컨테이너를 어떤 목적의 이미지로 만들지 명령만 하면된다.

  2. 다중 서버에 분산되어 컨테이너 생성
    • 만약 두 개의 서버에 3개의 Container를 생성하게 되면 쿠버네티스에서 알아서 나누어 할당해준다.
    • 사용자는 Idle상태의 컨테이너를 직접 찾을 필요가 없다.
    • 또한 컨테이너간 통신을 위해 서버 간에 통신이 가능하다.

  3. 컨테이너 재생성
    • 단일 서버에서 도커 컨테이너를 운영하게 된다면 서버가 다운되거나 컨테이너가 종료될 수 있다. 쿠버네티스는 이 상황을 방지하여 동일한 컨테이너를 지속적으로 생성한다.

  4. Load Balance
    • 만약 쿠버네티스 클러스터로 생성된 웹사이트에 3개의 Container가 동작하고 있다고 하면 그 웹사이트에 사용자가 접근할 때마다 Container1 → Container2 → Container3 순서로 접근할 수 있도록 round-robin형식의 Load Balancing을 제공한다.

 

 

 

참고
https://kyumdoctor.co.kr/13
https://velog.io/@geunwoobaek/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88-%EB%B0%8F-%EB%8F%84%EC%BB%A4-%EA%B0%9C%EB%85%90%EC%A0%95%EB%A6%AC
https://wooono.tistory.com/109

'Ops' 카테고리의 다른 글

현직 MLOps Engineer의 쿠버네티스(Kubernetes) 간단한 고찰  (0) 2025.01.11
[MLOps] Windows 환경에서 kubeflow 설치하기  (0) 2023.03.27
[Airflow] 2.3.0 릴리즈 주요 변화 사항을 간단하게 알아보자  (0) 2022.05.03
[Airflow] Docker를 활용한 Airflow 구축  (1) 2022.04.18
[Docker] Docker-Compose에서 같은 이미지로 여러 컨테이너 생성하기  (0) 2022.03.30
'Ops' 카테고리의 다른 글
  • [MLOps] Windows 환경에서 kubeflow 설치하기
  • [Airflow] 2.3.0 릴리즈 주요 변화 사항을 간단하게 알아보자
  • [Airflow] Docker를 활용한 Airflow 구축
  • [Docker] Docker-Compose에서 같은 이미지로 여러 컨테이너 생성하기
AI건축가
AI건축가
LLMOps Engineer로 커리어를 쌓고 있습니다. 저만의 시점으로 AI를 해석하고자 노력합니다. 함께 배우고 성장하는 공간이 되었으면 좋겠습니다. 😊🚀
  • AI건축가
    DeepFlame AI
    AI건축가
  • 전체
    오늘
    어제
    • 분류 전체보기
      • AI
      • Ops
      • Engineering
        • Algorithm
        • CS
        • BigData
        • Tools
      • Personal
        • Toy Project
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ec2
    Python
    PostgreSQL
    algorithm
    Ai
    Bio
    Hive
    mlops
    MSA
    Cloud
    deepseek
    scala
    kubernetes
    AWS
    db
    mongoDB
    hadoop
    DP
    airflow
    세미나
    LeetCode
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
AI건축가
[Docker] 컨테이너와 도커 그리고 쿠버네티스
상단으로

티스토리툴바