top of page

Production-Grade Container Orchestration

Automated container deployment, scaling, and management
kuberneteslogo.png

Kubernetes는 컨테이너 작업 부하 및 서비스를 관리하기위한 확장 가능한 개방형 오픈 소스 플랫폼으로서 선언적 구성과 자동화를 용이하게합니다. 그것은 크고, 빠르게 성장하는 생태계를 가지고 있습니다. Kubernetes 서비스, 지원 및 도구가 널리 제공됩니다.

Google은 2014 년에 Kubernetes 프로젝트를 오픈 소스로 운영했습니다. Kubernetes 는 Google이 제공하는 경험의 십분의 일을 바탕으로 대규모의 생산 작업량을 커뮤니티에서 제공하는 최고의 아이디어 및 사례와 결합하여 실행합니다.

Kubernetes 이란 ?

Kubernetes는 docker-swarmmarathon 과 같은 container orchestration 툴입니다.

  • 컨테이너 플랫폼

  • 마이크로 서비스 플랫폼

  • 휴대용 클라우드 플랫폼 

Kubernetes 또는 k8s (첫글자 k와 끝글자 s를 제외한 8 글자인 “ubernete”를 8로 대체한 약어) 또는 간단히 "kube"는 Linux 컨테이너 작업을 자동화하는 오픈소스 플랫폼입니다. 이 플랫폼에서는 컨테이너화된 애플리케이션을 배포하고 확장하는 데 수동 프로세스가 필요하지 않습니다. 즉, Linux 컨테이너를 실행하는 호스트 그룹을 함께 클러스터링할 수 있으며 Kubernetes를 통해 이러한 클러스터를 쉽고 효율적으로 관리할 수 있습니다. 클러스터는 퍼블릭프라이빗 또는 하이브리드 클라우드 전체로 호스트를 확장할 수 있습니다.

Kubernetes는 원래 Google 엔지니어들이 개발하고 설계한 플랫폼입니다. Google은 초창기에 Linux 컨테이너 기술에 기여하였으며 Google 제품이 컨테이너에서 어떻게 작동하는지 대중에게 공개하였습니다. 이는 Google의 클라우드 서비스를 구동하는 기술이기도 합니다. Google은 내부 플랫폼인 Borg를 통해 일주일에 20억 개 이상의 컨테이너 배포를 생성하고 있습니다. Borg는 Kubernetes의 전신이었으며 수년 동안 Borg를 개발하는 과정에서 축적된 경험은 Kubernetes 기술의 주요 원동력이 되었습니다.

Kubernetes가 필요한 이유는 무엇일까요?

실제 프로덕션 애플리케이션은 여러 컨테이너에 걸쳐 있으며 이러한 컨테이너는 여러 서버 호스트에 배포되어야 합니다.

Kubernetes는 이러한 워크로드를 위해 규모에 맞는 컨테이너를 배포하는 데 필요한 오케스트레이션 및 관리 기능을 제공합니다.

Kubernetes 오케스트레이션을 사용하면 여러 컨테이너에 걸쳐 애플리케이션 서비스를 구축하고 클러스터 전체에서 컨테이너의 일정을 계획하고 이러한 컨테이너를 확장하여 컨테이너의 상태를 지속적으로 관리할 수 있습니다.

kubernetes-img01.png
하나의 Kubernetes 클러스터는 하나의 master 와 여러개의 node 로 구성되어 있습니다. 
개발자는 kubectl 을 이용해서 master 에 명령을 내리고, node 를 관리하는 반면 사용자 (endpoint user) 는 node 에 접속해
서비스를 이용합니다. 위 그림을 조금 더 자세히 보겠습니다.
kubernetes-img02.png
  • master 에는 (현재는 master 가 단일 노드이지만 추후 multi-node master 가 지원될 예정)

  • node (= minion) 에는

    • master 와 통신하는 kubelet (agent, 현재는 containerized 되어있지 않음) 이 있고

    • 외부의 요청을 처리하는 kube-proxy

    • container 리소스 모니터링을 위한 cAdviser 등이 있습니다.

kubernetes-img03.png
​출처: X-Team
bottom of page