[pkos] 쿠버네티스 스터디 - 6주차 과제

xgro·2023년 2월 25일
0

PKOS

목록 보기
10/11

📌 Notice

본 블로깅은 아래의 24단계 실습으로 정복하는 쿠버네티스 책을 기준하여 정리하였습니다.

출처 - https://wikibook.co.kr/kubepractice

CloudNetaStudy 그룹에서 스터디한 내용입니다.
책의 저자이신 이정훈-Jerry님과 함께 스터디 하고 있습니다. 🙏
Gasida님과 Jerry님께 다시한번 🙇 감사드립니다.

📌 6주차 과제 수행 결과 입니다.

📌 Assignment 01

목표 : 책 367~372페이지 - 사용자 정의 prometheusrules 정책 설정 : 파일 시스템 사용률 80% 초과 시 시스템 경고 발생시키기 ⇒ 직접 실습 후 관련 스샷을 올려주세요

도서를 참고하여 아래 명령어로 yaml 파일을 생성합니다.

# 사용한 명령어
kubectl get prometheusrules.monitoring.coreos.com -n monitoring kube-prometheus-stack-node-exporter -o yaml >  node-exproter-prom.yaml
# 내용 추가

- alert: NodeFilesystemAlmostOutOfSpace-20
      annotations:
        description: Filesystem on {{ $labels.device }} at {{ $labels.instance }}
          has only {{ printf "%.2f" $value }}% available space left.
        runbook_url: https://runbooks.prometheus-operator.dev/runbooks/node/nodefilesystemalmostoutofspace
        summary: Filesystem has less than 20% space left.
      expr: |-
        (
          node_filesystem_avail_bytes{job="node-exporter",fstype!="",mountpoint!=""} / node_filesystem_size_bytes{job="node-exporter",fstype!="",mountpoint!=""} * 100 < 20
        and
          node_filesystem_readonly{job="node-exporter",fstype!="",mountpoint!=""} == 0
        )
      for: 10m
      labels:
        severity: warning
# 수정한 내용을 적용 합니다.
kubectl apply -f node-exproter-prom.yaml

📌 Assignment 02

목표 : 책 386~389페이지 - LogQL 사용법 익히기 ⇒ 직접 실습 후 관련 스샷을 올려주세요

LogQL이란?
LogQL은 Loki의 쿼리 언어로 로그 데이터를 검색할 때 사용하는 언어입니다.

{job="kube-system/aws-ebs-csi-driver"} |= ``

쿼리를 이용하여 Explore 탭에서 로그를 확인합니다.

📌 Assignment 03

목표 : Awesome Prometheus alerts 를 참고해서 스터디에서 배우지 않은 Alert Rule 생성 및 적용 후 관련 스샷을 올려주세요

Awesome Prometheus alerts

링크에서 중요한 지표로 확인하는 HostOutOfMemory에 대해서 규칙을 생성하고 적용하였습니다.

👉 Step 01. yaml 생성

쿠버네티스 명령어를 통해 현재 사용중인 규칙을 yaml 파일로 생성합니다.

k get prometheusrules.monitoring.coreos.com -n monitoring kube-prometheus-stack-node-exporter -o yaml > node-exporter-promrules.yaml

👉 Step 02. yaml 수정

yaml 파일을 수정합니다

vi node-exporter-promrules.yaml

  - alert: HostOutOfMemory
    expr: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100 < 10
    for: 2m
    labels:
      severity: warning
    annotations:
      summary: Host out of memory (instance {{ $labels.instance }})
      description: "Node memory is filling up (< 10% left)\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"

👉 Step 03. 규칙 적용

쿠버네티스 커맨드를 이용하여 수정한 내용을 반영합니다.

kubectl apply -f node-exporter-promrules.yaml

규칙 삽입 후 적용하면 아래와 같이 프로메테우스에서 추가된 규칙을 확인할 수 있습니다.

profile
안녕하세요! DevOps 엔지니어 이재찬입니다. 블로그에 대한 피드백은 언제나 환영합니다! 기술, 개발, 운영에 관한 다양한 주제로 함께 나누며, 더 나은 협업과 효율적인 개발 환경을 만드는 과정에 대해 인사이트를 나누고 싶습니다. 함께 여행하는 기분으로, 즐겁게 읽어주시면 감사하겠습니다! 🚀

0개의 댓글