2 분 소요

📌 Topic

  • 1.1 쿠버네티스란?

01. 쿠버네티스란?

kubernetes.PNG

쿠버네티스란 컨테이너화된 애플리케이션의 ‘배포’, ‘확장’ 및 ‘관리’를 자동화 하는 오픈 소스

즉, 다수의 컨테이너를 일일이 관리할 수 없기 때문에 쿠버네티스를 통해 관리를 자동화 하는 것이다.
그렇다면 이러한 쿠버네티스를 좀 더 알아보기 위해 간략한 용어 정리를 해보자.

용어
컨테이너 앱이 구동되는 환경까지 감싸서 실행할 수 있도록 하는 격리 기술(프로세스)
컨테이너 런타임 컨테이너를 다루는 도구
도커 컨테이너를 다루는 도구 중 가장 유명한 것
쿠버네티스 컨테이너 런타임을 통해 컨테이너 오케스트레이션을 지원하는 도구
오케스트레이션 여러 서버에 걸친 컨테이너 및 환경 설정을 관리하는 행위

01-1. 쿠버네티스가 필요한 이유

쿠버네티스를 사용하면 컨테이너화 된 애플리케이션 환경을 탄력적으로 실행할 수 있다
https://tech.ktcloud.com/67

우선 프로덕션 환경에서는 애플리케이션을 실행하는 컨테이너를 관리하고 가동 중지 시간이 없는지 확인이 필요하다. 즉, 100000개의 컨테이너가 구동되고 있는 상황에서 엔지니어가 모든 컨테이너의 상태를 관리한다는 것은 말이 되지 않으며, 자동화된 컨테이너 관리를 위해 쿠버네티스는 필수적이다.

01-2. 쿠버네티스가 제공하는 기능은?

서비스 디스커버리, 로드 밸런싱

  • DNS 이름을 사용하거나 자체 IP 주소를 통해 컨테이너를 노출 (가상 호스팅)

스토리지 오케스트레이션

  • 로컬 저장소, 공용 클라우드 공급자 등과 같이 원하는 저장소 시스템 자동 탑재

Auto Rollout, Rollback

  • 원하는 상태를 서술, 현재 상태를 원하는 상태로 설정에 따라 변경 가능

Auto Bean Packing

  • 각 컨테이너가 필요로 하는 CPU, Memory(RAM) 제공

01-3. 가상화 환경 vs 컨테이너 환경

vm.PNG

vm_container_compare.PNG

가상화 환경과 컨테이너 환경을 비교해보자. https://www.samsungsds.com/kr/insights/220222_kubernetes1.html?referrer=https://www.google.com/

Tranditional Deployment

맨 왼쪽 Tranditional Deployment(전통적 배포)는 가상화 이전, 오래전부터 쓰이던 방식이다. 즉, 물리적인 컴퓨터(서버) 한 대에 하나의 OS를 깔고 여러가지 프로그램을 설치하는 방식인데 우리가 PC 한 대에 윈도우를 하나 설치하고 여러 프로그램을 깔아 사용하는 것과 동일하다. 단일 프로그램 목적이라면 상관이 없지만 다중 프로그램 구축 시에는 무리가 있다.

Virtualized Deployment

가상머신(Virtual Machine)을 기반으로 배포를 하며 중간에 위치한 하이퍼바이저가 하나의 시스템 상에서 가상 컴퓨터를 여러 개 구동할 수 있도록 해 주는 중간 계층을 의미한다. 여기서 App은 실행하고자 하는 프로그램이고, Bin/Library는 프로그램 실행을 위한 환경 설정 파일이다.

가상머신은 말 그대로 가상의 컴퓨터다. 각각의 독립된 운영체제와 환경 안에서 프로그램을 실행하기에 서로 간섭을 받지 않으며, CPU와 메모리를 유연하게 사용할 수 있다는 장점이 존재한다.

하지만 이러한 가상머신 역시 O/S(Operating Syste)이 필요하기 때문에 컨테이너 환경에 비해서는 메모리, 리소스를 더욱 더 잡아먹고 무겁다는 단점이 있다.

Container Deployment

기존 가상머신에서 사용이 된 하이퍼바이저가 Container Runtime(Docker Engine)으로 대체가 되고 Virtual Machine 부분은 Container로 대체가 된 것을 사진을 통해 확인할 수 있다.

Container Deployment 환경의 경우 프로그램 실행 환경은 격리되지만 OS 환경은 공유를 한다는 특징을 가지고 있다.

01-4. 쿠버네티스는 누가 만들었는가?

borg.PNG

  • Google의 자체적 시스템 Borg가 존재하였음
  • Google은 해당 서비스를 CNCF 재단에 기부
  • 현재 쿠버네티스는 CNCF에 의해 관리가 되는 중이다
  • Kubernetes는 특정 벤더에 종속적이지 않다는 장점이 존재한다

01-5. 쿠버네티스 배포 종류

mng_kubernetes.PNG

쿠버네티스 배포판은 관리형과 설치형 쿠버네티스로 구분이 된다

관리형 쿠버네티스

  • 실제 사용자가 많은 부분에 관여하지 않아도 된다
    • AWS(EKS..)
    • Google Cloud Platform
    • Azure

설치형 쿠버네티스

  • 설치를 할 수 있도록 이미지 패키지화
    • RANCHER
    • OPENSHIFT

구성형 쿠버네티스

  • 쿠버네티스를 자유롭게 구성하기 위해 사용
    • Kubeadm
    • Kops
    • Kuespray
    • KRIB

참고 자료

댓글남기기