쿠버네티스란?

URL 복사

2023 Gartner® Magic Quadrant™에서 리더로 선정된 Red Hat

Red Hat은 Gartner 2023 Magic Quadrant 컨테이너 관리 부문의 실행 능력 및 비전의 완성도에서 최고점을 획득했습니다.

쿠버네티스(k8s 또는 "큐브(kube)"라고도 함)는 컨테이너화된 애플리케이션을 배포, 관리, 확장할 때 수반되는 다수의 수동 프로세스를 자동화하는 오픈소스 컨테이너 오케스트레이션 플랫폼입니다.

원래 Google의 엔지니어 팀에서 Borg 프로젝트로 개발하고 설계한 쿠버네티스는 2015년에 CNCF(Cloud Native Computing Foundation)에 기부되었습니다. Red Hat®은 쿠버네티스가 출시되기 전부터 Google과 협력하여 개발에 참여한 초기 기업 중 하나였으며 쿠버네티스 업스트림 프로젝트에서 두 번째 주요 기여자가 되었습니다. 

작동 중인 쿠버네티스 배포를 클러스터라고 하며, 클러스터는 Linux® 컨테이너를 실행하는 호스트 그룹입니다. 쿠버네티스 클러스터는 컨트롤 플레인과 컴퓨팅 머신(또는 노드)의 2개 부분으로 시각화할 수 있습니다.

A diagram showing the infrastructure of a Kubernetes cluster

각 노드는 자체 Linux 환경이며 물리 또는 가상 머신일 수 있습니다. 각 노드는 컨테이너로 이루어진 포드를 실행합니다. 

컨트롤 플레인은 어느 애플리케이션을 실행하고 애플리케이션이 어느 컨테이너 이미지를 사용할지와 같이 클러스터를 원하는 상태로 유지 관리합니다. 컴퓨팅 머신은 애플리케이션과 워크로드를 실제로 실행합니다. 컨트롤 플레인은 관리자(또는 DevOps 팀)로부터 명령을 전달받고 해당 지침을 컴퓨팅 머신에 전달합니다.

이 핸드오프는 여러 서비스와 연계하여 태스크에 가장 적합한 노드를 자동으로 결정합니다. 서비스는 포드에서 작업 정의를 분리하고, 클러스터에서 다른 위치로 이동된 경우나 교체된 경우에 상관없이 서비스 요청을 적절한 포드로 자동 수신합니다. 그리고 요청된 작업을 수행하기 위해 해당 노드에 리소스와 포드를 할당합니다.

쿠버네티스는 운영 체제(예: Red Hat Enterprise Linux)를 기반으로 실행되며, 노드에서 실행되는 컨테이너의 포드와 상호 작용합니다.

원하는 쿠버네티스 클러스터 상태에 따라 실행해야 할 애플리케이션이나 워크로드, 함께 사용하는 이미지, 사용 가능하도록 설정할 리소스, 기타 구성 세부 사항이 정의됩니다.

이러한 유형의 인프라를 사용하는 컨테이너를 관리하는 방식에는 거의 변화가 없습니다. 고객은 각각의 개별 컨테이너 또는 노드를 세부적인 수준까지 관리할 필요 없이 더욱 효과적으로 제어하면서, 개괄적인 수준의 작업만 하면 됩니다. 

쿠버네티스 실행 위치도 원하는 대로 선택할 수 있습니다. 즉, 베어 메탈 서버, 가상 머신(VM), 퍼블릭 클라우드 제공업체, 프라이빗 클라우드, 하이브리드 클라우드 환경 등에서 실행할 수 있습니다. 쿠버네티스의 주요 장점 중 하나는 다양한 종류의 인프라에서 작동한다는 것입니다.

컨테이너가 오픈 하이브리드 클라우드를 혁신하는 방법에 대해 Red Hat 리더들의 의견을 들어보세요.

Docker는 쿠버네티스가 오케스트레이션하는 컨테이너 런타임으로 사용할 수 있습니다. 쿠버네티스가 노드에 대해 포드를 예약하면 해당 노드의 kubelet(각 컨테이너의 실행을 보장하는 서비스)이 지정된 컨테이너를 실행하도록 Docker에 명령합니다.

그런 다음 kubelet은 Docker로부터 해당 컨테이너의 상태를 지속적으로 수집하고 컨트롤 플레인에서 해당 정보를 집계합니다. Docker는 컨테이너를 해당 노드로 가져와서 컨테이너를 시작하고 중지합니다.

Docker와 함께 쿠버네티스를 사용할 때 차이가 있다면 관리자가 모든 노드에서 모든 컨테이너에 대해 작업을 직접 수행하는 것이 아니라 자동화된 시스템이 이러한 작업을 Docker에 요청한다는 것입니다.

쿠버네티스를 시작할 준비가 되셨습니까? 이 온디맨드 교육 과정에서는 애플리케이션과 서비스를 컨테이너화한 다음 Docker를 사용하여 테스트하고, Red Hat OpenShift®를 사용하여 쿠버네티스 클러스터에 배포하는 방법을 알아봅니다.

쿠버네티스는 컨테이너화된 애플리케이션, 레거시 애플리케이션 및 클라우드 네이티브 애플리케이션과 마이크로서비스로 리팩토링되는 애플리케이션을 제공하고 관리하는 데 도움이 될 수 있습니다. 

개발 팀이 변화하는 비즈니스 요구 사항을 충족하려면 새로운 애플리케이션과 서비스를 신속하게 구축할 수 있어야 합니다. 클라우드 네이티브 개발은 컨테이너의 마이크로서비스에서부터 시작하는데, 이 때문에 개발 속도가 더 빨라지고 기존 애플리케이션을 더 쉽게 변환하고 최적화할 수 있습니다. 

쿠버네티스를 통한 애플리케이션 개발

프로덕션 애플리케이션은 멀티플 컨테이너에 걸쳐 있으며, 이러한 컨테이너는 멀티플 서버 호스트에 배포되어야 합니다. 쿠버네티스는 이러한 워크로드를 위해 규모에 맞는 컨테이너를 배포하는 데 필요한 오케스트레이션 및 관리 기능을 제공합니다.

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

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

Kubernetes explained - diagram

이를 프로덕션 환경과 멀티플 애플리케이션으로 확장한 후에는 개별 서비스를 제공하려면 공동 배치된 여러 컨테이너가 함께 작동해야 합니다. 

Linux 컨테이너는 마이크로서비스 기반 애플리케이션에 이상적인 애플리케이션 배포 유닛 및 독립적인 실행 환경을 제공합니다. 컨테이너에 마이크로서비스를 구현하면 스토리지, 네트워킹, 보안과 같은 서비스를 간편하게 오케스트레이션할 수 있습니다.

따라서 환경에서 컨테이너 수가 크게 증가하며 컨테이너가 누적될수록 복잡성도 증가합니다.

쿠버네티스는 컨테이너를 "포드"로 분류하여 컨테이너 급증과 관련된 여러 가지 문제를 해결합니다. 포드는 그룹화된 컨테이너에 추상화 계층을 추가하므로 사용자가 워크로드를 예약하고 네트워킹 및 스토리지와 같은 필수 서비스를 컨테이너에 제공할 수 있습니다. 

쿠버네티스의 또 다른 부분을 사용해 이러한 포드 전체에서 부하를 분산하고 적합한 수의 컨테이너를 실행하여 워크로드를 지원할 수 있습니다.

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

쿠버네티스는 오픈소스이므로 이 기술을 지원하는 정형화된 구조는 없으므로, 기업에서 일반적으로 사용할 수 있는 형태는 없습니다. 프로덕션 실행 단계에서 쿠버네티스 구현에 문제가 생긴다면 곤란해지며 고객도 마찬가지일 것입니다.

쿠버네티스를 자동차 엔진이라고 생각해보세요. 엔진은 그 자체로도 작동하지만 변속기와 차축 및 바퀴에 연결되면 차를 움직일 수 있습니다. 쿠버네티스를 설치하는 것만으로는 프로덕션 수준의 플랫폼을 갖출 수는 없습니다. 쿠버네티스가 완전히 작동하려면 추가 구성 요소가 필요합니다. 인증, 네트워킹, 보안, 모니터링, 로그 관리 및 기타 툴을 추가해야 합니다. 이때 Red Hat OpenShift를 사용할 수 있습니다. 바로 고객이 원하는 대로 튜닝한 컴플리트 카인 셈입니다. 

Red Hat OpenShift는 엔터프라이즈용 쿠버네티스입니다. 레지스트리, 네트워킹, 텔레메트리, 보안, 자동화, 서비스 등의 부가 기술이 모두 내장되어 있어 기업에서 강력하고 실효성 있는 쿠버네티스를 구축할 수 있습니다. Red Hat OpenShift는 쿠버네티스를 플랫폼의 중심 구성 요소로 포함하고 있으며 CNCF에서 인증한 쿠버네티스 오퍼링입니다.

개발자는 Red Hat OpenShift Container Platform의 확장성, 제어, 오케스트레이션 기능을 활용하여 컨테이너화된 새 애플리케이션을 구축 및 호스팅하고 클라우드에 배포함으로써 멋진 아이디어를 빠르고 쉽게 새로운 비즈니스로 만들어 낼 수 있습니다. 쿠버네티스 워크로드를 관리형 클라우드 서비스로 배포하거나 이동하려는 경우 OpenShift를 AWS(Amazon Web Services), Microsoft Azure, Google Cloud, IBM Cloud, 기타 공급업체를 기반으로 한 클라우드 네이티브 쿠버네티스 플랫폼으로 사용할 수도 있습니다. 

OpenShift 기반으로 구축되어 있으며, Red Hat Advanced Cluster Management와 Red Hat Ansible® Automation Platform을 함께 활용하여 퍼블릭 클라우드, 온프레미스 환경, 엣지 환경을 포함한 여러 위치에서 쿠버네티스 클러스터를 효율적으로 배포하고 관리할 수 있습니다.

하이브리드 환경의 구축과 자동화를 위해 Red Hat이 지원하는 방법을 알아보세요

활용 사례: 혁신적인 뱅킹 서비스를 제공하기 위한 클라우드 플랫폼 구축

아랍에미리트(UAE)의 최대 은행 중 하나인 Emirates NBD는 디지털 혁신을 위한 확장 가능하고 탄력적인 기반이 필요했습니다. Emirates NBD는 프로비저닝 속도가 느리고 복잡한 IT 환경으로 인해 어려움을 겪고 있었습니다. 서버 구축에는 2개월이 걸렸지만, 대규모 모놀리식 애플리케이션을 변경하는 데는 6개월 이상이 소요됐습니다.

컨테이너 오케스트레이션, 통합, 관리를 위해 Red Hat OpenShift Container Platform을 사용하여 중동 지역 최초로 은행에서 운영하는 규모에 따른 프라이빗 클라우드인 Sahab을 만들었습니다. Sahab은 프로비저닝에서 프로덕션까지 서비스형 모델을 통해 엔드 투 엔드 개발을 위한 애플리케이션, 시스템 및 기타 리소스를 제공합니다. 

Emirates NBD는 새로운 플랫폼을 통해 애플리케이션 프로그래밍 인터페이스(API)와 마이크로서비스를 사용하여 내부 팀 간 협업뿐 아니라 파트너와의 협업도 개선했습니다. 또한 애자일 및 DevOps 개발 사례를 도입하여 애플리케이션 시작 및 업데이트 주기를 단축했습니다.

컨테이너의 더 큰 가능성을 살펴보세요.

추가 자료

문서

컨테이너와 VM 비교

Linux 컨테이너 및 VM(가상 머신)은 다양한 IT 요소를 결합해 시스템의 나머지 부분으로 부터 격리하는 패키징된 컴퓨팅 환경입니다.

문서

컨테이너 오케스트레이션이란?

컨테이너 오케스트레이션은 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화합니다.

문서

Linux 컨테이너란?

Linux 컨테이너는 시스템에서 격리된 프로세스로, 이러한 프로세스를 지원하는 데 필요한 모든 파일을 제공하는 고유한 이미지에서 실행됩니다.

컨테이너에 대한 자세한 내용

제품

선택한 인프라에서 애플리케이션 출시 테스트를 완료한 통합 서비스 세트를 포함하는 엔터프라이즈 애플리케이션 플랫폼입니다.

리소스

교육

무료 교육 과정

Running Containers with Red Hat Technical Overview

무료 교육 과정

Containers, Kubernetes and Red Hat OpenShift Technical Overview

무료 교육 과정

Developing Cloud-Native Applications with Microservices Architectures