본문 바로가기
Cloud

쿠버네티스 알아보기 1 (개념)

by sseddi 2022. 10. 4.
728x90

쿠버네티스와 컨테이너, 도커에 대한 기본 개념

컨테이너

구동하려는 애플리케이션을 실행할 수 있는 환경까지 감싸서 어디서든 쉽게 실행할 수 있도록 해주는 기술

ex. 환경 구축 시에 내 컴퓨터에 필요한 옵션을 일일이 맞춰야하는 불편함

→ 컨테이너 환경을 묶어서 배포한 컨테이너 이미지라는 프로그램을 내려받으면 불편함 해소

컨테이너 런타임

컨테이너를 사용할 때 필요한 도구

ex. 도커

쿠버네티스

컨테이너 런타임을 통해 컨테이너를 오케스트레이션 하는 도구 → 컨테이너를 다루는 도구

*오케스트레이션 : 여러 서버에 걸친 컨테이너 및 사용하는 환경 설정을 관리하는 행위

그러니까 도커 이외에 다양한 컨테이너 런타임 소프트웨어 사용 가능

  • 여러 서버(노드)에 컨테이너를 분산해서 배치
  • 문제가 생긴 컨테이너 교체
  • 컨테이너가 사용할 비밀번호나 환경설정 관리 및 주입
  • ⇒ 컨테이너 오케스트레이션

가상머신 vs 컨테이너

애플리케이션 배포 환경의 변화(Traditional Development) / 출처 : https://kubernetes.io


Traditional Deployment

가상화 이전 가장 오래되고 단순한 방식

물리적인 컴퓨터 한 대에 하나의 OS를 깔고 여러가지 프로그램을 설치하는 방식

단일 목적 시스템에 적합

 

문제점

한 대의 컴퓨터에서 모든 것을 처리하므로 프로그램의 간섭 또는 성능 저하, 더 나아가 프로그램 중단까지 유발 가능


Virtualized Deployment

가상머신을 기반으로 배포하는 것

→ 가상머신 사용으로 인해 Traditional Deployment의 문제점 해결

 

문제점

Traditional Deployment보다 효율적이지만, 가상머신은 완전한 컴퓨터이고 가상머신에 일일이 운영체제를 설치해야하기 때문에 container Deployment 보다는 무거움

 

용어정리

Hypervisor : 하나의 시스템 상에서 가상 컴퓨터를 여러 개 구동할 수 있도록 해주는 중간 계층

App : 실행하고자 하는 프로그램

Bin/Library : 프로그램이 실행하는데 필요한 환경과 관련된 파일

가상머신 : 가상 컴퓨터


Container Deployment

컨테이너 중심으로 배포하는 것

→ Virtualized Deployment과 달리 OS를 매번 설치하는 번거로움이 없음

하나의 OS 상에서 구동하면서도 프로그램 실행 시 간섭을 일으킬 수 없는 장벽을 치면서 자원 또한 독립적으로 사용할 수 있도록 할당하고 관리가 가능

컨테이너 동작 방식을 OS 커널을 공유하는 가상화라고 표현

 

문제점

컨테이너는 OS를 공유하는 방식이기 때문에,내 프로그램의 문제가 OS에 문제를 일으킬 경우에는 OS에서 구동 중인 전체 컨테이너의 문제가 될 가능성이 있음

 


 

  Traditional Deployment Virtualized Deployment Container Deployment
컴퓨터 물리적인 컴퓨터 1대 물리적인 컴퓨터 1대에 다수의 가상머신 존재 컴퓨터 형태에 영향 X
OS 물리적인 컴퓨터 1대 - OS 1개 물리적인 컴퓨터 OS 1대 + 다수의 가상머신에 각각 OS 설치 컴퓨터 형태와 관련없이 설치된 OS 1개
리소스 컴퓨터 1대의 자원을 여러 프로그램이 나눠 씀 하이퍼바이저를 통해 가상머신 별 개별적 자원 할당 OS에서 프로그램 별로 자원을 할당하고 관리
격리 수준 격리되지 않아 프로그램 간 간섭 발생 각 가상머신이 완전하게 격리 프로그램 실행 환경은 격리되지만 OS 환경은 공유
문제 전이 가능성 특정 프로그램의 문제가 시스템 전체의 중단을 가져올 수 있음 특정 가상머신의 문제가 다른 가상머신의 문제로 전이될 가능성이 낮음 특정 프로그램의 문제가 다른 프로그램에 간섭을 일으키지는 않지만, 특정 프로그램의 문제가 OS 문제를 유발할 경우 시스템 중단 가능성 있음

요약

개념

쿠버네티스는 컨테이너를 다루는 도구

컨테이너는 애플리케이션을 실행할 수 있는 환경까지 감싸서 쉽게 실행할 수 있도록 하는 기술

컨테이너 런타임은 컨테이너를 다루는 도구

컨테이너 런타임 중에 가장 유명한 것이 도커

오케스트레이션은 컨테이너 및 사용하는 환경 설정을 관리하는 행위

쿠버네티스는 컨테이너 런타임을 사용해 컨테이너를 오케스트레이션 하는 도구

 

애플리케이션 배포 환경의 변화

전통적 배포 → 가상화 배포 → 컨테이너 중심의 배포

점점 문제점 해결

  • 프로그램 간섭/성능저하 문제 → 가상머신으로 해결
  • 무거운 환경 문제 → 컨테이너 사용으로 해결 (OS 하나만 사용)

그치만 컨테이너 중심의 배포도 유의할 점은 있다.

→ OS문제 유발 시 그 OS에서 구동 중인 전체 컨테이너의 문제로 이어질 가능성

 

Reference

SAMSUNG SDS 클라우드 아티클

쿠버네티스 해외 자료

 

728x90

댓글