Jenkins, Kubespray, Terraform을 활용한 Openstack 상 Kubernetes 및 모니터링 환경 구축 자동화 - 5

변재한·2023년 12월 5일
0
post-thumbnail

Overview


졸업과제 프로젝트를 진행하며 Openstack 플랫폼 상에 쿠버네티스 클러스터와 모니터링 환경을 자동화했던 과정을 정리한 글이다.
졸업과제에서는 쿠버네티스 환경에 대한 사용자의 입력(마스터 노드 수, 워커 노드 수, 노드의 이미지, 노드의 하드웨어 명세 등) 기반 동적인 구축을 진행하며, 본 포스트에선 자동화 구축을 위한 사전설정 및 프로세스를 기술하려고 한다. 기술을 많이 사용하고, 볼륨이 길다 보니 기술에 대한 설명은 하지 않고 필요한 부분만 설명을 진행하고자 한다.

아래 그림은 졸업과제에서 만든 인프라 관리 시스템의 구성도이다.
Orchstrator - Monitor - Openstack 파트가 본 포스트에서 해당한다.


7. ETC

이제 인프라 관리 시스템에 대한 자동화 과정이나 설정은 보여줄 만큼 보여준 것 같다.
마지막으로, 인프라 관리 시스템의 대시보드 화면에 대한 부분을 간략히 보여주려고 한다.
(Github README.md 복사 붙여넣기)

📄 기능

메인 페이지

오픈스택 플랫폼의 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 파이프라인 구동 화면

클러스터 모니터링


모니터링 대시보드 접근 주소를 클릭하면, 해당하는 클러스터 모니터링 대시보드 화면이 나타나게 된다. 클러스터 모니터링 대시보드 화면에서는 각 Node 상태, CPU, Memory, Disk I/O, Network 트래픽 등의 클러스터 운영에 주요한 성능 지표들을 확인할 수 있다.

8. Finally

Openstack 상에 쿠버네티스 클러스터 및 모니터링 환경 구축의 자동화를 졸업과제를 통해 진행해보았다.
이는 단순히 [[Openstack + Kubespray => 최신 글 없음]]에서 오기를 느껴 시도해보고자 했고, 더 나아가서 "아.. 이거 쿠버네티스 클러스터 구축 자동화 될 거 같은데?!", "어.. 이럼 모니터링 환경은 진짜 금방인데?!" 라는 마음으로 하나씩, 하나씩 성공적으로 마무리하였다. 정말 3주 정도를 올인, 몰입해서 달려나가 완성한 것 같다.
잘 다뤄보지 않은 오픈소스들을 많이 사용해봤는데, 내가 원하는 동작이 여러 에러 처리와 설정을 요하더라도 끝내 제대로 수행될 때 얻는 쾌감이 정말 좋았다.
결과적으로 다양한 오픈소스들의 사용법에 대해 알 수 있는 계기가 되었고, 또한 여러 오픈소스들의 함께 사용하는 것에 대한 시야를 넓힐 수 있는 계기가 되었다고 생각한다.
언젠가, 더 광범위하거나 새로운 인프라에 대한 관리 및 개선하기 위한 자동화 프로세스가 생겼을 때 이번 경험이 도움이 되었으면 좋겠다.

profile
Infra and Devops 엔지니어가 되고 싶어용

0개의 댓글