부산대 2023 전기 졸업과제 진행 중 오픈스택에 구축된 쿠버네티스 환경에 애플리케이션 배포를 수행하였습니다. 그러나, 오픈스택 상에 쿠버네티스 환경을 구축하는 절차가 비용이 많이 들어 이에 대한 부담을 자동화를 통해 줄이고자 인프라 관리 시스템을 기획하였습니다.
- 오픈스택 플랫폼의 Instance, CPU, RAM, Storage에 대해 사용 가능한 양과 현재 사용 중인 양과 클러스터 배포 현황을 확인할 수 있습니다.
- 클러스터 조회 페이지에서는 구축된 클러스터의 이름, Node들의 Image, Node의 하드웨어(Flavor) 명세, Master Node와 Worker Node의 수와 현재 상태, 모니터링 대시보드의 접근 주소를 보여줍니다.
- 사용자는 클러스터의 이름, Master Node와 Worker Node의 수, Node의 Image, Node의 하드웨어 명세(CPU, RAM, Disk)를 입력하고 CREATE 버튼을 누릅니다.
- 이후, 인프라 관리 시스템이 입력한 명세를 바탕으로 Jenkins 클러스터 배포 자동화 파이프라인을 통해 클러스터를 생성하게 됩니다.
Jenkins 파이프라인의 단계는 다음과 같습니다.
- Setup Environment Variables
- Terraform Init
- Terraform Apply
- Setup Kubespray On Bastion
- Setup Kubectl on Bastion and configure Cluster Access
- Install Node Exporter on All Nodes
- Setup Prometheus & Grafana on Bastion Node
- 모니터링 대시보드 접근 주소를 클릭하면, 해당하는 클러스터 모니터링 대시보드 화면이 나타나게 됩니다.
- 클러스터 모니터링 대시보드 화면에서는 각 Node 상태, CPU, Memory, Disk I/O, Network 트래픽 등의 클러스터 운영에 주요한 성능 지표들을 확인할 수 있습니다.
Kubespray, Terraform, Jenkins, Prometheus, Grafana, Go, React