본문 바로가기
반응형

Development30

devops problem solving(이슈해결 역량 기르기 팁) 필자가 k8s 등 여러 클라우드 이슈들을 경험하면서 정리한 이슈 대응 방법 절차이다. 정답은 아니니 참고하면 좋겠다.요약1. 우선순위를 판단한다(critical, major, minor)- 현상해결이 원인분석에 우선한다.- 조직 내 전파가 필요한지 판단2. 히스토리를 확인한다.3. 각종 정보(지표 등)를 확인한다.4. 가설을 세우고 증명하기(원인 파악하기)5. 해결되면 생각해볼 것들6. 미해결 이슈 공유우선순위 판단Critical: 장애상황, 서비스 중단. 사용자가 바로 알아차릴수 있음Major: 일부 극소수 사용자가 알아차릴수 있음. 서비스는 계속 제공가능Minor: 사용자가 알아차리지 못함. 서비스 계속 제공가능원인분석보다 현상해결이 우선이다. 예를 들어, 어떤 k8s 노드가 문제라서 장애라면 스케줄.. 2024. 11. 14.
모든 워커노드에서 특정 컨테이너 이미지 삭제 방법 쿠버네티스에 이미지를 배포할때 imagePullPolicy를 보통 IfNotPresent로 하게 된다. 이때 만약 부득이한 상황으로 이미지 태그를 업데이트하지 않고 다시 빌드해서 레지스트리에 올렸을 때, 정상적으로 이미지가 재배포되지 않는다. 개발용으로 빌드할때도 이런 경우를 마주할수 있는데, 모든 워커노드에서 다운로드된 특정 컨테이너 이미지를 찾아서 삭제해주는 방법을 공유한다.이 방식은 Containerd를 런타임으로 사용하는 쿠버네티스 1.24 버전부터 사용가능하다.먼저, crictl (Containerd ctl) 을 가지고 이미지를 만들어야 한다.FROM alpine:latest ARG CRICTL_VERSION="v1.31.1" # https://github.com/kubernetes-sigs/c.. 2024. 11. 6.
GPT와 개발 총 개발 경력 15년이 넘어가면서 이렇게 충격적인 시대에 살고 있다는 게 신기하기도 하다. ChatGPT 유료 버전을 쓰면서 개발 업무를 하고 있는데, 이렇게 개발 생산성이 순식간에 올라간 적이 있었나 싶다. 한 달에 3만 원씩을 사용하지만 전혀 아깝지 않다.가끔가다 써서 잘 까먹는 프로그래밍을 잘 짜준다.필자는 쉘스크립트 를 아주 가아끔 쓴다. 그런데 쉘 스크립트는 쓸 때만 잠깐 공부해서 쓰고, 다시 까먹는다. 그런데 공부하는 시간이 그동안 좀 걸렸다. 하지만 GPT에 물어보고 작성하니 버그도 덜하면서 빠르게 작성할 수가 있다.또한, 개인적인 취미생활로 파이썬 기반의 봇을 만들 때 구글 api 라든지 그런 사용법도 gpt 가 알아서(물론 최적화까지는 바로 안 해주지만) 바로바로 알려주므로 매우 빠르게 .. 2024. 11. 2.
Jupyterhub with spark on k8s 설치 삽질기 & 팁 주피터 노트북과 스파크는 워낙 잘 알려진 오픈소스이므로 이에 대한 설명은 굳이 언급하지 않으려 한다. 여기서는 k8s 상에 주피터를 어떻게 잘 설치할 수 있으며, 주피터 상에서 스파크 executor 를 어떻게 실행할수 있는지, 단순히 혼자서 쓰는게 아닌 여러명이 어떻게 공간을 분리(멀티테넌트)하여 제한된 리소스로 사용하도록 As a service 형태로 제공할수 있는지 설명한다. (보안측면에서는 자세히 다루지 않는다. k8s에서 networkPolicy 등 세밀한 설정이 필요하겠지만 그건 필요에 따라 레벨이 달라지기 때문이기도 하고, 자칫하다가는 주피터 노트북의 기본 동작 조차 안되는게 있을 수도 있다)또한 스파크의 배포형상에 대해서도 논하지 않는다. 주피터 노트북에서는 cluster 모드 보다는 c.. 2024. 10. 26.
Prometheus TSDB 분석 https://ganeshvernekar.com/blog/prometheus-tsdb-the-head-block/ Prometheus TSDB (Part 1): The Head Block | Ganesh VernekarWalk-through on how the in-memory part of Prometheus TSDB worksganeshvernekar.com위 블로그를 바탕으로 좀 더 이해가 될수 있도록 추가 분석한 내용을 정리한다. 프로메테우스는 자체 TSDB(TimeSeries DataBase)를 가지고 있다. DB의 기본적인 특성을 가지고 있으면서도 시계열에 특화된 구조로 되어있다. TSDB의 기본적인 구조는 다음과 같다. Sample(t,v): (timestamp, value) 이 하나의 값을.. 2024. 1. 28.
nvidia dcgm-exporter(gpu-exporter) nvidia 에서 제공하는 공식 gpu exporter인 dcgm-exporter에 대해 알아본다. DCGM 이란?DCGM은 DataCenter GPU Manager의 약자로, nvidia gpu 를 위한 종합 관리 및 모니터링 도구다. 이 도구는 데이터 센터 내의 nvidia gpu의 상태를 모니터링하고, 관리하는 데 사용된다. 여기서는 여러 기능 중 하나인 모니터링에 대해서 알아본다. DCGM 은 자체적으로 메트릭을 내보내지 않기 때문에 nvidia 이와 통신해서 메트릭을 만들어서 출력해주는 exporter를 별도로 제공하고 있다. DCGM exporter 동작방식그림에서와 같이 dcgm exporter는 Kubelet/node-exporter/DCGM과 통신하여 메트릭을 수집한다.ServiceMon.. 2024. 1. 18.
반응형