쿠버네티스 포드(Kubernetes pod)란?

URL 복사

쿠버네티스 포드는 Linux® 컨테이너를 하나 이상 모아 놓은 것으로, 쿠버네티스 애플리케이션의 최소 단위입니다. 강하게 결합된 여러 개의 컨테이너로 구성된 포드도 있고(고급 활용 사례), 단일 컨테이너로만 이루어진 포드도 있습니다(더 일반적인 활용 사례). 컨테이너를 쿠버네티스 포드로 그룹화하는 이유는 아래의 설명과 같이 리소스를 더 지능적으로 공유하기 위해서입니다.

쿠버네티스 시스템에서는 같은 포드에 속한 컨테이너끼리 동일한 컴퓨팅 리소스를 공유합니다. 이러한 컴퓨팅 리소스를 쿠버네티스에 풀링하여 클러스터를 만들고, 이를 바탕으로 더 강력하고 지능적으로 분산된 애플리케이션 실행 시스템을 제공할 수 있습니다. 컨테이너, 포드, 노드, 클러스터 등 쿠버네티스의 구성 요소를 처음에는 이해하기가 쉽지 않을 수도 있습니다. 쿠버네티스 포드의 장점을 이해하는 데 가장 중요한 요소가 아래에 정리되어 있습니다.

하드웨어 유닛

노드: 쿠버네티스에서 최소 단위의 컴퓨팅 하드웨어이며, 하나의 개별 머신으로 생각하면 됩니다.

클러스터: 지능적인 리소스 공유와 균형 배분을 위해 여러 노드를 묶은 그룹입니다.

소프트웨어 유닛

Linux 컨테이너: 하나 이상의 프로세스 모음이며, 실행에 필요한 파일도 모두 들어 있어 머신 간 이식이 가능합니다.

쿠버네티스 포드: 하나 이상의 Linux 컨테이너 모음이며, 클러스터 관리를 통한 리소스 공유의 장점을 극대화하기 위해 패키지로 묶여 있습니다.

기본적으로 쿠버네티스에서는 개별 하드웨어를 노드라고 부릅니다. 이 노드가 여러 개 모여 클러스터를 이루며, 이로써 필요에 따라 컴퓨팅 성능을 분산시킬 수 있습니다. 이 클러스터에서 실행되는 것이 포드입니다. 강력하게 결합된 포드 속 컨테이너는 같은 클러스터에서 함께 실행됩니다.

포드와 클러스터의 관계 때문에 쿠버네티스는 직접 컨테이너를 실행하지 않습니다. 그 대신 포드를 실행하면서 포드 속의 각 컨테이너가 동일한 리소스 및 로컬 네트워크를 공유하게 합니다. 이런 식으로 컨테이너를 그룹화하면 실제로는 어느 정도 분리된 상태더라도 마치 동일한 물리 하드웨어를 공유하는 것처럼 컨테이너끼리 서로 통신할 수 있게 됩니다.

이렇게 컨테이너를 포드로 구성하는 것이 바로 쿠버네티스의 유명한 기능, 바로 복제의 토대가 됩니다. 컨테이너를 모아 포드를 만들면 쿠버네티스는 복제 컨트롤러를 사용하여 필요에 따라 애플리케이션을 수평으로 스케일할 수 있습니다. 다시 말해, 어떤 포드 하나가 과부하 상태가 되면 쿠버네티스는 자동으로 이를 복제한 다음 클러스터에 배포할 수 있습니다. 쿠버네티스 포드는 과부하 상태에서의 정상 작동을 지원할 뿐만 아니라 지속적으로 복제되면서 시스템의 내장애성을 제공합니다.

Red Hat 리소스

포드와 같은 재사용 가능한 요소의 이점을 극대화하는 것이 쿠버네티스 시스템의 핵심 장점입니다. 시행착오를 거쳐 프로덕션 환경에서 최상의 쿠버네티스 활용 사례를 찾아내기까지 몇 년이 걸릴 수도 있습니다. 순식간에 배포되는 클라우드 네이티브 애플리케이션의 시대에 이를 감당할 수 있는 기업은 거의 없습니다.

그러나 쿠버네티스는 오픈 표준을 기반으로 구현되었기 때문에 얼리 어답터들의 시행착오에서 성공(및 실패)의 패턴이 나타났습니다. 많은 기업에서는 이러한 패턴을 바탕으로 만든 복제 가능한 설계를 사용해서 초기 도입에 박차를 가하고 있습니다.

저자 Bilgin Ibryam과 Roland Huß가 O’Reilly를 통해 제공하는 쿠버네티스 패턴: 클라우드 네이티브 애플리케이션 설계에 재사용 가능한 요소(Kubernetes patterns: Reusable elements for designing cloud-native applications)에서는 쿠버네티스에서 클라우드 네이티브 애플리케이션을 설계하고 구현할 때 많이 쓰는 재사용 가능 요소와 패턴, 원칙, 프랙티스를 자세히 소개합니다.

e-book 다운로드
허브

레드햇 공식 블로그

레드햇 공식 블로그에서 고객, 파트너, 커뮤니티 에코시스템 등 현재 화제가 되는 최신 정보를 살펴 보세요.

모든 Red Hat 제품 체험판

무료 제품 체험판을 통해 핸즈온 경험을 얻고, 자격증 시험에 대비하거나 해당 제품이 조직에 적합한지 평가할 수 있습니다.

추가 자료

쿠버네티스(Kubernetes, k8s)란? 개념, 사용법, 특징 및 차이점

쿠버네티스(Kubernetes, k8s)는 컨테이너 오케스트레이션과 자동화 도구로 컨테이너화된 애플리케이션 관리와 배포를 수행하는 플랫폼입니다. 개념과 사용법을 알아보세요.

서버리스 아키텍처 비교: 레드햇 오픈시프트 서버리스 소개

레드햇 오픈시프트 서버리스는 쿠버네티스를 기반으로 서버리스 워크로드를 배포하고 관리하도록 지원합니다. 서버리스 아키텍처의 차별성과 활용 방법을 알아보세요.

쿠버네티스 Java 클라이언트란?

쿠버네티스 Java 클라이언트는 쿠버네티스와 상호 작용할 수 있도록 Java 프로그래밍 언어 사용을 지원하는 클라이언트 라이브러리입니다.

컨테이너 리소스

관련 기사