1. PaaS 클라우드 구축
일반적으로 고객사들은 자사의 보안을 위해 외부와 인터넷이 단절된, 즉 disconnected 환경에서 클라우드 Platform을 구축한다. 본 프로젝트를 통해 이러한 Disconnected 환경에서 Openshift 기반의 PaaS 클라우드 아키텍쳐를 수립하고 환경을 구축한다. PaaS 클라우드를 구축하기 위한 사전 준비 사항 및 고려 사항을 파악하고 전체적인 아키텍처에 대해 이해한다.
2. DevSecOps Pipeline 구성
환경 및 데이터 보안, CI/CD 프로세스 및 보안을 고려한 DevSecOps Pipeline을 구성하고 Jenkins, Gitlab, Quay 등을 연계하여 PaaS 클라우드 환경에서 빌드 및 배포의 자동화를 구성한다.
1. Disconnected 환경에서의 기초 인프라 Architecture 설계 및 구축
- 기반 서비스 (DNS, Haproxy, Chrony, Yum Repository, Image-Registry) 설계와 구축
- 애플리케이션 서비스 (Gitlab, Image Registry) 설계와 구축
2. 표준 컨테이너 및 오케스트레이션 기술 이해
- 프라이빗 PaaS 클라우드 (Openshift 4) 아키텍쳐 설계 및 구축
- Master, Infra, Router, App Node 설계와 구축
3. GitLab, Jenkins, Quay 등을 활용한 DevSecOps Pipeline 설계와 구축
- 사용자 ID 권한 부여 및 Access 제어
- 컨테이너 분리 및 네트워크 분리
- 컨테이너 이미지 스캔
1. 리소스 구성
- 노트북 5대, Hub 1대, LAN Cable 5개
- Ubuntu 18.04 (RHEL 추천)
- 5 Core, RAM 16 GB, SSD 512 GB
- KVM
2.네트워크 구성
- Host <—> 다른 Host의 VM : Bridge 통신
- Host <—> 본인 Guest VM : Host-Only 통신
1. 논리적 Architecture
- Quay 폐쇄망에서 구축할 수 있는 버전이 아직 나오지 않아 폐쇄망 외부에 구축하였음
2.. 물리적 Architecture
- 각 VM의 리소스 할당량을 고려하여 배치
- Com #3의 경우 Bootstrap은 Master Node 설치 후 삭제가능하므로, 구축 완료 후 삭제하고 Infra #2, Router Node 배치
- Cluster Name : redhat2
- Base Domain : cccr.local
- Openshift Service network : 172.30.0.0/16
- cluster network ( Pod ) : 10.1.0.0/16
구분 | 서버명 | OS 구분 | Hostname (Domain).redhat2.cccr.local |
IP | vcpu (core) |
Memory (GB) |
OS (GB) | contaimer Runtime (GB) |
---|---|---|---|---|---|---|---|---|
컨테이너 관리노드 |
BootStrap | RHCOS 4.4 | bootstrap | 10.10.10.10 | 4 | 16 | 120 | 100 |
Master #1 | RHCOS 4.4 | master-1 | 10.10.10.11 | 4 | 8 | 100 | 100 | |
Master #2 | RHCOS 4.4 | master-2 | 10.10.10.12 | 4 | 8 | 100 | 100 | |
Master #3 | RHCOS 4.4 | master-3 | 10.10.10.13 | 4 | 8 | 100 | 100 | |
Infra #1 | RHCOS 4.4 | infra-1 | 10.10.10.14 | 4 | 8 | 100 | 100 | |
Infra #2 | RHCOS 4.4 | infra-2 | 10.10.10.15 | 4 | 8 | 100 | 100 | |
Router | RHCOS 4.4 | router | 10.10.10.16 | 2 | 3 | 100 | 100 | |
주변시스템 | Bastion | RHCOS 4.4 | bastion | 10.10.10.17 | 4 | 8 | 100 | 100 |
컨테이너 업무서버 |
Service #1 | RHCOS 4.4 | service-1 | 10.10.10.18 | 2 | 4 | 100 | 100 |
Service #2 | RHCOS 4.4 | service-2 | 10.10.10.19 | 2 | 4 | 100 | 100 | |
Quay | RHEL 7.8 | quay | 10.10.10.21 | 3 | 8 | 100 | 100 |
4. 노드별 역할
- Bastion Node : Openshift 4 Container Platform 구축의 기반이 되는 노드로서, DNS/ HAProxy/ Image Registry/ Chrony/ Yum Repository 을 포함
- Master Node : Openshift 4 Control Plane Node, 고가용성을 위해 반드시 3중화 이상으로 구성
- Router Node : Application이 배포될 서비스 노드로 라우팅하는 노드
- Infra Node : Logging, Monitoring, CI/CD 구성을 위한 노드
- Service Node : 실질적인 Application이 배포되는 Node
- Quay Node : OpenShift 컨테이너 이미지 레지스트리인 Quay와 이미지 보안 스캐닝을 위한 Clair 구성을 위한 노드