Kubernetes 란?

고독한 키쓰차·2021년 3월 19일
0

Cloud

목록 보기
1/21

VM(Virtual Machine)

  • 가상머신 안에서 프로그램 하나를 띄우기 때문에 프로그램들 끼리 충돌 할 걱정 x
  • But, 클라우드 환경과 적합하지 않다.
  • 그리고, 특정 벤더에 대한 dependency 가 높음 (멀티 클라우드 불가)

Docker

  • 모든 실행환경을 Container 로 (Container 에 대한 설명은 뒤에..)
  • 어디서든 동작하고 (로컬, 서버) 사용법 쉬움

Container

  • CPU, 메모리 사용 효율적
  • 이미지를 이용한 배포 및 롤백 쉬움
  • 언어나 프레임워크 상관없이 모든 App 동일한 방식으로 관리
  • 로컬, 클라우드 다 동일한 환경
  • 특정 클라우드 Dependency 없음 (AWS 에서 쓰던걸 AZURE 에서 사용 가능)

그럼 이제 개발자는 Docker Image 형성하고, 해당 Image 를 허브에 저장하고 Container 에서 Run 하게 됨 (패턴이 정형화 되어 있음)

BUT, 문제점들...

  • 컨테이너가 너무 많아질 경우 손이 많이 감
  • 컨테이너가 많아지면, 어떤 서버가 여유있는지 잘 모름
  • v2를 만들 경우 업데이트 할 때, 롤백 할 때 손이 많이 감
  • 과부하된 컨테이너들 관리.. 어려움

Container Orchestration

  • 위 문제점들을 관리해주는 것, 나 대신 일 해줄 도구
  • 서로 다른 CPU와 RAM 을 관리하기 어렵기 때문에 Cluster 단위 (Node가 여러개) 로 관리
  • Master 서버 하나 두고, Master 서버에 명령어를 하나 던지면 Cluster 로 접근하여 Node를 관리
  • 상태 관리, 배포 관리, 버전 관리 최적화 하여 다 자동으로 해줌
profile
Data Scientist or Gourmet

0개의 댓글