글 작성자: 만렙개발자

쿠버네티스(kubernetes; k8s) 두번째 스터디 (이제야) 시작 !!

스터디 목적

  1. 힙한 쿠버네티스를 모르고 살 순 없다!
  2. docker에서 워크플로우를 컨테이너화하는(containerize) 방법을 익혀보자!
  3. 클러스터에 배포하는 방법, 업데이트를 제공하는 방법을 익혀보자!
  4. 트래픽에 따른 스케일링!

학습 내용

  1. 어플리케이션을 구축하는 방법과 현대적인 구축 방법
  2. 머신 클러스터에서 컨테이너들이 어떻게 실행될지 매니징하는 컨테이너 오케스트레이션(Container Orchestration) 시스템
  3. 개발, 준비, 생산에 이르기까지 코딩을 위한 지속적인 배포(Continuous Delivery; CD) 파이프라인 설정 방법

컨테이너란?

  • 컨테이너는 애플리케이션을 실제 구동 환경으로부터 추상화할 수 있는 논리 패키징 메커니즘을 제공
  • 시스템의 나머지 부분(하드웨어, 커널)과 격리된 하나 이상의 프로세스 세트

컨테이너는 왜 쓰는겨?!

전용 서버 > VM(Virtual Machine) > Container

기존 방식의 문제점:

  • 전용 서버를 구축하는 것은 배포에 너무 많은 시간이 들고, 활용도도 떨어지고, 옮기기도 어려움. 따라서 VM을 활용하기 시작!
  • 그런데 VM도 문제가 있음. 하나의 VM에 두개의 버전의 Application을 실행할 수 없음! 따라서 2개의 VM이 필요함. (여러 application code를 위해서는 여러 VM이 필요함...) 결국 비용 증가, 비효율적!
    • 가상화는 hypervisor를 사용하여 하드웨어를 emulation하고 이를 통해 여러 운영체제를 동시에 실행. 코스트가 ㅎㄷㄷ...

컨테이너의 장점:

  • code가 개발 단계, 테스트 단계, 배포 단계에서 동일하게 작동함! 이식성과 일관성이 유지됨!
  • CI/CD 가능~
  • 마이크로서비스(microservice)를 할 수 있는 path를 제공! 검사할 수 있고, 독립적이고, 탄력적인!

도커(Docker)란?

도커

  • 컨테이너는 효과적이고 이식성이 뛰어난 새로운 패키징 포멧. 어떤 시스템에서든지 동일하게 실행 할 수 있게 컨테이너로 추상화하여 배포를 쉽게함. 기존에 OS를 가상화하는 VM과 달리, 프로세스를 격리하여 필요한 만큼만 사용하는 것이 컨테이너 방식입니다. 예를들어, 하나의 서버에서 컨테이너들을 실행하면, 서로 독립적으로 실행됩니다.25%의 회사들이 docker를 사용함! ㄷㄷ 성장률도 어마어마함

도커 이미지?

  • 도커 이미지는 컨테이너를 실행하는데 필요한 것들이 모두 저장되어있습니다.
  • 공개된 다양한 도커 이미지들은 docker hub에서 확인하실 수 있습니다.