RHOCP 구조의 이해
그림. 1 Architecture
OpenShift가 사용하는 Red Hat CoreOS는 컨테이너 실행을 위한 불변 운영 체제를 제공하는 데 중점을 둔 Linux 배포판인데, OS에 변경이 있을 경우(보안 패치 등) 파일을 변경하지 않고 OS 이미지를 통째로 교체하는 방식으로 업데이트가 진행 된다.
CRI-O는 OCI(Open Container Initiative) 호환 런타임을 사용할 수 있도록 Kubernetes CRI(컨테이너 런타임 인터페이스)를 구현한 것. CRI-O에서는 runc(Docker 서비스에서 사용), libpod(Podman에서 사용) 또는 rkt(CoreOS에서)와 같이 CRI를 충족하는 모든 컨테이너 런타임을 사용할 수 있다.
Kubernetes는 컨테이너를 실행하는 호스트(실제 또는 가상)의 클러스터를 관리한다.
Etcd는 Kubernetes 클러스터 내의 컨테이너와 다른 리소스에 대한 구성 및 상태 정보를 저장하기 위해 Kubernetes가 사용하는 분산 키-값 저장소입니다.
CRD(사용자 지정 리소스 정의)는 Etcd에 저장하고 Kubernetes로 관리하는 리소스 유형입니다. 이러한 리소스 유형은 OpenShift가 관리하는 모든 리소스의 상태 및 구성을 형성합니다.
컨테이너화된 서비스에서는 네트워킹 및 권한 부여와 같은 여러 PaaS 인프라 기능을 이행합니다. RHOCP는 대부분의 내부 함수에 대해 Kubernetes의 기본 컨테이너 인프라 및 기본 컨테이너 런타임을 사용합니다. 즉, 대부분의 RHOCP 내부 서비스는 Kubernetes를 통해 구성된 컨테이너로 실행됩니다.
런타임 및 xPaaS는 개발자가 사용할 준비가 된 기본 컨테이너 이미지이며, 각각 특정 런타임 언어 또는 데이터베이스로 사전 구성됩니다. xPaaS 제품은 JBoss EAP 및 ActiveMQ와 같은 Red Hat 미들웨어 제품의 기본 이미지 집합입니다. RHOAR(Red Hat OpenShift 애플리케이션 런타임)은 OpenShift에서 클라우드 네이티브 애플리케이션에 최적화된 런타임 집합입니다. 사용 가능한 애플리케이션 런타임은 Red HatJBoss EAP, OpenJDK, Thorntail, Eclipse Vert.x, Spring Boot, Node.js입니다.
RHOCP는 사용자 애플리케이션 및 RHOCP 서비스 관리를 위해 웹 UI 및 CLI 관리 툴을 제공합니다. OpenShift 웹 UI 및 CLI 툴은 IDE 및 CI 플랫폼과 같은 외부 툴에서 사용할 수 있는 REST API를 통해 빌드됩니다.