티스토리 뷰

1단계. EKS 컨트롤플레인의 로깅을 활성화

  1) 콘솔에서 로깅 관리를 통해 컨트롤플레인 로그에 대한 활성화 

  2) 클러스터 구성 업데이트 진행 중 안내 화면 보이면서 EKS 구성 변경 발생(3~5분 소요)

  3) Cloudwatch에서 로그>로그 그룹 아래에 eks 이름으로 신규 로그 그룹 생성 확인

 

2단계. AWS 콘솔을 통한 로그 확인

  1) 하위 로그 스트림에서 현재 로그 확인 

  2) 모든 로그 스트림 검색을 통해 시간대별 세부 로그 확인

 

3단계. AWS 콘솔을 통한 로그 쿼리 조회

  1) Cloudwatch 내 로그>Logs Insights 로 이동하여 로그 그룹선택

  2) kube-scheduler 관련 로그를 시간의 역순로 정렬하여 보여주도록 조회

  3) 동일 로그 AWS CLI를 통해서 조회 및 확인

 

4단계. kubectl을 통한 컨테이너 접속 로그 확인

  1) pod 내 ngingx의 로그 관련 파일 확인

    - 해당 파일이 /dev/stdout과 /dev/stderr로 심볼릭링크 걸려 있음

  2) 배포된 curl로 접속 확인 : while true; do curl -s https://nginx.$MyDomain -I | head -n 1; date; sleep 1; done

  3) kubectl을 통한 접속 로그 확인 : kubectl logs deploy/nginx -f

   

5단계. CloudWatch Container Insight 설치

  1) Fluent Bit 설치

    FluentBitHttpServer='On'

    FluentBitHttpPort='2020'

    FluentBitReadFromHead='Off'

    FluentBitReadFromTail='On' curl -s https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/daemonset/container-insights-monitoring/quickstart/cwagent-fluent-bit-quickstart.yaml | sed 's/{{cluster_name}}/'${CLUSTER_NAME}'/;s/{{region_name}}/'${AWS_DEFAULT_REGION}'/;s/{{http_server_toggle}}/"'${FluentBitHttpServer}'"/;s/{{http_server_port}}/"'${FluentBitHttpPort}'"/;s/{{read_from_head}}/"'${FluentBitReadFromHead}'"/;s/{{read_from_tail}}/"'${FluentBitReadFromTail}'"/' | kubectl apply -f -

 

  2) 설치 후 관련 데몬셋이 정상 동작 중인지 확인

    - 각 node별 2020 포트(fluent bit)가 정상 동작 중인지 확인

  3) CloudWatch의 로그 그룹으로 이도아혀 관련 로그그룹 생성됨을 확인

  4) 원하는 로그 그룹으로 들어가 로그 스트림에서 해당 데이터 검색을 확인

  5) 인사이트>Container Insights로 이동하여 현재 사용중인 리소스 내역 확인

  6) 맵 보기로 이동하여 현재 사용중인 컨테이너의 맵 확인

  7) 성능 모니터링으로 이동하여 현재 k8s 클러스터에 대한 성능 Metric 확인

 

6단계. Metric-Server를 통한 kubectl TOP 사용

  1) Metric-server를 설치

  2) kubectl top을 통한 메트릭 기반의 데이터 정렬/조

 

7단계. kwatch를 통한 slack 연동

  1) kwatch를 설치

  2) 존재하지 않는 이미지의 pod를 배포

  3) slack을 통한 즉시 알람 확인

 

8단계. botkube를 통한 slack에서 kubectl 전달

  1) botkube 설치

  2) Slack 창을 통한 k8s 명령어 전달 확인

 

9단계. 프로메테우스를 통한 모니터링
  1) 프로메테우스 설치

  2) 프로메테우스 구성 정보 확인

  3) ALB 통한 LB 정보 확인

  4) Prometheus 접속 후 정보 확인 : 설정 정보, Target 정보

 

 5) 매트릭을 그래프로 조회

    - PromQL 쿼리를 이용하여 그래프 확인 : 전체 클러스터의 CPU 사용량 합계

 

10단계. 그라파나를 통한 시각화

  1) 그라파나 구성 정보 확인

  2) 그라파나 접속 후 Data Source 확인

    - 접속계정 : admin / prom-operator

    - 프로메테우스 스택으로 자동설치되어 자동으로 대상 설정 완료

  3) 신규 Dashboard 추가

    - 그라파나 홈페이지에서 필요한 대시보드 검색 : https://grafana.com/grafana/dashboards/ Home>Data Source 확인

    - 필요한 대시보드의 ID만 기록 : 15757, 16032

    - 그라파나 홈의 Dashboard>Import dashboard로 이동

    - New를 선택해 Import로 이동

    - Import via grafana.com에 기록한 ID로 Load

  4) nginx 웹서버에 대한 정보 수집 추가

    - 기존 컨테이너 안에 ngingx 외에 metrics라는 pod가 하나 더 추가됨을 확인

    - metrics : 9113 포트로 프로메테우스가 데이터를 가져갈 수 있도록 서비스를 제공

    - 해당 정보가 프로메테우스의 target에 자동으로 추가됨을 확

  5) nginx 대시보드 추가하여 정보확인 : 12708

 

-----------------------------------------------------------------------------------------------

이 내용은 AEWS(AWS EKS Workshop Study) 1기의 과제로써 작성되었습니다.

AEWS는 '가시다'님이 속한 CloudNet@에서 진행하는 AWS EKS workshop에 대한 스터디입니다.

매주 일요일마다 소중한 정보를 퍼주시는 '가시다'님께 무한 감사 드립니다.

https://gasidaseo.notion.site/23-AWS-EKS-Workshop-07165aec800042b9ac9357aee18fdf17

댓글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함
최근에 올라온 글
Total
Today
Yesterday
링크