클라우드 및 DevOps로의 전환을 위한 RedHat OpenShift

웨비나 시청 후 메모한 내용입니다.
jongcloud's avatar
May 07, 2024
클라우드 및 DevOps로의 전환을 위한  RedHat OpenShift

유투브에 Openshift 관련 웨비나 자료가 있어서 정리하였음. 2021년 자료지만 Openshift의 개념을 잡는데는 충분해보임

대표적인 클라우드 서비스 형태

  • IaaS
  • PaaS
  • SaaS
 

MSA아키텍처

최대한 서비스를 구성하는 요소들을 쪼개서 독립적으로 동작할 수 있게끔
릴리즈 단축, 서비스 고가용성, 뛰어난 복구 능력, 높은 확장성, 손쉬운 배포
 

컨테이너 관리 플랫폼의 필요성

하나의 컨테이너를 AWS, GCP, Azure 등 올릴때.
현대의 컨테이너는 하나의 컨테이너 일 수 없다.
메일발송 시스템을 올릴때 MSA 아키텍쳐로 볼때
  • 주소록
  • 로그인
  • 발송
  • 로그인
  • 첨부파일
등등 여러 서비스(컨테이너)가 필요하다.
즉 하나의 어플리케이션에 수십개의 컨테이너가 문제없이 돌아가야 정상적인 운영이 가능하다.
 
이때 많은 사람들이 오픈소스 기반의 쿠버네티스를 사용한다.
그러나 실제 엔터프라이즈 환경에서 쿠버네티스를 운영할때는 네트워크, 레지스트리, 자동화. 보안, 텔레메트리.. 등등 많은것들을 고려해야한다.
 
이 많은 요소들을 수동으로 구성하기는 매우 힘들다.
 

레드햇 오픈시프트 컨테이너 플랫폼.

이런 쿠버네티스 관련 요소들을 수월하게 운영할 수 있는 플랫폼
 

기본 아키텍쳐

notion image
  1. 인스트럭처 : AWS , VM, openstack 등
  1. OS : Red Hat Core OS
    1. 리눅스 환경에서 컨테이너 운영에 필요한 요소들만 포함하여 경량화된 OS
  1. 쿠버네티스
  1. 오퍼레이터
    1. notion image
      • 각자 다른 서드파티 밴더와 협력해서 개발. 관리. 설치. 성능 튜닝 툴 등이 Red hat에서 인증한 벤더들로 구성
      • 예를 들어 mongoDB를 설치한다고 하면, 이때 DB를 올리기 위해 필요한 환경적인 기능들을 제공해준다. 이 오퍼레이터를 통해 설치할 수 있다.
  1. 서비스들 (젠킨스, tekton, elasticsearch, kibana 등등.. )
 

OCP 구성 요소

  • 클러스터
    • 마스터노드(etcd, 쿠버엔진, 최소한의 인프라서비스)
    • 워커노드 (실제 어플리케이션, 어플리케이션을 운영하기 위한 구성요소( dns, 레지스트리, 모니터링 툴)
  • 컨테이너 이미지와 이미지 레지스트리
    • 바이너리(image)와 런타임(container) 관계라고 생각할 수 있다.
    • 컨테이너 이미지
    • Dockerfile
    • S2I 빌더 이미지
이미지를 잘 관리. 이미지를 레포지토리 형태로 모아놓고, 이미지 레지스트리(저장소)에 버전관리.
  • 레지스트리 : 카탈로그, Nexus, JFrog, Red Hat Quay 등
엔터프라이즈 수준의 높은 신뢰성을 갖고있다.
 

OCP에서 어플리케이션을 서비스하는 과정

  1. BuildConfig
    1. notion image
      이미지를 어떻게 빌드할 것인가?
      • DockerFile,
       
  1. DeploymentConfig
    1. notion image
      이미지를 어떻게 배포할 것인가?
       
  1. Replication Controller
    1. notion image
       
  1. Pods & Service
    1. notion image
       
  1. Route
    1. notion image
 

OpenShift 로깅 & 모니터링

로깅 데이터들이 종속된 하드웨어 스토리지에 의존을 하게 된다.
컨테이너 환경의 경우 하드웨어 종속되어있는것이 아니기때문에 ( + MSA 아키텍쳐이기때문에 로그도 흩어져 있다)
 
[로그]
  1. 로그 스트림
  1. 로그 적재
  1. 로그 저장
  1. 로그 대시보드
 
  • fluentd (로그 적재)
  • elasticsearch (수집된 로그 저장)
  • kibana (로그 시각화)
 
[매트릭] - (모니터링)
notion image
  • 매트릭? 리소스의 상태값. 일반적으로 숫자. 시간 베이스
    • (로깅데이터는 문자열 기반 데이터)
  • openshift API가 디스커버리 라는 과정을 통해서 metric을 pull 하는 방식으로 가져온다.
  • Prometheus (시계열 DB의 속성을 갖고있음)
  • Grafana (시각화)
 

OCP 기타 구성 요소

  1. 이미지 레지스트리
      • OpenShift Container Storage
        • 오브젝트 스토리지 , PVC 등등 대응가능
        • 오픈시프트 전용 스토리지.
  1. OpenShift Virtualizaion
    1. KVM 기반의 워크로드를 Openshift 내에서 사용가능 (가상화 솔루션을 운영하듯이)
 

모범 구축 사례


OpenShift 설치

notion image
  • 많은 사용자들이 은근 가장 어려워함.
  • 설치 관리자 프로비저닝 인프라(인스톨러 기반)
    • AWS
    • GCP
    • 베어메탈 서버
    • VMWare VSphere
    • Azure
  • 사용자 프로비저닝 인프라
  • 마스터노드 3대
  • 워커노드 2대 이상
(3년전 자료이며 현제 기본 구성 스펙은 홈페이지를 참고하면 될거같다)
 

OpenShift 구축 모범사례 아키텍쳐

notion image
notion image
notion image
notion image
notion image
 
Share article

jongcloud