Kubernetes

쿠버네티스 ( Kubernetes ) 란 ?

Kubernetes는 컨테이너화된 애플리케이션(Containerized Application)의 배포, 확장 그리고 관리를 할 수 있는 오픈 소스 컨테이너 오케스트레이션 시스템입니다.

“쿠버네티스”, “쿠베르네테스”,“K8s”, “쿠베”, “쿠버”, “큐브”라고 부르며 Apache License 2.0 라이선스로 리눅스 재단 (Linux Foundation )산하 Cloud Native Computing Foundation (CNCF) 에서 관리합니다.

쿠버네티스는 구글 엔지니어들이 개발하고 설계한 플랫폼으로서 사내에서 이용하던 컨테이너 클러스터 관리 도구인  “Borg”의 아이디어를 바탕으로 만들어진 오픈소스 소프트웨어입니다.

구글은 쿠버네티스의 원천이 되는 Borg를  수년 동안 개발하고 운영하면서 축적된 경험을 바탕으로 쿠버네티스를 오픈소스 프로젝트로 만들어 었습니다.

쿠버네티스는 2014 년 6 월에 시작하여 2015 년 7 월에 버전 1.0을 발표하였고, 현재에는  구글, 아마존, 애저 등 주요 클라우드 벤더와 IBM , Oracle 과 같은 소프트웨어 벤더 들이 각자의 브랜드로 Kubernetes 배포판을 제공하고 있습니다.

Kubernetes 소개 자료 다운로드

차세대 애플리케이션 스택 –  Kubernetes

  • 쿠버네티스 (IT Automation & Configuration Management)
  • 쿠버네티스 는 누구에게 필요한 도구 일까요?
  • Google Trends – Kubernetes vs. OpenStack vs. OpenShift
  • 쿠버네티스에 대하여
  • Google은 모든 것이 컨테이너에서 운영

Hybrid / Multi Cloud 전략을 위한 클라우드 표준

Kubernetes 를 통한 클라우드간 이동성 보장

CNCF에는 개발자, 최종 사용자 , 주요 클라우드 업체들이 참여하고 있으며, 현재는 CNCF이 주체가되어 중립적 인 입장에서 개발이 진행되고 있습니다.
선도적인 글로벌 클라우드 업체들이 Kubernetes 를 지원함으로서 사실상의 표준이이 되었습니다.

  • 2017 년 2 월 –  Microsoft Azure 에서 Azure Container Service (AKS)출시
  • 2014 년 11 월 – Google Cloud Platform (GCP)에서 Google Container Engine ( 이후 GKE( Google Kubernetes Engine)) 제공
  • 2017 년 11 월에는 Amazon Web Service (AWS) 에서 Amazon Elastic Container Service for Kubernetes (Amazon EKS) 출시

Kubernetes 발전 과정

Kubernetes

구글은 Linux 컨테이너 기술이 시작될 때부터 기여하였으며 구글의 서비스들이 컨테이너에서 어떻게 작동하는지 대중에게 공개하였습니다.

구글은 Borg 라는 컨테이너 기술을 통해 일주일에 20억 이상의 컨테이너 생성하여 운영하였습니다.

구글은 Borg 를 쿠버네티스라는 이름의 오픈소스 프로젝트로 공개하였으며,  15년간 컨테이너로 프로덕션 워크로드를 운영한 경험을 토대로 개발한 것입니다.

컨테이너와 쿠버네티스 비교

Docker (도커) 를 이용하여 호스트에 컨테이너를 시작할 수 있지만 프로덕션에서 사용하려고하면 다음과 같은 것을 생각해야합니다.

Container vs. Kubernetes
  • 여러 대의 호스트 관리
  • 컨테이너 스케쥴링
  • 롤링업데이트
  • 스케일링 / 오토 스케일링 (Auto Scale In/Out)
  • 컨테이너 라이프사이클 모니터링
  • 장애시 자기 치유
  • 서비스 검색
  • 로드 밸런싱
  • 클러스터 데이터 관리
  • 워크로드 관리
  • IAC ( Infrastructure As Code)
  • 컨테이너 관련 에코 시스템과의 연계 및 확장

여러 대의 컨테이너를 관리하고 자동화할 수 없다면 컨테이너 기반의 시스템 운영 현실적일 수 없습니다.

쿠버네티스 장점은?

  • 신속한 개발 및 배포 자동화

    • 애플리케이션과 서비스를 손쉽게 배포, 업데이트, 관리할 수 있어 신속한 애플리케이션 개발과 반복 작업이 가능합니다.
    • 애플리케이션을 포함한 컨테이너가 필요한 컴퓨팅, 메모리, 저장소 리소스를 간단히 지정하면 자동으로 기본 클라우드 리소스를 할당하고 관리합니다.
  • 고가용성과 자가 치유

    • 컨테이너 복제 , 모니터링, 자동화된 복구 기능을 사용하여 서비스 가용성과 안정성을 제공 합니다.
    • 클러스터와 클러스터의 컴퓨팅, 네트워킹, 저장소 리소스를 모니터링할 수 있습니다.
  • 효율적인 자원 활용

    • Scheduler 에 의해 리소스 관리를 하므로 개발자는 애플리케이션에 집중
  • 손쉬운 확장성 보장

    • Auto Scale In/Out 을 사용하여 순간적인 사용자 확산(Bursting) 에 효율적인 서비스를 제공할 수 있습니다.
  • 다양한 배포 방식 지원

    • 애플리케이션 배포와 모니터링을 할 수 있는 다양한 오픈소스와 3rd party 제품들이 제공되어 시스템 상황에 맞게 선택할 수 있습니다.

쿠버네티스가 필요한 이유는 무엇일까요?

실제 프로덕션 애플리케이션은 여러 컨테이너에 걸쳐 있으며 이러한 컨테이너는 여러 서버 호스트에 배포되어야 합니다. 컨테이너를 위한 보안은 멀티레이어 구조이며 복잡할 수 있습니다. 바로 여기에 쿠버네티스가 사용됩니다. 쿠버네티스는 이러한 워크로드를 위해 규모에 맞는 컨테이너를 배포하는 데 필요한 오케스트레이션 및 관리 기능을 제공합니다. 쿠버네티스 오케스트레이션을 사용하면 여러 컨테이너에 걸쳐 애플리케이션 서비스를 구축하고 클러스터 전체에서 컨테이너의 일정을 계획하고 이러한 컨테이너를 확장하여 컨테이너의 상태를 지속적으로 관리할 수 있습니다. 쿠버네티스를 활용하면 IT 보안을 한층 강화할 수 있습니다.

쿠버네티스는 종합적인 컨테이너 인프라를 제공할 수 있도록 네트워킹, 스토리지, 보안, 텔레메트리, 기타 서비스와 통합해야 합니다.

쿠버네티스 소개

물론 이는 실제 환경에서 컨테이너를 사용하는 방식에 따라 달라집니다. Linux 컨테이너를 사용하는 가장 기본적인 방식은 컨테이너를 효율적이고 빠른 가상 머신으로 다루는 것입니다. 이를 프로덕션 환경과 여러 애플리케이션으로 확장하고 나면 개별 서비스를 제공하기 위해 같은 위치에 배치된 여러 개의 컨테이너를 함께 사용해야 한다는 것을 분명히 알 수 있습니다. 따라서 환경에서 컨테이너 수가 크게 증가하며 컨테이너가 누적됨에 따라 복잡성도 증가합니다.

쿠버네티스는 컨테이너를 “포드(pod)”로 분류하여 컨테이너 급증과 관련된 여러 가지 문제를 해결합니다. 포드는 그룹화된 컨테이너에 추상화 계층을 추가하므로 사용자가 워크로드를 예약하고 네트워킹 및 저장소와 같은 필수 서비스를 컨테이너에 제공할 수 있습니다. 쿠버네티스의 또 다른 부분을 사용해 이러한 포드 전체에서 부하를 분산하고 적합한 수의 컨테이너를 실행하여 워크로드를 지원할 수 있습니다.

쿠버네티스를 올바르게 구현하고 Atomic RegistryOpen vSwitchheapsterOAuthSELinux와 같은 다른 오픈소스 프로젝트를 이용해 컨테이너 인프라의 모든 부분을 오케스트레이션할 수 있습니다.

-Red Hat Kubernetes (쿠버네티스) : 개념, 성능, 장점 중에서

source :https://www.redhat.com/ko/topics/containers/what-is-kubernetes 

쿠버네티스를 어떻게 활용할 수 있을 까요?

  • 여러 호스트에 걸쳐 컨테이너를 오케스트레이션합니다.
  • 하드웨어를 최대한 활용하여 엔터프라이즈 애플리케이션을 실행하는 데 필요한 리소스 사용을 극대화합니다.
  • 애플리케이션 배포 및 업데이트를 제어하고 자동화합니다.
  • 스토리지를 연결하여 스테이트풀(stateful) 애플리케이션을 실행합니다.
  • 컨테이너화된 애플리케이션과 해당 리소스를 즉시 확장합니다.
  • 선언적으로(Declaratively) 서비스를 관리함으로써, 배포한 애플리케이션이 항상 배포 목적대로 실행되도록 합니다.
  • 자동 배치, 자동 재시작, 자동 복제, 자동 확장을 사용해 애플리케이션 상태 확인과 자가 치유를 수행합니다.

쿠버네티스 영업 문의








쿠버네티스 역사

2017: The Year of Enterprise Adoption & Support

2016: The Year Kubernetes Goes Mainstream!

2015: The year of Kube v1.0 & CNCF

2014: Google Introduces Kubernetes

2013: From Borg to Omega

  • Following Borg, Google introduced the Omega cluster management system, a flexible, scalable scheduler for large compute clusters.

2003-2004: Birth of the Borg System

  • Google introduced the Borg System around 2003-2004.

References & Related Links

Summary
product image
Author Rating
1star1star1star1star1star
Aggregate Rating
5 based on 1 votes
Brand Name
Red Hat
Product Name
OpenShift