본문 바로가기

IT/PaaS18

쿠버네티스 시작하기(11) - Prometheus & Node-Exporter & AlertManager 연동 이전 장에서는 CI/CD를 구축하고 SonarQube & Jacoco로 코드정적분석 & 소스커버리지 관리 기능까지 적용해 보았다. 이번 장에서는 쿠버네티스 클러스터에 Prometheus(프로메테우스) & NodeExporter & AlertManager를 연동시켜 쿠버네티스 클러스터 및 서버환경를 모니터링할 수 있는 프로세스를 구축해보도록 하겠다. 1. 프로세스 구성도 이번 프로젝트에서 진행한 Prometheus & Node-Exporter & AlertManager를 활용한 모니터링 프로세스 구성도는 다음과 같다. 그림에 대해 간략하게 설명하자면, 우선 각 서버 및 각 쿠버네티스 노드에 Node-Exporter가 구동되고 있으며, Node-Exporter와 kube-state-metrics를 통해 Pr.. 2020. 1. 15.
쿠버네티스 시작하기(10) - SonarQube & Jacoco 연동하기 지금까지 쿠버네티스 클러스터에 간단한 CI/CD 파이프라인을 만들어보았다. 이제 기본적인 파이프라인은 생성해보았으니 파이프라인을 좀 더 업그레이드 해보도록 하자. 우리가 구축한 CI/CD 파이프라인에 추가적으로 필요한 기능은 바로 테스트 자동화다. 이번 장에서는 테스트 자동화를 위해 CI/CD 파이프라인에 SonarQube와 Jacoco를 적용할 것이다. 1. 테스트 자동화란? 보통 JAVA로 개발된 소스를 테스트할 때는 JUnit을 활용해 테스트 코드를 작성하고 해당 코드를 실행해서 개발한 소스가 원하는대로 정상 동작하는지를 테스트한다. 테스트 자동화란 이 테스트 코드를 자동으로 실행시키는 것으로, 보통 CI/CD 파이프라인 내 STEP에 추가시켜 파이프라인 실행 중에 배포 환경에서 개발한 소스가 정상.. 2020. 1. 13.
쿠버네티스 시작하기(9) - CI/CD 파이프라인 만들기(3/3) - Gitlab webhook 설정 및 Slack 연동 이전 글에서 쿠버네티스 클러스터에 올라간 Jenkins와 Gitlab간의 연동을 시킨 후 컨테이너 배포까지 수행해 보았다. 이번 글에서는 Gitlab으로 로컬PC의 소스 Push/Merge 시 자동으로 Jenkins에서 빌드/배포가 수행되는 프로세스를 만들어 볼 것이고, 빌드/배포가 완료된 후에는 Slack을 통해 알람 메시지를 전송할 것이다. 1. 시작하기 전에 현재까지 완성된 빌드/배포 프로세스를 보면 아래와 같다. 개발/운영자가 로컬PC에서 소스 변경 후 git push/merge를 통해 Git Repository(gitlab/github ...)로 소스 업로드 -> 완료 소스가 업로드되면 Git Repository에서 Jenkins로 Webhook 전송 ->미완료 jenkins에서 Webhook을.. 2020. 1. 11.
쿠버네티스 시작하기(8) - CI/CD 파이프라인 만들기(2/3) - Gitlab & Jenkins & Docker hub 연동 이전 장에서 쿠버네티스를 활용하여 jenkins를 설치하고 환경설정을 진행해 보았다. 이번 장에서는 설치된 jenkins와 Git Repository를 연동하여 Git Repository에 있는 소스를 서버로 전송하여 빌드/배포를 진행하고, 빌드/배포가 완료되면 Slack을 통해 알람 메시지를 보내는 프로세스를 만들어 볼 것이다. 1. 빌드/배포 순서 빌드/배포의 순서를 정리해보면 다음과 같다. 개발/운영자가 로컬PC에서 소스 변경 후 git push/merge를 통해 Git Repository(gitlab/github ...)로 소스 업로드 소스가 업로드되면 Git Repository에서 Jenkins로 Webhook 전송 jenkins에서 Webhook을 통해 소스 변경 사실을 인지한 후, 빌드툴(m.. 2020. 1. 6.
쿠버네티스 시작하기(7) - CI/CD 파이프라인 만들기(1/3) - 쿠버네티스 클러스터에 jenkins 설치 및 설정 이번 장에서는 설치한 쿠버네티스 위에 CI/CD 파이프라인을 만들 것이다. CI/CD 파이프라인을 만드는 이유는 간단하다. 로컬에서 개발한 소스를 수작업으로 서버에 올린 후 쿠버네티스 클러스터에 컨테이너로 배포한다는 것은 상상할 수 없기 때문이다. 때문에 배포 파이프라인을 만들어서 로컬에서 어플리케이션 개발 후 Git Repository로 Push/Merge를 하게 되면 소스가 자동으로 서버 내 쿠버네티스 클러스터로 배포가 되게끔 할 것이다. 우선 CI/CD 파이프라인을 구축 하기 전에 CI/CD에 대한 정확한 이해가 필요하다. CI/CD에 대한 정확한 이해는 이 포스트(https://twofootdog.tistory.com/16)를 참고해보도록 하자. 1. CI/CD 파이프라인 구성도 앞으로 생성할 C.. 2020. 1. 2.
쿠버네티스 시작하기(6) - 쿠버네티스 기본 명령어 kubectl은 쿠버네티스 클러스터에서 명령을 내리는 CLI(Command Line Interface)다. 이번 장에서는 쿠버네티스를 운영할 때 가장 많이 쓰이는 kubectl 기본 명령어에 대해서 정리를 할 것이다. 만약 쿠버네티스의 기본 명령어에 대해서 이미 알고 있거나, 실습을 통해서 차근차근히 배워 나가고 싶다면 이번 장은 Skip해도 괜찮을 것 같다. 1. kubectl 기본 문법 kubectl 의 기본 문법은 아래와 같다. # kubectl [COMMAND] [TYPE] [NAME] [FLAGS] 2. [COMMAND] 하나 혹은 여러 리소스에 대한 Operation을 입력한다. COMMAND 설명 사용 방법 create 파일이나 stdin으로 리소스 생성 kubectl create -f FI.. 2019. 12. 27.
쿠버네티스 시작하기(5) - CentOS에 쿠버네티스 설치하기 이전 장에서 쿠버네티스(Kubernetes)의 개념 및 아키텍쳐에 대해 정리를 해 보았다. 이번 장에서는 이제 실제 리눅스(CentOS) 환경에서 쿠버네티스를 설치를 해보도록 하겠다. 1. 쿠버네티스 설치 전 준비사항 우선 쿠버네티스를 설치하기 위해서는 아래와 같은 준비가 필요하다 1-1. 서버, OS 준비 쿠버네티스 설치를 위한 서버와 OS를 준비하자. 필자는 vultr.com 에서 VPS를 생성해서 서버를 구성하였다. (마스터서버보다 노드서버가 사양이 더 좋은 이유는 마스터 서버를 아래와 같이 구성 후 단일 서버로 운영하다가 노드서버를 나중에 추가하게 되었는데, 이것저것 설치하다보니 생각보다 리소스가 많이 소모되어 노드서버는 리소스를 좀 크게 잡게 되었다.) 마스터서버 : CPU 2core, Memo.. 2019. 12. 21.