본문 바로가기

kubernetes14

쿠버네티스 클러스터에 React 서비스 컨테이너 배포 이번 글에서는 CentOS(On-Premise환경)내 구축된 쿠버네티스 클러스터 위에 React 서비스를 컨테이너로 배포하는 방법에 대해 알아볼 것이다. 보통 Web 서비스는 Scale-out 관련 요구사항이 없기 때문에 컨테이너화 하는 경우는 드물다고 들었지만(?), 스터디 프로젝트를 하며 쿠버네티스를 공부하면서 Web 서비스도 컨테이너화 하여 쿠버네티스 클러스터에 적용해 보았기에 이렇게 블로그로 남긴다. (갑자기 존댓말 해서 이상한데 혹시라도 다른 사례가 있으시다면 댓글로 남겨주시면 큰 도움이 될 것 같습니다. 감사합니다.) 1. 사전 준비사항 React로 개발된 소스 1본 CentOS(On-Premise환경)내 구축된 쿠버네티스 클러스터 CI/CD 파이프라인(로컬pc - gitlab - jenkin.. 2020. 1. 21.
쿠버네티스 Ingress 개념 및 적용방법 이번 글에서는 Ingress의 정의 및 On-Premise환경(클라우드가 아닌 자체 서버를 사용한 경우)에서 Ingress를 어떻게 사용하는지에 대해 알아볼 것이다. 1. Ingress란 무엇인가? 1-1. Ingress 정의 쿠버네티스 Ingress란 HTTP(S) 기반의 L7 로드밸런싱 기능을 제공하는 컴포넌트이다. Ingress는 외부에서 쿠버네티스 내부로 들어오는 네트워크 요청을 어떻게 처리할지 결정하며, 쉽게 말해 외부에서 쿠버네티스에서 실행중인 Deployment와 Service에 접근하기 위한 관문과 같은 역할을 담당한다. 쿠버네티스 서비스는 기본적으로 L4 레이어로 TCP 단에서 Pod를 로드밸런싱한다. 그런데 MSA(마이크로 서비스 아키텍쳐)의 경우 쿠버네티스 서비스 하나가 MSA 서비스.. 2020. 1. 20.
Actuator & Prometheus를 활용한 Spring Boot 애플리케이션 모니터링 이번 글에서는 Actuator와 Prometheus를 활용하여 쿠버네티스 클러스터 내에서 실행 중인 스프링부트 애플리케이션 모니터링을 하는 방법에 대해 알아볼 것이다. Prometheus Server도 쿠버네티스 클러스터 내에서 구동중이라는 전제로 진행하도록 하겠다. 1. 알아보기 전에 우선 알아보기 전에 Actuator와 Prometheus의 정의에 대해서 알아보자. 1-1. Actuator란? actuator란 쉽게 말해 스프링부트 애플리케이션에서 제공하는 여러가지 정보를 모니터링 하기 쉽게 해주는 기능이며, 컨텍스트 빈, 환경설정, 자동설정, JVM 상태 등의 정보를 확인할 수 있다. 또한 필요한 정보를 가공할 수도 있으며, 내가 만든 어떤 값을 actuator를 통해 제공할 수도 있다. 2-1. .. 2020. 1. 19.
쿠버네티스 시작하기(12) - Prometheus와 Grafana 연동으로 모니터링 대쉬보드 구축하기 지난 장에서는 Prometheus & Node-Exporter & AlertManager를 활용한 모니터링 시스템을 구축하였다. 하지만 Prometheus로는 지표(Metric)정보를 확인하기는 많이 불편했다. 따라서 이번 장에서는 지표정보를 좀 더 쉽게 볼 수 있게 Prometheus(프로메테우스)와 Grafana(그라파나)를 연동시켜 모니터링 대쉬보드를 구축할 것이다. 1. Grafana란 무엇인가? 그라파나(Grafana)란 지표(metric)정보를 분석/시각화하는 Open source 툴이다. 주로 인프라 정보 및 App 분석 데이터를 시각화하기 위한 대쉬보드로 주로 사용된다. 그라파나는 Graphite, Prometheus, Elasticsearch, InfluxDB와 같은 시계열데이터베이스를 .. 2020. 1. 17.
쿠버네티스 시작하기(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.