본문 바로가기

전체 글

(24)
[kubernetes] liveness, readiness probe에 관하여(feat. period, timeout seconds) liveness는 health 체크 후에 특정 threshold에 도달하면 pod을 restart 시킨다. readiness는 health 체크 후에 특정 threshold에 도달하면 pod을 서비스에서 제외시켜버린다. 성능테스트를 하다가 hpa 동작 과정에서 latency가 급격히 증가하는 케이스가 있는데, 이것은 readiness probe 설정을 안해주었기 때문이다. period, timeout seconds 라는 옵션이 있다. 일반적인 동작 방식은 아래 표와 같다. (표 삽입) 위 표를 예시를 통해 알아보자. initialDelay: 60초 timeoutSeconds: 3초 periodSeconds: 10초 응답을 1초만에 주는 서버가 있다고 가정하자. (실패를 리턴) 1. request를 보낸다..
[Prometheus] increase 함수에 대해서 (feat. Grafana) prometheus에서 increase 함수를 이해하는 것은 중요하다. 케이스 별로 살펴보는 것이 제일 좋은데, 만약 아래 케이스에 대한 답을 모두 이해하고 있다면 완벽히 이해했다고 볼 수 있다. scrape 주기 30초, metric type = counter, metric name = test_metric_total 18시 9분 4초 1 18시 9분 34초 1 18시 10분 4초 2 18시 10분 34초 2 (18시 10분 4초 - 34초 사이에 값이 1 증가했다는 뜻) 18시 11분 4초 2 쿼리: test_metric_total{}[1m] (18시 11분 기준) 결과: 2 18시 10분 4초 2 18시 10분 34초 쿼리: test_metric_total{}[1m:1m] (18시 11분 기준) 결..
본인 소개 및 블로그 컨셉 SRE엔지니어는 특성상 많은 기술스택을 만나게되는데, 그 과정에서 구글링해도 명확하게 나오지 않은 개념들을 나만의 방식으로 정리해 둔 블로그이다. 특정 기술스택 입문자는 글을 이해하기 조금 어려울 수도 있다. (내용이 친절하지 못하고 필력이 좋지 못함) 내용 중 잘못된 부분이 있다면 언제든지 댓글로 피드백!
[Prometheus] dns_sd_config vs static config dns_sd_config와 static config 차이는 정말 단순한데, 구글링을 해보면 마음에 드는 설명이 없어서 정리한다. dns_sd_config와 static conifg의 차이를 이해하기 위해서는 먼저 service discovery에 대해 이해해야 한다. 보통 클라이언트와 서버가 있고, 클라이언트가 서버를 호출하는데 이 때 클라이언트는 서버의 ip를 반드시 알아야 한다. 따라서 보통 다른 서버를 호출해야하는 client 기능을 갖는 application의 config 파일에는 호출하는 대상 서버의 ip 리스트가 나열되어 있다. (springboot에서는 application.yaml 이라고 생각하면 됨 - 단순 예시이며, 사실 일반적인 springboot application의 경우 serv..
Golang Project Structure에 관하여 Golang의 표준 Project Structure에 관해 세부적으로 알아본다. (지속적으로 업데이트) 1. CMD folder CMD folder가 나온 이유는 go build 명령어와 깊은 연관이 있다. 먼저, go 공식 document에서는 go build를 다음과 같이 정의한다. go build 정의: compile packages and dependencies. go build [-o output] [build flags] [packages] 여기서, 우리는 packages에 주목해야 한다. package는 directory 범위를 뜻한다. CMD folder의 필요성을 이해하고자 할 때 사실 제일 방해되는 부분이 go build 명령어를 입력했을때 파일 범주로도 build가 된다는 것이다. 예..