Jump to section

쿠버네티스 API란?

URL 복사

쿠버네티스 API는 쿠버네티스 컨트롤 플레인의 프런트엔드이며 사용자가 쿠버네티스 클러스터와 상호 작용하는 방식입니다. 애플리케이션 프로그래밍 인터페이스(API) 서버는 요청이 유효한지 여부를 판별한 후 요청을 처리합니다.

본질적으로 API는 쿠버네티스 클러스터를 관리, 생성, 구성하는 데 사용되는 인터페이스입니다. 이 인터페이스를 통해 사용자, 외부 구성 요소, 클러스터의 각 부분이 서로 통신합니다.

쿠버네티스 컨트롤 플레인의 중심에는 API 서버와 이 서버가 노출하는 HTTP API가 있어, 쿠버네티스 오브젝트의 상태를 쿼리하고 조작할 수 있습니다. 

쿠버네티스 API의 전체 컨텍스트를 이해하기 위해 쿠버네티스가 무엇인지를 잠시 간략하게 살펴보겠습니다. 

쿠버네티스는 컨테이너 오케스트레이션을 위한 오픈소스 플랫폼입니다. 컨테이너는 포함된 애플리케이션을 단계(개발, 프로덕션 등)와 환경(온프레미스, 퍼블릭 클라우드, 프라이빗 클라우드, 하이브리드 클라우드, 멀티클라우드) 간에 쉽게 이동하면서도 기능을 온전히 유지할 수 있도록 애플리케이션을 전체 실행(runtime) 환경과 함께 번들링하고 분리할 수 있게 해주는 기술입니다. 

따라서 컨테이너 오케스트레이션 플랫폼인 쿠버네티스는 컨테이너화된 애플리케이션을 관리, 배포, 확장하는 데 수반되는 다수의 수동 프로세스를 자동화합니다.

컨테이너화된 애플리케이션을 실행하는 머신('노드'라고 하는 물리 또는 가상 서버)을 그룹화하여 클러스터를 생성한 다음, 이 클러스터를 쿠버네티스로 관리하고 오케스트레이션합니다.

단일 머신 또는 노드에서 실행되고 리소스를 공유하는 컨테이너 그룹을 '포드'라고 하는데, 포드에 컨테이너가 한 개만 있을 수 있습니다. 이 경우 '포드'라는 말을 '컨테이너'로 바꿔도 여전히 개념은 정확하게 유지됩니다.

쿠버네티스 클러스터는 컨트롤 플레인과 애플리케이션 플레인이라는 두 부분으로 되어 있습니다. 컨트롤 플레인은 사용자가 클러스터와 상호 작용하고 커맨드 라인 툴인 kubectl을 사용해 커맨드 라인 내에서 클러스터가 할 작업을 지시하는 방식인 API가 있는 곳입니다. 최종 사용자, 클러스터 자체, 외부 구성 요소는 API를 통해 서로 통신할 수 있습니다. 

클러스터마다 원하는 상태가 있는데, 이 상태는 곧 실행할 애플리케이션 또는 워크로드와 기타 설정 관련 상세 정보(사용할 이미지, 필요한 리소스 등)를 정의하는 상태를 뜻합니다. 원하는 클러스터 상태는 API를 사용해 설정됩니다. 즉 kubectl 툴의 커맨드 라인을 이용하거나 API를 통해 클러스터와 통신함으로써 원하는 상태를 설정하거나 수정합니다.

쿠버네티스는 원하는 상태에 부합하도록 자동으로 클러스터를 관리합니다. 쿠버네티스는 워크로드에 주어진 매개 변수에 따라 항상 자동 관리 및 자동 복구를 시도한다는 점에서 선언적입니다.

쿠버네티스 오퍼레이터는 kubectl 툴링을 통해 API를 사용하여 애플리케이션을 패키징, 배포, 관리하는 방법입니다. 

쿠버네티스에서 오퍼레이터는 쿠버네티스 API의 기능을 확장하여 사용자를 대신해 복잡한 애플리케이션의 인스턴스를 생성, 설정, 관리하는 애플리케이션별 컨트롤러입니다. 오퍼레이터는 도메인별 또는 애플리케이션별 정보를 포함하여 자신이 관리하는 소프트웨어의 전체 라이프사이클을 쿠버네티스가 자동화할 수 있게 합니다.

오픈소스 컨테이너 기술의 리더이자 고객의 컨테이너 인프라를 관리할 수 있는 다양한 툴 및 제품을 만드는 Red Hat은 고객이 쿠버네티스와 컨테이너를 도입할 수 있게 도와드립니다.

Red Hat® OpenShift®를 통해 엔터프라이즈 수준의 오픈소스 컨테이너 플랫폼과 함께, 하이브리드 클라우드와 멀티클라우드 배포를 관리하는 데 필요한 모든 것을 확보할 수 있습니다. Red Hat은 고객이 비즈니스를 클라우드로 전환하면서도 계속해서 현재 인프라를 최대한 활용할 수 있게 도와드립니다. 

개발자는 단일 통합 플랫폼의 일부로 언어, 미들웨어, 프레임워크, 데이터베이스를 선택하고 자동화를 배포하여 효율성과 생산성을 증진할 수 있습니다. 

추가 자료

문서

컨테이너와 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