[따배쿠] 쿠버네티스 개요

2024. 2. 13. 23:50·Development/k8s

컨테이너란?

# cat > [파일명] 으로 파일을 작성할 수 있음
cat > app.js
  • 컨테이너를 동작시키려면, 플랫폼이 필요하다.

리눅스 시스템 위에 도커를 설치해야함. 그 다음 도커 데몬을 start시키면 도커 플랫폼이 만들어진다. 그 이후로는 컨테이너를 빌드하거나 실행할 수 있다.

  • 허브: 컨테이너를 저장해놓는 창고
  • 컨테이너를 빌드해서 푸시

 

저장된 컨테이너를 사용하는 환경

  • 허브에는 수 많은 컨테이너가 저장되어있음.
  • 리눅스에 도커를 설치하여 도커 플랫폼을 구축하여야함.
  • 도커 커맨드를 실행해서, 만들어놓은 컨테이너를 다운로드 받음
  • 다운로드 받은 컨테이너를 start create하면 컨테이너가 동작함
$ docker pull smlinux/nodeinfo:v1
$ docker create --name app -p 80:8080 smlinux/nodeinfo:v1
$ docker start app

컨테이너를 동작하기 위해서는 도커 플랫폼이 필요하다.

가상머신과 컨테이너의 차이

가상머신 vs 컨테이너

가상머신

  • Infrastructure > Hypervisor > Virtual Machine
    • Hypervisor: Vmware, VirtualBox
    • Hypervisor에 최적화된 운영체제
    • Infra 하드웨어를 효율적으로 사용할 수 있음.

컨테이너

  • Infrastructure > Host Operation > Docker > 컨테이너
    • Host Opreation: 리눅스나 윈도우 같은 OS
    • 확장과 축소가 빨라서 배포가 빠름
    • 컨테이너의 주 목적: 배포(deploy)

 

멀티호스트 도커 플랫폼

  • 한 대의 서버로 운영하는 것보단, 분산된 서버로 운영하는게 안정성이 있다.
  • 일일히 엔지니어가 모든 컨테이너를 배치하고 관리한다 ? 쉽지 않음
  • 여기서 오케이스트레이션 개념이 발생

 

오케스트레이션

  • 중앙의 지휘자가 악기들을 지휘하는 개념
  • 지휘자가 이 음악에 가장 잘 어울리는 구조로 배치하는 것 ➡ 음악의 선율을 맞추는것 = 오케스트레이션

 

컨테이너 오케스트레이션

  • 애플리케이션을 웹 서비스에 적합하게 잘 배치해서 운영해주는 것
    • 노드라는 컨테이너가 두 개 있을 때 (worker node1, worker node2)
    • 지휘자가 있어야한다. ▶️ control plane

 

컨테이너 계층구조

  • 지휘자의 역할을 하는게 Kubernetes

 

Kubernetes.io

 

Production-Grade Container Orchestration

Production-Grade Container Orchestration

kubernetes.io

  • 쿠버네티스 공식 웹페이지
  • K8s: K와 s 사이에 8개의 문자가 있어서 줄여부름
  • 자동화된 컨테이너 배포, 스케일링과 관리
  • 컨테이너화된 애플리케이션(node.js, node)를 자동으로 배포, 스케일링 및 관리해주는 오픈소스 시스템
  • 구글에서 15년간 프로덕션 워크로드 운영한 경험을 토대로 구축
  • 구글이 일주일에 수십억 개의 컨테이너를 운영하게 해준 원칙에 따라 개발됨
  • 쿠버네티스: 그리스어로 조타수(키잡이)

 

k8s 특징

  • 워크로드 분리
  • 어디서나 실행가능 - 온프레미스, 퍼블릭 클라우드(AKS, EKS, GKE 등)
  • 선언적 API

 

선언적 API

  • control plane : 쿠버야 웹 서버 3개 실행해줘
    • docker worker node1
    • docker worker node2
    • 각각에 요청 보내고, 서버가 다운될 경우 정상적으로 실행될 수 있게 쿠버네티스가 알아서 실행해주는 것을 선언적 API라고 하며, 쿠버네티스의 가장 큰 특정
    • 이로 인해 DevOps 가능, 심지어는 NoOps라고 함
    • 쿠버네티스 개발자는, 쿠버네티스를 os라고 부르기도 함.
    • => 실제로는 os가 아니지만 os의 역할을 하기 때문임
    • os의 역할: 오퍼레팅 시스템 하드웨어에서 애플리케이션이 잘 동작할 수 있도록 해주는게 os의 역할인데, 하드웨어 위에서 애플리케이션이 제대로 잘 도와주는게 쿠버네티스이므로 os가 맞다고 생각.

'Development > k8s' 카테고리의 다른 글

[k8s] Container 정리와 Single / Multi Container Pod 생성  (1) 2024.03.25
[따배쿠] 기본 명령어 학습하기  (0) 2024.02.13
'Development/k8s' 카테고리의 다른 글
  • [k8s] Container 정리와 Single / Multi Container Pod 생성
  • [따배쿠] 기본 명령어 학습하기
곽진돔
곽진돔
Developer
  • 곽진돔
    echo "곽박한 세상";
    곽진돔
  • 전체
    오늘
    어제
    • 분류 전체보기 (184)
      • Development (57)
        • Linux (13)
        • k8s (3)
        • Docker (5)
        • AWS (1)
        • PHP (35)
        • Python (21)
        • Java (1)
        • SpringBoot (4)
        • JavaScript (1)
        • React (8)
        • MySql (19)
        • MongoDB (1)
      • Daily (4)
      • Study (6)
        • TIL (1)
        • license (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 설정
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    Shell
    인코딩
    리눅스
    Python
    db
    HTML
    error
    CentOS7
    IP
    크롤링
    nodejs
    Java
    JavaScript
    SQL
    Selenium
    springboot
    ssh
    php
    Linux
    윈도우
    스프링부트
    MySQL
    date
    리액트
    docker
    UTF8
    chromedriver
    정규표현식
    CentOS
    react
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
곽진돔
[따배쿠] 쿠버네티스 개요
상단으로

티스토리툴바