쿠버네티스 클러스터란?

URL 복사
  • 쿠버네티스 클러스터는 컨테이너화된 애플리케이션을 실행하기 위한 일련의 노드 머신입니다. 
  • 쿠버네티스 클러스터의 원하는 상태는 워크로드, 이미지, 리소스, 구성을 정의합니다.
  • 쿠버네티스 클러스터는 컨트롤 플레인이 노드를 관리하고 노드가 포드를 통해 태스크를 실행하는 구조입니다. 서비스는 네트워킹을, 볼륨은 영구 데이터 스토리지를, 네임스페이스는 가상 격리를 지원합니다.
  • 쿠버네티스 클러스터 관리란 IT 팀이 쿠버네티스 클러스터 그룹을 관리하는 방식입니다.
  • OpenShift, Advanced Cluster Management, Ansible Automation Platform과 같은 Red Hat 제품은 클라우드, 온프레미스, 엣지 전반에서 멀티클러스터 배포를 효율적으로 관리합니다.

쿠버네티스 클러스터란?

쿠버네티스 클러스터는 컨테이너화된 애플리케이션을 실행하기 위한 일련의 노드 머신입니다. 쿠버네티스를 실행한다면 이는 곧 클러스터를 실행하는 것입니다.

클러스터는 최소 하나의 컨트롤 플레인 및 하나 이상의 컴퓨팅 머신 또는 노드로 구성됩니다. 컨트롤 플레인은 어느 애플리케이션을 실행하고 애플리케이션이 어느 컨테이너 이미지를 사용할지와 같이 클러스터를 원하는 상태로 유지 관리합니다. 노드는 실제로 애플리케이션과 워크로드를 실행합니다.

쿠버네티스의 핵심 장점은 물리 머신, 가상 머신, 온프레미스, 클라우드에 구애받지 않고 머신 그룹 전체에서 컨테이너를 스케줄링하고 실행할 수 있다는 점이며, 그 중심에는 클러스터가 있습니다. 쿠버네티스 컨테이너는 개별 머신에 종속되지 않고 클러스터 전체에 걸쳐 추상화됩니다.

엔터프라이즈급 쿠버네티스 소개영어 (English) 버전으로 제공됩니다 (한국어 미지원)

쿠버네티스 클러스터의 원하는 상태란 특정 시점에 애플리케이션과 인프라가 어떤 모습으로 어떻게 실행되어야 하는지를 정의한 청사진입니다.

클러스터에 단계별 명령을 내리는 방식(명령형) 대신, YAML 또는 JSON 파일에 원하는 최종 상태를 선언하고(선언형), 쿠버네티스는 이를 지속적으로 유지하도록 작업합니다.

이 청사진에는 일반적으로 다음 항목이 포함됩니다.

  • 워크로드: 실행해야 하는 애플리케이션, 마이크로서비스 또는 배치 작업
  • 규모: 각 컨테이너의 정확한 복사본(복제본) 수
  • 리소스: 각 애플리케이션에 할당할 CPU와 메모리 용량
  • 네트워크 및 보안: 개방할 포트, 트래픽 라우팅 방식, 액세스 권한이 있는 사용자
  • 복원력: 컨테이너가 충돌하거나 하드웨어 노드에 장애가 발생했을 때의 대응 방식

쿠버네티스 클러스터의 원하는 상태는 실행해야 할 애플리케이션이나 워크로드, 사용하는 이미지, 사용할 수 있는 리소스 등과 같은 기타 구성 세부 사항을 정의합니다.

원하는 상태는 매니페스트로 이루어진 구성 파일을 통해 정의됩니다. 매니페스트는 실행할 애플리케이션 유형과 정상적인 시스템 운영에 필요한 복제본 수를 선언하는 JSON 또는 YAML 파일입니다.

클러스터의 원하는 상태는 쿠버네티스 API를 통해 정의됩니다. 명령줄에서 kubectl을 사용하거나 API를 통해 클러스터와 상호작용하여 원하는 상태를 설정하거나 수정할 수 있습니다.

쿠버네티스는 원하는 상태에 부합하도록 자동으로 클러스터를 관리합니다. 간단한 예를 들어 원하는 상태가 '3'인 애플리케이션을 배포한다고 가정해 보겠습니다. 즉, 애플리케이션의 복제본 3개가 실행되어야 합니다. 이 컨테이너 중 하나가 충돌하면 쿠버네티스는 복제본이 2개만 실행 중임을 확인하고 1개를 추가하여 원하는 상태를 충족합니다.

또한 쿠버네티스 패턴을 사용하면 부하에 따라 클러스터 규모를 자동으로 관리할 수 있습니다. 

쿠버네티스 클러스터와 노드 및 포드의 관계

앞서 클러스터를 노드의 집합으로 정의했습니다. 이제 클러스터의 역할을 이해하는 데 도움이 되는 몇 가지 쿠버네티스 용어를 살펴보겠습니다.

  • 컨트롤 플레인: 쿠버네티스 노드를 제어하는 프로세스의 컬렉션입니다. 여기에서 모든 태스크 할당이 시작됩니다.
  • 노드: 컨트롤 플레인에서 할당한 요청 태스크를 수행하는 머신입니다.
  • 포드: 단일 노드에 배포된 하나 이상의 컨테이너 집합입니다. 포드는 쿠버네티스에서 가장 작고 단순한 오브젝트입니다.
  • 서비스: 여러 포드에서 실행되는 애플리케이션을 네트워크 서비스로 노출하는 방식입니다. 이를 통해 작업 정의와 포드를 분리할 수 있습니다.
  • 볼륨: 포드의 컨테이너에서 액세스할 수 있는 데이터를 포함하는 디렉터리입니다. 쿠버네티스 볼륨은 이를 포함하는 포드와 동일한 수명을 가집니다. 볼륨은 포드 내에서 실행되는 개별 컨테이너보다 오래 유지되므로 컨테이너가 다시 시작되어도 데이터가 보존됩니다.
  • 네임스페이스: 가상 클러스터입니다. 네임스페이스를 사용하면 쿠버네티스가 하나의 물리적 클러스터 내에서 여러 클러스터(여러 팀 또는 프로젝트의 경우)를 관리할 수 있습니다.

쿠버네티스 클러스터 관리란 IT 팀이 쿠버네티스 클러스터 그룹을 관리하는 방식입니다.

현대적인 클라우드 네이티브 애플리케이션으로 인해 쿠버네티스 환경은 고도로 분산되고 있습니다. 즉, 온프레미스의 여러 데이터센터, 퍼블릭 클라우드 및 엣지 전반에 배포될 수 있습니다.

쿠버네티스를 규모에 따라 또는 프로덕션에서 사용하려는 조직은 개발, 테스트, 프로덕션 등을 위해 환경 전반에 분산된 여러 클러스터를 보유하고 있으므로 이러한 클러스터를 효율적으로 관리할 수 있어야 합니다.

쿠버네티스 클러스터 관리에 대해 자세히 알아보기

쿠버네티스 클러스터 관리의 장점

쿠버네티스 클러스터를 효과적으로 관리하면 컨테이너화된 애플리케이션의 배포, 확장, 운영을 자동화하여 조직의 소프트웨어 제공 방식을 혁신할 수 있습니다.

주요 장점은 다음과 같습니다.

  • 확장성 개선: 수요에 따라 애플리케이션 규모를 즉시 확장하거나 축소할 수 있습니다. 트래픽 급증에 대응하거나 사용량이 적은 시간대에 비용을 절감할 수 있도록 클러스터가 워크로드를 자동으로 조정합니다.
  • 복원력 향상: 쿠버네티스는 컨테이너와 노드의 상태를 지속적으로 모니터링하여 고가용성을 유지합니다. 컨테이너가 충돌하거나 하드웨어 장애가 발생하면 쿠버네티스가 자동으로 컨테이너를 다시 시작하거나 교체하여 다운타임을 방지합니다.
  • 리소스 효율성: 쿠버네티스는 워크로드의 CPU 및 메모리 요구 사항을 평가하고 각 워크로드를 적절한 노드에 배치하여 인프라 활용도를 극대화하고 리소스 낭비를 최소화합니다.
  • DevOps 및 CI/CD 지원: 쿠버네티스는 선언형 방식을 사용하므로 인프라를 코드로 관리할 수 있습니다. 이를 CI/CD 파이프라인에 원활하게 통합하여 테스트, 배포, 롤아웃을 자동화하고 DevOps 팀이 더욱 빠르고 민첩하게 협업할 수 있도록 지원합니다.

Red Hat은 쿠버네티스를 비롯한 오픈소스 컨테이너 기술을 선도하며 활발히 구축하는 기업으로서 컨테이너 인프라의 보안, 간소화, 자동 업데이트를 위한 필수 툴을 개발합니다. 

Red Hat® OpenShift®는 애플리케이션을 규모에 맞춰 빌드, 현대화, 배포할 수 있는 통합 플랫폼입니다. Red Hat OpenShift를 사용하면 운영 팀과 개발 팀이 하나의 통합 플랫폼에서 협업할 수 있습니다. 빌트인 CI/CD 파이프라인과 애플리케이션 코드에서 컨테이너까지 연결되는 개발자 친화적인 S2I(Source-to-Image) 기능을 비롯한 개발자 친화적인 워크플로우를 지원합니다. 쿠버네티스를 기반으로 구축된 Red Hat OpenShift는 애플리케이션을 원하는 인프라에서 출시할 수 있는 일련의 완전한 서비스로 더 스마트하고 빠르게 작업할 수 있도록 지원합니다. 

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

Red Hat을 통해 하이브리드 환경을 구축하고 자동화하는 방법 알아보기

 

Red Hat Advanced Cluster Management for Kubernetes | 제품 체험판

쿠버네티스 클러스터에 대한 엔드 투 엔드 가시성 및 제어 지원

추가 자료

쿠버네티스 오퍼레이터란?

쿠버네티스 오퍼레이터는 쿠버네티스 API의 기능을 확장하여 애플리케이션을 패키징, 배포, 관리하는 방식입니다.

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

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

쿠버네티스란?

쿠버네티스는 컨테이너화된 애플리케이션을 배포하고 확장할 때 수반되는 다수의 수동 프로세스를 제거하는 컨테이너 오케스트레이션 플랫폼입니다.

컨테이너 리소스

관련 기사