배경

 

시대가 변함에 따라, 과거 모놀로틱 아키텍쳐의 많은 서비스를 거쳐 많은 프로젝트들이 MSA 기반의 트렌드로 변하고 있다.

이에 따라 애플리케이션들은 물리 서버 혹은 물리 서버의 VM(Virtual Machine)을 지나 도커와 같은 컨테이너 기반의 가상화 플랫폼위의 컨테이너에 존재하는 시대가 되었다.

 

 

 

Container Orchestration

컨테이너는 애플키에션을 포장하고 실행하며 관리하기에 좋은 도구이다. 하지만 컨테이너의 확장에 따라 이러한 컨테이너들의 관리해줄 도구가 분명 필요하다. 즉 간단하게 말해서 쿠버네티스는 컨테이너 관리 도구라고 생각하면 쉽다.

 

Apache Mesos, Docker Swarm, ECS 등 다양한 Container Orchestration이 존재하지만 확실하게 쿠버네티스는 높은 수준의 관리 기능을 제공해 주는 인기있는 툴이다.

 

 

Kubernetes

- 구글에서 15년간 프로덕션 워크로드 운영한 경험을 토대로 구축

- 컨테이너 운영을 자동화하기 위한 컨테이너 오케스트레이션 도구

- 약어 K8s ( k와 s 사이에 8글자라서.. 하하^^), Kube 등으로 불림

- 많은 수의 컨테이너를 협조적으로 연동하기 위한 통합 시스템

- 명령어 도구 kubectl 제공

- 러닝 커브가 좀 높다.

 

 

특징

  1. Service Discovey
    : 쿠버네티스는 DNS 및 자체 IP를 사용하여 컨테이너를 노출한다.
  2. load Balancing
     : 컨테이너의 트래픽이 많으면 로드밸런싱을 하여 배포한다.
  3. Storage Orchestraion
    : 로컬 저장소 및 클라우드와 시스템과 연동 및 자동 탑재한다.
  4. Self-Healing
    : 문제가 발생한 컨테이너를 자동 재시작한다.
  5. Automated rollout and rollback
    : 컨테이너의 원하는 상태를 서술하며 언제든지 변경가능하다.
  6. Batch execute
    : 스케쥴러 배치 작업이 가능하다. 
  7. Horizontal Scaling
    : CPU 사용에 따라서, 명령어 혹은 UI 등과 함께 Scale Up and Down이 가능하다.
  8. Docker Host Management

 

 

 

참고

 https://kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/

'Cloud & NoSQL & Middleware > Kubernetes' 카테고리의 다른 글

kubernetes - secret  (0) 2019.10.11
kubernetes - pod, rs, svc, deployment, ingress  (0) 2019.10.03

+ Recent posts