반응형 Development35 kube-state-metrics Horizontal Sharding(auto scaling) 쿠버네티스 모니터링에서 중요한 담당을 하고 있는 kube-state-metrics의 스케일아웃에 대해서 얘기해보자 한다. kube-state-metrics는 쿠버네티스 리소스들의 메타 및 상태정보를 메트릭으로 export해주는 컴포넌트다. 프로메테우스에서는 이 메트릭들을 수집하고, 더불어 cpu/memory 등 실제 다른 메트릭과 룰을 통해 새로운 메트릭을 생성한다. 예를 들어 파드 상태 및 재시작/재시작 이유 등을 알수 있으며, 노드 또는 파드의 자원정보를 IP가 아닌 이름으로 표시해줄수도 있다. kube-state-metrics는 보통 Deployment 1개로만 배포되기 때문에 노드 또는 파드가 많이 늘어났을때 성능을 뒷받침하기 위해 스케일업을 하게 된다. 필요한 경우 노드 크기에 따른 auto s.. 2024. 1. 9. 동적 Prometheus 쿼리 만들기 with golang(레이블 삽입하기) 그라파나를 통해서 사용자에게 메트릭을 제공하려고 할때 가끔가다가 사용자별 테넌트 분리를 해야하는 경우가 있다. 또는 동적으로 변하는 특정 타겟별로 각 메트릭을 얻어오는 사이드카를 만들려고 할때 고정된 쿼리를 사용할수 없는 경우도 있다. 이럴 때는 base prometheus 쿼리를 기반으로 동적으로 레이블을 넣어줄 수 있다. 여기서는 golang client를 이용하는 방법을 설명한다. package main import ( "fmt" "github.com/prometheus/prometheus/promql/parser" ) // addLabelToQuery는 주어진 PromQL 쿼리에 새로운 레이블을 추가합니다. func addLabelToQuery(query, labelName, labelValue .. 2023. 12. 27. CustomResource Version Converting 과정 분석 k8s가 계속 새로운 버전이 릴리즈 되면서 리소스 버전도 계속 업데이트가 된다. alpha -> beta -> stable 순으로 업데이트가 되며, alpha일때는 default false이고 beta부터 default true로 해당 리소스를 사용할수 있다. 이러한 버전이 변화되면서 필요한 버전 Convert에 관해 얘기해보고자 한다. 사실, 한우형님이 정말 친절하게 내부 구조에 대해서 친절히 설명한 자료가 있다. https://www.youtube.com/watch?v=sfv7YpxgK20 출처: [KCD KOREA 2021] 쿠버네티스 인터널스: 코드 레벨에서 보는 쿠버네티스 이야기 | 한우형 필자는 추가적으로 CRD의 버전 컨버팅 과정이 궁금하여 controller-runtime(kubebuild.. 2021. 9. 15. Prometheus Query(PromQL) 기본 이해하기 Prometheus Query(이하 PromQL)는 SQL과는 달라 처음 접하게 되면 이해하는데 조금 어려움을 겪을 수 있다. 하지만 제대로 이해하고 나면 정말 잘 만들어진 언어라는 것을 알 수 있다. 여기서는 PromQL의 기본 문법과 Metric Join(Vector matching)에 관해 설명하고자 한다.Data Model먼저 Prometheus 에서 metric을 출력하는 형태를 살펴보면, 다음과 같다. http_requests_total{container="A"} 1037{=, = ...} [] Metric 이름이 제일 먼저 나오고, metric의 특징을 표현하는 레이블(label)들이 있다. 그리고 가장 마지막으로는 metric 값(value)이 있다. 필요에 따라 timestamp도 표시.. 2021. 4. 8. CKA 후기 사실 요즘에 기출문제들이 대부분 공개되었고, 후기들도 많아서 굳이 도움이 될만한 정보는 따로 없을 듯 싶다. 그냥 필자가 CKA를 준비하면서 느낀 점. 다소 힘들었던 점을 위주로 정리한다. udemy 최근 udemy cka과정의 모의 테스트가 새롭게 바뀌었다. 아직 베타 단계라서 모든 테스트가 신규 환경은 아니지만, 신규환경은 훨씬 빨라지고, UI가 실제 시험과 비슷하다. 다만 실제 시험에서는 키워드 복사(예를 들면, 앱 이름 이라든지 autocompletion으로 되지 않는 내용상 키워드)가 된다. 그리고 udemy는 문제를 요약해주기도 하는데 실제 시험은 그런거 없다. udemy 테스트를 너무 많이 풀어도 너무 udemy 스타일에 익숙해 지기 때문에 좀 더 상황이 다른 실제환경에서는 애를 좀 먹을 수.. 2021. 3. 27. nginx reload와 keep-alive (부제: zero-downtime은 사기일까?) * 분석내용이 틀릴 수도 있습니다. 지적해주시면 감사하겠습니다. 해당 이슈를 얘기하기 전에 Ingress 리소스정보 변경에 따른 Ingress-nginx controller 의 config reload flow를 먼저 설명한다.예를 들어, Ingress의 host를 변경한다고 가정하자. 변경이 되면 Ingress 리소스를 watch하는 Ingress-nginx controller(nginx가 아니다!)에서 Ingress를 읽어 nginx.conf를 새로 만든다. 그리고나서 nginx -s reload 명령을 날리게 된다. 이 때, nginx 에서는 어떤 방식으로 config을 반영할까? 구글링으로 reload 시 내부적으로 일어나는 구체적인 flow를 찾을 수 있었다.serverfault.com/ques.. 2021. 1. 16. 이전 1 2 3 4 5 6 다음 반응형