작업공간

SIA - 하계 최종 회고 본문

2022 하계 인턴

SIA - 하계 최종 회고

씨코더 2022. 12. 5. 09:58

🗓 Plan

구분주요 실습 내용 및 계획

1주 기업 및 업무 소개, 보안 교육
2주 클라우드 네이티브 관측가능성 개념에 대한 이해 & 쿠버네티스에 대한 이해
3주 GLP 스택에 대한 이해 및 배포 실습
4주 실습 내용 중간 점검 및 보고
5주 Prometheus 개선 도구, “Thanos”에 대한 개념 이해
6주 Thanos 배포 실습
7주 Thanos 구성 최적화 실습
8주 실습 내용 최종 점검 및 보고
  • [x] Observability & K8S 개념 파악
  • [x] 싱글 클러스터 환경 Prometheus & Grafana 모니터링 시스템 구축
  • [x] 멀티 클러스터 환경 Thanos & Prometheus & S3 & Grafana 모니터링 시스템 구축
  • [x] Thanos 구성 최적화

+

  • [ ] Argo CD로 K8S 클러스터 Gitops 경험
  • [ ] Event에 따라 alertmanager 구축
  • [ ] 클러스터 구축

💪 Deep

  • Network
    • Ingress control
    • grpc
  • Debugging skill

✅ Result

Architect Cluster’s monitoring system

  • [x] Thanos component 분석
  • [x] 각각의 component 연결 방법 확인
  • [x] Thanos + Prometheus 구성도 작성

Thanos + Prometheus + S3 + Grafana

  • [x] 각 클러스터에서 프로메테우스 메트릭 수집 확인
  • [x] 오래된 메트릭 S3 저장 확인
  • [x] hyunseok1-cluster의 Thanos가 모든 클러스터의 메트릭 수집 확인
  • [ ] 타겟 클러스터 추가 시 환경 구성 자동화 쉘 스크립트 작성

sre-intern-observability
├── README.md
├── multi-cluster-central
│   ├── Chart.lock
│   ├── Chart.yaml
│   ├── values
│   │   └── sia
│   │       ├── dev-prom.yaml
│   │       ├── dev-query.yaml
│   │       └── dev-thanos.yaml
│   └── values.yaml
├── multi-cluster-target
│   ├── Chart.lock
│   ├── Chart.yaml
│   ├── values
│   │   └── sia
│   │       └── dev-prom.yaml
│   └── values.yaml
└── **updateQuery.sh**

👨‍💻 Doing

Thanos 환경 구성

why extend to thanos?

  • [x] Query, Storegateway, Compactor yaml 작성
  • [x] Thanos ↔  minIO 연결 확인
  • [x] Prometheus, node exporter로 자체 메트릭 수집 확인
  • [x] Thanos → Prometheus 메트릭 수집
  • [x] hyunseok2-cluster에도 Prometheus, Thanos sidecar 설정
  • [x] Grafana로 총 2개의 클러스터 메트릭 확인
  • [x] Helm chart로 정리
  • [x] 자동화 쉘 스크립트 작성

🔥 Accident

Kubelet high network latency 

  • 해결
  • kubectl delete service/{unused_kubelet} -n kube-system

Query and grpc

sidecar의 http endpoint가 잡히지 않는다

ingress rule의 subpath grpc endpoint가 잡히지 않는다

  • GRPC는 root path / 만 지원 중이었다..
  • 이거 때문에 시간을 좀 많이 날렸다
  • Query는 sidecar의 grpc endpoint로만 설정하도록 공식 문서에 나와있다..

Cannot load S3 when re-release

 

prometheus가 재배포되면 Storage에 저장되어있던 과거 데이터들을 로드할 수 없음

  • 하지만 Sidecar는 생성된 시점부터 저장한 데이터에 대해서만 로드가 가능하고, Storegateway는 상관없이 로드가 가능하다는 차이가 있었다.
  • Storegateway를 사용하여 해결
  • Sidecar와 Storegateway 모두 Store API를 지원한다고 하여 동일한 기능을 하는 줄 알고 Storegateway를 사용하지 않았었다.

🌱 Impression

  • 문제를 바라보는 관점을 과감하게 돌릴 줄도 알아야 한다.
  • 질문을 할 때 시간을 뺏는다고 망설이지 말고 충분히 고민해봤다면 질문하자.

🙋 QnA

 

'2022 하계 인턴' 카테고리의 다른 글

SIA - 하계 중간 회고  (0) 2022.11.18
[SIA] Cloud native  (0) 2022.07.07
[SIA] Cloud Engineer 면접  (0) 2022.05.26