PKOS 스터디 5주차 정리

DevOps Engineer·2023년 3월 4일
0

5주차 내용은 뭔가 최근에 실무에서 적용해본 경험이 있어서 금방할 수 있었다. 하지만 helm은 쉬워보이지만 chart를 볼 때마다 어렵게 느껴진다
exporter의 존재는 알고있었지만 추가하거나 활용하는 법을 잘 몰랐다.

Kops 클러스터 구성

addons: certManager, awsLoadBalancer, externalDns, metricsServer, kubeproxy

모니터링 설치 prometheus stack

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
#values.yaml 내용
alertmanager:
  ingress:
    enabled: true
    ingressClassName: alb

    annotations:
      alb.ingress.kubernetes.io/scheme: internet-facing
      alb.ingress.kubernetes.io/target-type: ip
      alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}, {"HTTP":80}]'
      alb.ingress.kubernetes.io/certificate-arn: $CERT_ARN
      alb.ingress.kubernetes.io/success-codes: 200-399
      alb.ingress.kubernetes.io/group.name: "monitoring"

    hosts:
      - alertmanager.$KOPS_CLUSTER_NAME

    paths:
      - /*


grafana:
  defaultDashboardsTimezone: Asia/Seoul
  adminPassword: prom-operator

  ingress:
    enabled: true
    ingressClassName: alb

    annotations:
      alb.ingress.kubernetes.io/scheme: internet-facing
      alb.ingress.kubernetes.io/target-type: ip
      alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}, {"HTTP":80}]'
      alb.ingress.kubernetes.io/certificate-arn: $CERT_ARN
      alb.ingress.kubernetes.io/success-codes: 200-399
      alb.ingress.kubernetes.io/group.name: "monitoring"

    hosts:
      - grafana.$KOPS_CLUSTER_NAME

    paths:
      - /*

prometheus:
  ingress:
    enabled: true
    ingressClassName: alb

    annotations:
      alb.ingress.kubernetes.io/scheme: internet-facing
      alb.ingress.kubernetes.io/target-type: ip
      alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}, {"HTTP":80}]'
      alb.ingress.kubernetes.io/certificate-arn: $CERT_ARN
      alb.ingress.kubernetes.io/success-codes: 200-399
      alb.ingress.kubernetes.io/group.name: "monitoring"

    hosts:
      - prometheus.$KOPS_CLUSTER_NAME

    paths:
      - /*

  prometheusSpec:
    serviceMonitorSelectorNilUsesHelmValues: false
    retention: 5d
    retentionSize: "10GiB"
EOT

helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack --version 45.0.0 -f monitor-values.yaml --namespace monitoring

이전에 실무경험을 할 때 retention 옵션때문에 엄청 애를 먹은 경험이 있다.
retention 옵션은 기본적으로 24시간으로 잡혀있어서 이를 수정해줘야하며 수정 안할 시 24시간의 기록만 prometheus에 저장이 된다.


import로 추가한 한글버전

nginx 파드 모니터링 설정

cat <<EOT > ~/nginx-values.yaml
metrics:
  enabled: true

  service:
    port: 9113

  serviceMonitor:
    enabled: true
    namespace: monitoring
    interval: 10s
EOT
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install nginx bitnami/nginx --version 13.2.23 -f nginx-values.yaml

이번 스터디로 배운 점

  • kops cluster addons 기능 추가(metrics server)
  • prometheus operator가 prometheus stack으로 명칭이 바뀐 점
  • exporter를 활용하는 법

실무에서 경험한 걸 발표자료로 정리하여 발표도 했다!

발표자료

https://drive.google.com/file/d/17u2JXvPnaqBacmPmYAuNxz0BSYSalmjK/view?usp=share_link

profile
madame의 Techblog

0개의 댓글