skip to Main Content
[IT 트렌드] 쿠버네티스 (Kubernetes)

[IT 트렌드] 쿠버네티스 (Kubernetes)

지난 뉴스레터에서는 컨테이너 오케스트레이션 (Container Orchestration)에 대해 소개해 드렸습니다. (컨테이너 오케스트레이션 다시보기)
이번 연재물에서는 지난 화에 이어 컨테이너 오케스트레이션 툴 중 가장 많은 이슈가 되고있는  쿠버네티스 (Kubernetes)에 대해 알아보도록 하겠습니다.

Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈 소스 시스템입니다. Kubernetes는 15년동안 Google의 시스템에서 Container들을 운영한 경험과 커뮤니티에서 제공하는 좋은 아이디어와 결합되어 개발되었습니다.

Kubernetes Architecture

[출처] https://en.wikipedia.org/wiki/Kubernetes

그럼, Kubernetes의 주요 용어에 대해 간단히 알아보겠습니다.

– Master : Kubernetes 노드를 제어하는 머신입니다. 여기에서 모든 명령이 실행됩니다.
– Node : Pod들이 실행되는 머신입니다.
– API Server : API Server는 Kubernetes 핵심 구성 요소이며, HTTP를 통해 내부 및 외부 인터페이스를 제공합니다. 이를 통해 Pod, Service, Replication Controller 등의 설정을 할 수 있습니다.
– Controller Manager : DaemonSet Controller, Replication Controller등의 개체를 모니터링하고 변경 사항이 발생할 때 Pod의 증가 또는 감소를 수행합니다.
– Scheduler : Scheduler는 각 노드에서 리소스 사용률을 추적하여 Pod가 실행되어야 하는 노드를 선택하는 일을 합니다.
– Pod : 클러스터에서 실행중인 하나 이상의 컨테이너 그룹입니다. Pod 안에서의 모든 컨테이너는 IP 주소, IPC, 호스트 이름 및 기타 리소스를 공유합니다.
– Kubelet : 노드에서 실행되는 서비스로, Pod Spec에 정의된 상태로 컨테이너가 실행 중인지 확인하고 유지하도록 합니다.
– Kube-proxy : 네트워크 프록시와 로드 밸런서 기능을 제공합니다.

Kubernetes의 주요 특징은 아래와 같습니다.

  • Automatic binpacking : 서비스의 리소스 요구 사항 및 기타 제약 조건에 따라 컨테이너를 자동으로 배치합니다
  • Self-healing : 서비스하고 있는 container가 종료되거나, 사용자가 정의한 health-check가 실패하는 경우 컨테이너는 자동으로 복구됩니다.
  • Horizontal scaling : 수동 또는 CPU 사용량에 따라 자동으로 컨테이너 확장이 가능합니다.
  • Service discovery and load balancing : Kubernetes는 컨테이너에 고유한 IP 주소와 단일 DNS 이름을 제공하고 이를 통해 로드밸런싱을 지원합니다.
  • Automated rollouts and rollbacks : Kubernetes는 응용 프로그램 상태를 모니터링 하면서 동시에 모든 인스턴스를 종료하지 않도록 응용 프로그램이나 해당 구성의 변경 사항을 점진적으로 배치합니다. 또한 잘못된 배치의 경우 롤백을 즉시 수행할 수 있습니다.

Kubnernetes를 사용하면 컨테이너화된 애플리케이션을 배포 및 확장하는 데 수반되는 수동 프로세스의 많은 부분을 자동화 할 수 있습니다.
즉, 여러 Linux 호스트들을 클러스터링 할 수 있으며 이러한 클러스터를 쉽고 효율적으로 관리할 수 있습니다. 또한 Kubernetes는 On-premise, Private Cloud, Public Cloud 등 다양한 환경에서 적용이 가능합니다.

쿠버네티스에 대해 더 알고 싶다면? 아코디언 홈페이지를 방문해보세요!

Back To Top