개요
쿠버네티스 오퍼레이터는 쿠버네티스 애플리케이션을 패키징, 배포 및 관리하는 방법입니다. 쿠버네티스 애플리케이션은 쿠버네티스에 배포되고 쿠버네티스 API(애플리케이션 프로그래밍 인터페이스) 및 kubectl 툴링을 사용해 관리됩니다.
쿠버네티스 오퍼레이터는 쿠버네티스 API의 기능을 확장하여 쿠버네티스 사용자를 대신해 복잡한 애플리케이션의 인스턴스를 생성, 설정 및 관리하는 애플리케이션별 컨트롤러입니다.
기본 쿠버네티스 리소스 및 컨트롤러 개념에 기반을 두어 구축되지만 오퍼레이터가 관리하는 소프트웨어의 전체 라이프사이클을 자동화하는 데 필요한 도메인 또는 애플리케이션별 정보가 담겨 있습니다.
쿠버네티스에서 컨트롤 플레인의 컨트롤러는 클러스터의 원하는 상태를 실제 상태와 반복적으로 비교하는 제어 루프를 구현합니다. 클러스터의 실제 상태가 원하는 상태와 일치하지 않으면 컨트롤러는 이 문제를 해결하기 위한 작업을 수행합니다.
오퍼레이터는 사용자 정의 리소스(CR)를 사용하여 애플리케이션과 그 구성 요소를 관리하는 사용자 정의 쿠버네티스 컨트롤러입니다. 대략적인 수준의 구성 및 설정은 CR 내 사용자가 제공합니다. 쿠버네티스 오퍼레이터는 대략적인 수준의 지시문을 오퍼레이터의 로직 안에 임베드된 모범 사례에 근거하여 상세 수준의 작업으로 변환합니다.
사용자 정의 리소스는 쿠버네티스 내의 API 확장 메커니즘입니다. 사용자 정의 리소스 정의(CRD)는 CR을 정의하고 오퍼레이터 사용자에게 제공되는 모든 설정 목록을 나열합니다.
쿠버네티스 오퍼레이터는 CR 유형을 감시하고 애플리케이션별 작업을 수행하여 현재 상태를 해당 리소스에서 원하는 상태와 일치시킵니다.
쿠버네티스 오퍼레이터는 사용자 정의 리소스 정의를 통해 새로운 개체 유형을 도입합니다. 사용자 정의 리소스 정의는 kubectl을 통한 상호 작용과 롤 기반 액세스 제어(RBAC) 정책 내 포함 사항 등의 빌트인 개체와 마찬가지로 쿠버네티스 API를 이용해 처리할 수 있습니다.
쿠버네티스 오퍼레이터는 애플리케이션이 실행되는 동안 이를 지속적으로 모니터링하고, 시간 경과에 따라 자동으로 데이터 백업, 장애 복구, 애플리케이션 업그레이드 작업을 할 수 있습니다.
쿠버네티스 오퍼레이터가 수행하는 작업에는 거의 모든 것이 포함될 수 있습니다. 즉, 복잡한 애플리케이션의 스케일을 조정하고 애플리케이션 버전을 업그레이드할 수 있을 뿐 아니라 특수 하드웨어로 연산 클러스터 내 노드의 커널 모듈을 관리할 수도 있습니다.
오퍼레이터 프레임워크
오퍼레이터 프레임워크는 개발자 및 런타임 쿠버네티스 툴을 제공하여 오퍼레이터 개발 가속화를 지원하는 오픈소스 프로젝트입니다.
오퍼레이터 프레임워크에는 다음이 포함되어 있습니다.
- 오퍼레이터 SDK: 개발자가 쿠버네티스 API 복잡성에 관한 지식이 없어도 전문성을 바탕으로 오퍼레이터를 구축하도록 지원합니다.
- 오퍼레이터 라이프사이클 관리: 쿠버네티스 클러스터 전반에서 실행 중인 모든 오퍼레이터의 설치, 업데이트 및 라이프사이클 관리를 감독합니다.
- 오퍼레이터 미터링: 전문 서비스를 제공하는 오퍼레이터에 대한 사용량 보고를 지원합니다.
Red Hat OpenShift에서 오퍼레이터 사용하기
Red Hat® OpenShift®는 자동화된 풀스택 오퍼레이션을 통해 하이브리드 클라우드 및 멀티클라우드 배포를 관리하는 엔터프라이즈 레디 쿠버네티스 컨테이너 플랫폼입니다.
Red Hat OpenShift는 쿠버네티스 오퍼레이터를 사용해 전체 플랫폼을 자율적으로 실행하는 동시에 쿠버네티스 개체를 통해 기본적으로 설정을 노출하므로 빠른 설치와 빈번하고 강력한 업데이트가 가능합니다.
Red Hat OpenShift에는 소프트웨어 공급업체 및 오픈소스 프로젝트의 인증된 오퍼레이터 레지스트리인 임베디드 OperatorHub가 포함되어 있습니다. Red Hat OpenShift와 연동되는 것으로 검증되고 손쉽게 라이프사이클을 관리하도록 패키징된 오퍼레이터 라이브러리를 OperatorHub 내부에서 검색하고 설치할 수 있습니다.