신속한 개발 및 배포 자동화
- 애플리케이션과 서비스를 손쉽게 배포, 업데이트, 관리할 수 있어 신속한 애플리케이션 개발과 반복 작업이 가능합니다.
- 애플리케이션을 포함한 컨테이너가 필요한 컴퓨팅, 메모리, 저장소 리소스를 간단히 지정하면 자동으로 기본 클라우드 리소스를 할당하고 관리합니다.
쿠버네티스(Kubernetes)는 컨테이너화된 애플리케이션(Containerized Application)의 배포, 확장, 그리고 관리를 할 수 있는 오픈소스 컨테이너 오케스트레이션 시스템입니다.
“쿠버네티스”, “쿠베르네테스”, “K8s”, “쿠베”, “쿠버”, “큐브”라고 부르며 Apache License 2.0 라이선스로 리눅스 재단(Linux Foundation) 산하 클라우드 네이티브 컴퓨팅 재단 (CNCF : Cloud Native Compution Foundation)에서 관리합니다.
쿠버네티스(Kubernetes)는 구글 엔지니어들이 개발하고 설계한 플랫폼으로써, 사내에서 이용하던 컨테이너 클러스터 관리 도구인 “Borg”의 아이디어를 바탕으로 만들어진 오픈소스 소프트웨어입니다.
구글은 쿠버네티스의 원천이 되는 Borg를 수년 동안 개발하고 운영하면서 축적된 경험을 바탕으로 쿠버네티스를 오픈소스 프로젝트로 만들었습니다.
쿠버네티스는 2014년 6월에 시작하여 2015년 7월에 버전 1.0을 발표하였고, 현재에는 구글, 아마존, 애저 등 주요 클라우드 벤더와 IBM, Oracle과 같은 소프트웨어 벤더들이 각자의 브랜드로 쿠버네티스(Kubernetes) 배포판을 제공하고 있습니다.
차세대 애플리케이션 스택 – 쿠버네티스(Kubernetes)
컨테이너 기술은 변경이 불가능한 Immutable Infrastructure(불변의 인프라스트럭처)가 가장 중요한 개념입니다.
우리는, Microsoft Windows나, Apple MacOS를 사용하면서 보안, 안정성 그리고 성능 등의 이유로 OS(운영체제)를 자주 업데이트 합니다.
OS는 시간이 지남에 따라 내용이나 설정이 수시로 변화가 발생하며, 새로운 애플리케이션을 설치할 때는 레지스트리도 변경합니다.
소프트웨어가 업데이트나 설정 변경 등을 반복하면서, 최신 상태로 유지하는 것처럼 서버용 소프트웨어도 유사한 방법으로 관리하였습니다.
이렇게 서버가 시간이 지남에 따라 상태가 변해가고 이로 인해 문제가 발생하는 것을 컨피그레이션 드리프트(Configuration Drift)라고 합니다.
클라우드의 중심이 인프라에서 플랫폼으로 이동하면서, 컨테이너 기반의 아키텍처가 주목받고 있는데, 이 가운데에서도 쿠버네티스(Kubernetes)가 대세로 자리 잡았습니다.
IT 기획자, 개발자 그리고 운영자 측면에서 쿠버네티스(Kubernetes)가 주는 장점을 살펴보겠습니다.
클라우드 관련 기술 말은 많지만, 구름처럼 이해하기 쉽지 않습니다. 클라우드 기술들을 알고는 싶지만 쉽게 접근하기 어렵습니다.
클라우드 네이티브 세미나는 말로만 하지 않고, 직접 보고 체험할 수 있는 비대면 형식의 세미나입니다. 다음과 같은 내용들이 궁금하시다면 지금 바로 세미나를 신청해주세요.
클라우드 네이티브 컴퓨팅 재단(CNCF : Cloud Native Compution Foundation)에는 개발자, 최종 사용자, 주요 클라우드 업체들이 참여하고 있으며, 현재는 클라우드 네이티브 컴퓨팅 재단 (CNCF : Cloud Native Compution Foundation)이 주체가 되어 중립적인 입장에서 개발이 진행되고 있습니다.
선도적인 클라우드 업체들이 쿠버네티스(Kubernetes)를 지원함으로써, 사실상의 표준이 되었습니다.
구글은 Linux 컨테이너 기술이 시작될 때부터 기여하였으며, 구글의 서비스들이 컨테이너에서 어떻게 작동하는지 대중에 공개하였습니다.
구글은 “Borg”라는 컨테이너 기술을 통해 일주일에 20억 이상의 컨테이너를 생성하여 운영하였습니다.
구글은 “Borg”를 쿠버네티스(Kubernetes)라는 이름의 오픈소스 프로젝트로 공개하였으며, 15년간 컨테이너로 프로덕션 워크로드를 운영한 경험을 토대로 개발한 것입니다.
Docker(도커)를 이용하여 호스트에 컨테이너(Container)를 시작할 수 있지만 프로덕션에서 사용하려고 하면, 다음과 같은 것을 생각해야 합니다.
여러대의 컨테이너(Container)를 관리하고 자동화 할 수 없다면, 컨테이너(Container) 기반의 시스템 운영은 현실적일 수 없습니다.
실제 프로덕션 애플리케이션은 여러 컨테이너에 걸쳐 있으며 이러한 컨테이너는 여러 서버 호스트에 배포되어야 합니다.
컨테이너를 위한 보안은 멀티레이어 구조이며 복잡할 수 있습니다. 바로 여기에 쿠버네티스가 사용됩니다. 쿠버네티스는 이러한 워크로드를 위해 규모에 맞는 컨테이너를 배포하는데 필요한 오케스트레이션 및 관리 기능을 제공합니다.
쿠버네티스 오케스트레이션을 사용하면 여러 컨테이너에 걸쳐 애플리케이션 서비스를 구축하고 클러스터 전체에서 컨테이너의 일정을 계획하고 이러한 컨테이너를 확장하여 컨테이너의 상태를 지속적으로 관리할 수 있습니다. 쿠버네티스를 활용하면, IT 보안을 강화할 수 있습니다.
쿠버네티스는 종합적인 컨테이너 인프라를 제공할 수 있도록 네트워킹, 스토리지, 보안, 텔레메트리, 기타 서비스와 통합해야 합니다.
물론 이는 실제 환경에서 컨테이너를 사용하는 방식에 따라 달라집니다. Linux 컨테이너를 사용하는 가장 기본적인 방식은 컨테이너를 효율적이고 빠른 가상 머신으로 다루는 것입니다. 이를 프로덕션 환경과 여러 애플리케이션으로 확장하고 나면 개별 서비스를 제공하기 위해 같은 위치에 배치된 여러 개의 컨테이너를 함께 사용해야 한다는 것을 분명히 알 수 있습니다. 따라서 환경에서 컨테이너 수가 크게 증가하며 컨테이너가 누적됨에 따라 복잡성도 증가합니다.
쿠버네티스는 컨테이너를 “포드(pod)”로 분류하여 컨테이너 급증과 관련된 여러 가지 문제를 해결합니다. 포드는 그룹화된 컨테이너에 추상화 계층을 추가하므로 사용자가 워크로드를 예약하고 네트워킹 및 저장소와 같은 필수 서비스를 컨테이너에 제공할 수 있습니다. 쿠버네티스의 또 다른 부분을 사용해 이러한 포드 전체에서 부하를 분산하고 적합한 수의 컨테이너를 실행하여 워크로드를 지원할 수 있습니다.
쿠버네티스를 올바르게 구현하고 Atomic Registry, Open vSwitch, heapster, OAuth, SELinux와 같은 다른 오픈소스 프로젝트를 이용해 컨테이너 인프라의 모든 부분을 오케스트레이션할 수 있습니다.
– Red Hat Kubernetes(쿠버네티스) : 개념, 성능, 장점 중에서
source : https://www.redhat.com/ko/topics/containers/what-is-kubernetes
연도 | 구분 | 내용 |
2023년 | 쿠버네티스 1.27 출시 | 성능 및 안정성 개선과 함께, 다양한 새로운 기능이 추가된 버전 발표 |
2022년 | 쿠버네티스 1.24 출시 | Docker가 기본 컨테이너 런타임으로 더 이상 사용되지 않는 버전 발표 |
2021년 | 쿠버네티스 1.22 출시 | 56개의 새로운 기능을 포함한 대규모 업데이트 |
2020년 | 쿠버네티스 1.18 출시 | API 안정성 및 확장성을 개선한 업데이트 |
2019년 | 쿠버네티스 1.14 출시 | Windows 컨테이너의 정식 지원이 포함된 버전 발표 |
2018년 | 쿠버네티스 1.10 출시 | 보안, 네트워킹 및 스토리지 기능이 개선된 버전 발표 |
2017년 | 쿠버네티스 1.6 출시 | 대규모 확장성을 지원하는 1.6 버전 출시 (5,000개 이상의 노드 지원) |
2016년 | 쿠버네티스 1.2 출시 | 확장성과 성능을 개선한 주요 업데이트 포함된 1.2 버전 출시 |
2015년 | 쿠버네티스 1.0 출시 | 첫 정식 버전인 1.0이 발표되고 클라우드 네이티브 컴퓨팅 재단 (CNCF: Cloud Native Computing Foundation) 설립 |
2014년 | 쿠버네티스 오픈소스화 | Google이 쿠버네티스를 오픈소스로 공개하고, GitHub에 프로젝트를 호스팅 |
2014년 | 쿠버네티스 프로젝트 시작 | Borg와 Omega의 경험을 바탕으로, Google이 쿠버네티스 프로젝트를 시작 |
2013년 | Omega 개발 | Google이 Borg의 한계를 극복하기 위해, 더 유연한 설계의 Omega 시스템 개발 |
2004년 | Borg 초기 운영 | Google 내부에서 Borg를 통해 애플리케이션 배포와 관리를 자동화하기 시작 |
2003년 | Borg 개발 시작 | Google이 내부적으로 대규모 분산 시스템을 관리하기 위해 Borg라는 컨테이너 관리 시스템을 개발하기 시작 |