수 많은 우문은 현답을 만든다

Openshift Overview 본문

개발지식/Openshift (k8s)

Openshift Overview

aiden.jo 2020. 7. 10. 17:11

안녕하세요, 조영호입니다.

오늘은 Openshift의 기초 개념에 대해 살펴보도록 하겠습니다.

 

 

Openshift란?
오픈시프트는 레드헷에서 개발한 컨테이너 엔진으로 오픈소스인 쿠버네티스(k8s)를 기반으로 개발되었습니다. Openshift 자체는 3rd-party 오픈소스들을 Docker image 형태로 가지고 있으며 사용자들에게 카탈로그 형태로 제공을 하고 있습니다. Openshift Admin UI(콘솔)를 사용하면 편리하게 Web Framework, DB 등을 Provisioning할 수 있습니다.

 

Openshift 설치
개인적으로 설치가 복잡하고 조금 고생을 했던 부분입니다. 저는 1 Master node, 3 Worker node 로 Openshift Cluster 구성했으며 그 과정에서 Crio, Ansible, Shell script를 사용했습니다. Crio는 Openshift에서 Docker Engine을 대체하기 위한 엔진이며 더 가볍게 구성되어 있습니다. Ansible과 Shell은 다른 포스팅에서 다루도록 하겠습니다.

 

Openshift 콘솔
Openshift 클러스터 설치 이후에 부여 된 IP와 Port번호로 OCP(Openshift Container Platform) 콘솔에 접속할 수 있습니다. 콘솔에서는 처음에 말씀드린 바와 같이 Project 를 만들거나 다양한 3rd party 오픈소스 등을 배포해서 사용할 수 있습니다. 또한 외부 yaml 파일이나 image 등을 import하거나 작성한 image파일을 export함으로써 애플리케이션을 배포 및 운영할 수 있습니다.

오픈시프트 콘솔

 

Openshift 아키텍처

OCP는 layered system(계층화 시스템)으로 개발자들이 kubernetes를 더욱 쉽게 구성하도록 하는 컨셉입니다. OCP는 Routing Layer와 Service Layer를 가지고 있으며 Node 영역, Storage 영역, Cloud/On-prem 영역으로 구성됩니다. 서비스를 위한 Pod들은 실제로 Worker Node에서 동작하며 개발자는 Master Node 에 접속해서 Pods를 관리합니다.

 

OCP의 작동 방식에 대해 설명드리자면, OCP는 사용자의 REST API 호출에 의해 제어되며 컨트롤러는 이 API에서 상태를 읽고 오브젝트들의 상태를 동기화 하는 방식으로 제어됩니다. 예를들어, 사용자가 빌드 요청을 하면 빌드 오브젝트가 작성 됩니다. 빌드 컨트롤러는 새 빌드가 생성 되었음을 확인하고 클러스터에서 프로세스를 띄워 해당 빌드를 수행합니다. 빌드 작업이 완료되면 빌드 컨트롤러는 REST API를 통해 빌드 오브젝트를 업데이트하고 빌드가 완료되었음을 사용자에게 반환합니다.

 

 

감사합니다.