쿠버네티스 ( 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은 모든 것이 컨테이너에서 운영
불변 인프라스트럭처 ( Immutable Infrastructure) 소개 자료 다운로드

컨테이너 기술은 변경이 불가능한  Immutable Infrastructure ( 불변의 인프라스트럭처 ) 가 가장 중요한 개념입니다.

우리는 MS Windows 나 Apple MacOS 를  사용하면서 보안, 안정성 그리고 성능 등의 이유로 OS (운영체제) 를 자주 업데이트 합니다.

OS는 시간이 지남에 따라 내용이나 설정이 수시로 변화가 발생하며, 새로운 애플리케이션를 설치할 때는 레지스트리도 변경합니다.

소프트웨어가 업데이트나 설정 변경 등을 반복하면서 최신 상태로 유지하는 것처럼 서버용 소프트웨어도 유사한 방법으로 관리하였습니다.

이렇게 서버가 시간 지남에 따라 상태가 변해가고 이로 인해 문제가 발생하는 것을 컨피규레이션 디리프트 ( Configuration Drift ) 라고 합니다.

쿠버네티스 도입해야 하는 이유 – 기획자/운영자/개발자 측면
쿠버네티스 운영자 측면

클라우드의 중심이 인프라에서 플랫폼으로 이동하면서 컨테이너 기반의 아키텍처가 주목받고 있는데, 이 가운데서도 쿠버네티스(Kubernetes)가 대세로 자리 잡았 습니다.

IT 기획자, 개발자 그리고 운영자 측면에서 쿠버네티스가 주면 장점을 살펴 보겠습니다.

쿠버네티스 개념 뽀개기와 데모 그리고 무료 체험 ! 지금 신청하세요.
클라우드 네이티브 세미나 비대면 ( 쿠버네티스 )

클라우드 관련 기술 말은 많지만 구름 처럼 이해 하기 쉽지 않습니다.

클라우드 기술들을 알고는 싶지만 쉽게 접근 하기 어렵습니다.

클라우드 네이티브 세미나 는  말로만 하지 않고, 직접 보고 체험할수 있는 비대면 형식의 세미나 입니다.

다음과 같은 내용들이 궁금하시다면 지금 바로 세미나 신청해주세요.

  • Docker , Container,Kubernetes ,PaaS 는 도대체 뭐야 ?
  • MSA 말로만 들었지 어떻게 하면 되는 거야?
  • 우리회사 애플리케이션을 컨테이너에? 어떻게 ?
  • 클라우드 궁금한 건  많은데 어디 편하게  물어 볼 수는 없을까?
  • 준비만 하다, 계획만 세우다, 교육만 받다, 끝나는 POC는 안되는데..
  • 클라우드 네이티브? 이건 또 뭐야?
  • 하이브리드 클라우드 어떻게 하면 좋을까? 디지털 트랜스포메이션 ?

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

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

쿠버네티스 장점은?

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

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

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

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

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

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

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

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

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

쿠버네티스 소개 Kubernetes

물론 이는 실제 환경에서 컨테이너를 사용하는 방식에 따라 달라집니다. 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 2 votes
Brand Name
Red Hat
Product Name
OpenShift