파란하늘의 지식창고
반응형
article thumbnail
kubernetes에 Promtail, Loki 사용해 보기
Study/Docker & Kubernetes 2023. 3. 21. 05:24

공부 목적으로 설치해 보는 과정을 정리한 것이기 때문에 실제 운영과 다릅니다. Loki 소개 https://github.com/grafana/loki Loki에 대한 소개를 보면 다음과 같다. "Like Prometheus, but for logs" Prometheus가 metric을 시계열 데이터로 저장하기 위해 사용된다면 Loki는 log 데이터를 저장하기 위해 사용된다. https://grafana.com/docs/loki/latest/fundamentals/overview/ Loki는 log data를 효율적으로 보관하기 위해 최적화된 데이터 저장소이다. 다른 logging system과 다르게 Loki index는 label에서 작성되며 원래 log message는 색인화되지 않는다. Prome..

article thumbnail
kubernetes에 OpenTelemetry Collector, Grafana Tempo를 설치하고 tracing 구현해 보기
Study/Docker & Kubernetes 2023. 3. 18. 01:45

공부 목적으로 설치해 보는 과정을 정리한 것이기 때문에 실제 운영과 다릅니다. OpenTelemetry 소개 application의 상태를 계측하기 위한 단계는 간략하게 계측 데이터 수집 -> 저장 -> 모니터링의 세 단계로 나누어 볼 수 있다. (이 구분이 절대적인 정의는 아니다.) 각 역할별로 제공되는 여러 라이브러리를 조합해서 사용하는데 ELK(ElasticSearch + Logstash + Kibana), EFK (ElasticSearch + Fluentd + Kibana), PLG (Promtail + Loki + Grafana) 등 다양한 조합이 있고 보통 해당 라이브러리를 만든 회사의 제품들을 묶은 제품군(stack)으로 사용하게 된다. 또한 수집하는 계측 데이터(log, metric, tr..

helm chart로 kubernetes yaml 파일 만들기
Study/Docker & Kubernetes 2023. 3. 17. 20:49

어떤 경우 helm chart로 kubernetes yaml 파일을 만들고 싶어 질까 설정이나 구성이 복잡한 경우 docker image로 설치할 수 있는 안내를 하지 않고 helm을 사용하는 걸 안내하는 경우가 있다. helm이 간편하게 설치를 할 수 있게 해 주지만 해당 image의 사용이 어떻게 구성이 되었는지 알고 싶거나 또는 helm으로 제공되는 설정을 적당히 참고해서 내가 원하는 구성으로 kubernetes yaml파일을 만들고 싶은데 docker hub를 검색해도 해당 docker image에 대한 커스텀 옵션 안내가 없고 docker file tag를 살펴보거나 해당 소스의 github을 찾아봐도 어떻게 kubernetes yaml을 작성해야 하는지 알기 어려운데 helm으로 사용하는 법만..

article thumbnail
kubernetes에 sonarqube 설치 & jenkins에서 사용해 보기
Study/Docker & Kubernetes 2023. 3. 16. 18:04

공부 목적으로 설치해 보는 과정을 정리한 것이기 때문에 실제 운영과 다릅니다. sonarqube 소개 sonarqube는 30개 이상의 프로그래밍 언어에서 버그, 코드 스멜, 보안 취약점을 발견할 목적으로 정적 코드 분석을 자동 리뷰 수행하기 위한 지속적인 코드 품질 검사용 오픈소스 플랫폼이다. https://www.sonarsource.com/products/sonarqube/ 개발할 때 findbug, checkstyle, pmd를 사용하여 코드상 문제를 파악하고 수정할 수 있다. sonarqube는 이런 분석 내용을 저장하고 해결된 내역을 기록하여 코드 품질을 관리할 수 있도록 도와준다. sonarqube는 java 뿐만 아니라 C#, C, C++, Go, Kotlin, PHP, Python, Ru..

article thumbnail
kubernetes에 Prometheus, Grafana 설치하고 metric 정보 수집해 보기
Study/Docker & Kubernetes 2023. 3. 15. 02:45

공부 목적으로 설치해 보는 과정을 정리한 것이기 때문에 실제 운영과 다릅니다. Observability, Monitoring에 대하여 Observability(관측 가능성)는 시스템의 출력 변수를 사용하여 상태 변수에 대한 정보를 알아낼 수 있는지를 나타내는 용어이다. 이런 정보를 확인하기 위해서는 데이터를 수집하고 저장하여 지속적으로 관찰, 감시할 수 있는 모니터링이 필요하다. 저장할 데이터의 종류는 크게 log, metric, trace (추가로 event?)으로 나누어 볼 수 있다. log는 일반적으로 개발하면서 logger를 통해 남기는 데이터라고 생각하면 된다. metric은 현재 application의 상태에 대한 지표를 주기적으로 수집하여 시간별 상태를 확인할 수 있도록 시계열 데이터(tim..

kubernetes ConfigMap, Secret 사용해 보기
Study/Docker & Kubernetes 2023. 3. 11. 20:11

ConfigMap https://kubernetes.io/ko/docs/concepts/configuration/configmap/ key-value 쌍으로 이루어진 데이터를 저장하는데 사용하는 API Object이다. pod는 volume에서 environment variables, command-line argument 로 configmap을 사용할 수 있다. configmap은 암호화를 제공하지 않으므로 계정/비밀번호 같은 데이터는 secret을 사용하면 된다. 기본적인 구성은 다음과 같다. 일반적인 key/value 쌍으로 이루어진 데이터 key를 파일이름으로, value를 파일의 내용으로 구성할 수도 있다. apiVersion: v1 kind: ConfigMap metadata: name: ga..

kubernetes PersistentVolume, PersistentVolumeClaim 사용해 보기
Study/Docker & Kubernetes 2023. 3. 11. 18:59

docker container는 재시작시 모든 데이터가 초기화된다. 데이터를 유지하기 위해 기존에는 Volumes의 hostPath 설정을 통해 host의 디렉토리를 참조하여 사용하였었다. mariadb를 사용하는 경우 기존 설정은 다음과 같았다 apiVersion: apps/v1 kind: Deployment metadata: name: mariadb-deployment labels: app: mariadb spec: replicas: 1 selector: matchLabels: app: mariadb template: metadata: labels: app: mariadb spec: containers: - name: mariadb image: mariadb ports: - containerPort:..

Spring Data의 Pageable parameter로 사용하기
Study/Java 2023. 3. 1. 01:16

Spring Data의 Pageable을 사용한 경우 이 pageable 객체를 parameter로 받아 처리하고 싶은 경우가 있다. 예를 들어 게시글 목록을 조회하는 경우 다음과 같은 controller를 사용한다고 하면 @GetMapping("/findByBoardAlias") public Page findByBoardAlias(@RequestParam String boardAlias, Pageable pageable) { return boardArticleService.findByAlias(boardAlias, pageable); } 위와 같이 getmapping에서 Pageable을 처리하게 된다. 위의 호출을 예를 들어 단순히 boardAlias로만 조회를 하는 경우 다음과 같이 호출한다. /f..

Spring Boot 프로젝트 logback accesslog 설정하기 (Tomcat Servlet 기준)
Study/Java 2023. 2. 17. 05:18

Spring Boot Logback 사용 기본 설정 Spring Boot를 사용한 application에서 로그를 사용하려면 다음 dependency를 추가한다. (현재는 logback이 기본 참조되어 있는데 과거엔 log4j -> slf4j가 기본 설정이었다.) org.springframework.boot spring-boot-starter-logging Spring Boot가 제공하는 logback 기본 설정 위치는 spring boot의 base.xml 파일이며 다음과 같다. https://github.com/spring-projects/spring-boot/blob/main/spring-boot-project/spring-boot/src/main/resources/org/springframewor..

maven multi module project에서 jib build 사용하기
Study/Java 2023. 2. 15. 04:34

spring boot project를 docker image로 만들 때 jib build를 사용한다. mvn -B -U clean deploy jib:build multi module project인 경우 전체 모듈 중 일부만 jib build 할 대상이 될 것이다. 이런 경우 -pl 옵션으로 대상 모듈을 따로 지정하여 jib build 하게 된다. 이 경우 다음과 같이 명령이 나뉜다. mvn -B -U clean deploy mvn -B -pl 모듈1,모듈2 jib:build 이 설정으로도 문제없이 동작하지만 모듈이 추가되거나 삭제될 경우 위의 ci 설정도 매번 변경해주어야 한다. 좀 더 나은 방법으로 package 시 jib build도 같이 수행해 주도록 설정을 할 수 있다. https://gith..

반응형