1.3. 아키텍처
그림 1.1. Dev Workspace Operator를 사용한 고급 OpenShift Dev Spaces 아키텍처
OpenShift Dev Spaces는 세 가지 구성 요소 그룹에서 실행됩니다.
- OpenShift Dev Spaces 서버 구성 요소
- 사용자 프로젝트 및 작업 공간을 관리합니다. 기본 구성 요소는 사용자가 작업 공간을 제어하는 사용자 대시보드입니다.
- dev Workspace Operator
-
사용자 작업 영역을 실행하는 데 필요한 OpenShift 오브젝트를 생성하고 제어합니다.
Pod
,서비스
및PersistentVolume을
포함합니다. - 사용자 작업 공간
- 컨테이너 기반 개발 환경인 IDE가 포함되어 있습니다.
이러한 OpenShift 기능의 역할은 핵심입니다.
- dev Workspace 사용자 정의 리소스
- 유효한 OpenShift 오브젝트는 사용자 작업 공간을 나타내며 OpenShift Dev Spaces에서 조작합니다. 구성 요소의 세 그룹에 대한 통신 채널입니다.
- OpenShift 역할 기반 액세스 제어(RBAC)
- 모든 리소스에 대한 액세스를 제어합니다.
추가 리소스
1.3.1. 서버 구성 요소
OpenShift Dev Spaces 서버 구성 요소는 멀티 테넌시 및 작업 공간 관리를 보장합니다.
그림 1.2. OpenShift Dev Spaces 서버 구성 요소는 Dev Workspace Operator와 상호 작용
추가 리소스
1.3.1.1. dev Spaces Operator
OpenShift Dev Spaces Operator는 OpenShift Dev Spaces 서버 구성 요소의 전체 라이프사이클 관리를 보장합니다. 도입할 수 있습니다.
CheCluster
CRD(사용자 정의 리소스 정의)-
CheCluster
OpenShift 오브젝트를 정의합니다. - OpenShift Dev Spaces 컨트롤러
- 포드, 서비스, 영구 볼륨과 같은 OpenShift Dev Spaces 인스턴스를 실행하는 데 필요한 OpenShift 오브젝트를 생성하고 제어합니다.
CheCluster
CR(사용자 정의 리소스)OpenShift Dev Spaces Operator가 있는 클러스터에서
CheCluster
CR(사용자 정의 리소스)을 생성할 수 있습니다. OpenShift Dev Spaces Operator는 이 OpenShift Dev Spaces 인스턴스에서 OpenShift Dev Spaces 서버 구성 요소의 전체 라이프사이클 관리를 보장합니다.
1.3.1.2. dev Workspace Operator
Dev Workspace Operator는 OpenShift를 확장하여 Dev Workspace 지원을 제공합니다. 도입할 수 있습니다.
- dev Workspace 사용자 정의 리소스 정의
- Devfile v2 사양에서 Dev Workspace OpenShift 오브젝트를 정의합니다.
- dev Workspace 컨트롤러
- 포드, 서비스 및 영구 볼륨과 같은 Dev Workspace를 실행하는 데 필요한 OpenShift 오브젝트를 생성하고 제어합니다.
- dev Workspace 사용자 정의 리소스
- Dev Workspace Operator가 있는 클러스터에서 Dev Workspace CR(사용자 정의 리소스)을 생성할 수 있습니다. Dev Workspace CR은 Devfile의 OpenShift 표현입니다. OpenShift 클러스터에서 사용자 작업 공간을 정의합니다.
추가 리소스
1.3.1.3. 게이트웨이
OpenShift Dev Spaces 게이트웨이에는 다음과 같은 역할이 있습니다.
- 라우팅 요청. trle fik를 사용합니다.
- OpenID Connect(OIDC)로 사용자 인증. OpenShift OAuth2 프록시 를 사용합니다.
- OpenShift Dev Spaces 리소스에 대한 액세스를 제어하는 OpenShift 역할 기반 액세스 제어(RBAC) 정책을 적용합니다. 'kube-rbac-proxy' 를 사용합니다.
OpenShift Dev Spaces Operator는 이를 che-gateway
배포로 관리합니다.
다음에 대한 액세스를 제어합니다.
그림 1.3. OpenShift Dev Spaces 게이트웨이와 다른 구성 요소 간의 상호 작용
추가 리소스
1.3.1.4. 사용자 대시보드
사용자 대시보드는 Red Hat OpenShift Dev Spaces의 방문 페이지입니다. OpenShift Dev Spaces 사용자는 사용자 대시보드를 검색하여 작업 공간에 액세스하고 관리합니다. 이는 React 애플리케이션입니다. OpenShift Dev Spaces 배포는 devspaces-dashboard
Deployment에서 시작합니다.
액세스할 수 있어야 합니다.
- 1.3.1.5절. “dev Spaces 서버”
- 1.3.1.6절. “플러그인 레지스트리”
- OpenShift API
그림 1.4. 다른 구성 요소와 사용자 대시보드 상호 작용
사용자가 사용자 대시보드를 요청하여 작업 영역을 시작할 때 사용자 대시보드는 이러한 작업 시퀀스를 실행합니다.
- 리포지토리 URL을 1.3.1.5절. “dev Spaces 서버” 로 전송하고 사용자가 원격 devfile에서 작업 공간을 생성할 때 반환되는 devfile이 필요합니다.
- 작업 공간을 설명하는 devfile을 읽습니다.
- 1.3.1.6절. “플러그인 레지스트리” 에서 추가 메타데이터를 수집합니다.
- 정보를 Dev Workspace 사용자 정의 리소스로 변환합니다.
- OpenShift API를 사용하여 사용자 프로젝트에서 Dev Workspace 사용자 지정 리소스를 생성합니다.
- Dev Workspace 사용자 정의 리소스 상태를 감시합니다.
- 사용자를 실행 중인 작업 공간 IDE로 리디렉션합니다.
1.3.1.5. dev Spaces 서버
추가 리소스
OpenShift Dev Spaces 서버 주요 기능은 다음과 같습니다.
- 사용자 네임스페이스 생성.
- 필수 보안 및 구성 맵을 사용하여 사용자 네임스페이스를 프로비저닝합니다.
- Git 서비스 공급자와 통합하여 devfile 및 인증을 가져오고 검증합니다.
OpenShift Dev Spaces 서버는 HTTP REST API를 노출하는 Java 웹 서비스이며 다음에 액세스해야 합니다.
- Git 서비스 공급자
- OpenShift API
그림 1.5. OpenShift Dev Spaces 다른 구성 요소와의 서버 상호 작용
1.3.1.6. 플러그인 레지스트리
각 OpenShift Dev Spaces 작업 공간은 특정 편집기와 관련 확장 세트로 시작됩니다. OpenShift Dev Spaces 플러그인 레지스트리는 사용 가능한 편집기 및 편집기 확장 목록을 제공합니다. Devfile v2는 각 편집기 또는 확장을 설명합니다.
1.3.1.4절. “사용자 대시보드” 에서 레지스트리 콘텐츠를 읽고 있습니다.
그림 1.6. 다른 구성 요소와의 플러그인 레지스트리 상호 작용
1.3.2. 사용자 작업 공간
그림 1.7. 다른 구성 요소와의 사용자 작업 공간 상호 작용
사용자 작업 영역은 컨테이너에서 실행되는 웹 IDE입니다.
사용자 작업 공간은 웹 애플리케이션입니다. 브라우저에서 실행되는 최신 IDE의 모든 서비스를 제공하는 컨테이너에서 실행되는 마이크로 서비스로 구성됩니다.
- 편집기
- 언어 자동 완료
- 언어 서버
- 디버깅 툴
- 플러그인
- 애플리케이션 런타임
작업 공간은 작업 공간 컨테이너 및 활성화된 플러그인과 관련 OpenShift 구성 요소를 포함하는 하나의 OpenShift Deployment입니다.
- 컨테이너
- ConfigMaps
- 서비스
- 끝점
- 인그레스 또는 경로
- 보안
- 영구 볼륨(PV)
OpenShift Dev Spaces 작업 공간에는 프로젝트의 소스 코드가 포함되어 있으며 OpenShift PV(영구 볼륨)에 유지됩니다. 마이크로 서비스에는 이 공유 디렉터리에 대한 읽기/쓰기 액세스 권한이 있습니다.
devfile v2 형식을 사용하여 OpenShift Dev Spaces 작업 공간의 툴 및 런타임 애플리케이션을 지정합니다.
다음 다이어그램에서는 OpenShift Dev Spaces 작업 공간 및 해당 구성 요소를 실행하는 방법을 보여줍니다.
그림 1.8. OpenShift Dev Spaces 작업 공간 구성 요소
다이어그램에는 실행 중인 작업 공간이 하나씩 있습니다.