Ssoon
[4주차] CHAPTER-16 쿠버네티스 모니터링 도구 본문
이정훈님이 집필하신 "24단계 실습으로 정복하는 쿠버네티스" 로 진행하는 CloudNet@ 팀의 PKOS 4주차 정리입니다.
✔ Metric Pod
◾ 쿠버네티스 클러스터 내에서 실행 중인 애플리케이션의 성능과 상태를 모니터링하기 위해 사용되는 파드
◾ 쿠버네티스에서 제공하는 Metric Server를 통해 클러스터의 CPU, 메모리, 네트워크 등과 같은 리소스 사용량 정보를 수집하고, 이 정보를 바탕으로 각 파드의 성능과 상태를 측정합니다
✔ Metric Server
◾ 쿠버네티스 클러스터 내에서 실행 중인 애플리케이션의 리소스 사용량 정보를 수집하고, 이 정보를 바탕으로 각 파드의 성능과 상태를 측정하는 서버
◾ 쿠버네티스에서 제공하는 기본 리소스 모니터링 솔루션으로, CPU, 메모리, 네트워크 등과 같은 리소스 사용량 정보를 수집하고 이를 API 서버에서 제공하는 메트릭 데이터에 반영합니다. 이러한 메트릭 데이터는 Kubernetes Dashboar
✔ cAdvisor
◾ CPU, 메모리, 디스크, 네트워크 등과 같은 다양한 리소스 사용량 정보를 수집하고, 이 정보를 Prometheus와 같은 모니터링 도구에서 사용할 수 있는 형식으로 노출합니다
◾ 쿠버네티스 API 서버와도 통합되어 있으며, Metric Server를 사용하여 각 파드(Pod)의 성능 및 상태 정보를 수집하는 데도 사용됩니다
kubectl top => API Server => Metric-Server => cAdvisor
✅ metric-server를 이용한 Pod 및 Node의 리소스 사용량 확인
🧿 metric-server 를 설치합니다.
https://github.com/kubernetes-sigs/metrics-server
✔ Pod 의 container가 정상적으로 실행되지 않아 0/1로 표시됩니다.
🧿 log 정보를 확인합니다.
✔ x509 => 인증관련 문제임을 확인할 수 있습니다.
✔ IP SANs
◾ 쿠버네티스 API 서버 인증서의 일부로 사용되는 Subject Alternative Name(SAN)의 유형 중 하나입니다.
◾ IP 주소를 인증서의 SAN 필드에 추가하여 쿠버네티스 API 서버가 여러 IP 주소를 가진 노드에서 작동할 수 있도록 지원합니다.
◾ 쿠버네티스 API 서버 인증서를 구성할 때 중요한 옵션 중 하나이며, IP SANs가 없으면 API 서버가 다중 IP 주소를 가진 노드에서 작동하지 않을 수 있습니다.
✔ kubelet-insecure-tls
◾ 쿠버네티스(Kubernetes) 클러스터의 각 노드에서 kubelet이 API 서버와 통신할 때 TLS 인증서를 검증하지 않도록 설정하는 옵션입니다.
◾ 기본적으로 kubelet은 API 서버와 통신할 때 TLS 인증서를 검증합니다. 그러나 경우에 따라, TLS 인증서를 검증하지 않도록 kubelet-insecure-tls 옵션을 사용해야 할 수 있습니다. API 서버와 kubelet 간의 통신은 암호화되지만, 인증서의 유효성 검증이 이루어지지 않으므로 보안성이 감소할 수 있습니다.
🧿 kubelt-insecure-tls 옵션을 추가하기 위해 yaml 파일을 편집합니다.
🧿 수정한 yaml 파일을 적용하면 metric-server가 정상적으로 실행됩니다.
🧿 top 명령어를 조회할 수 있습니다.
✔ kubectl top
◾ 쿠버네티스(Kubernetes) 클러스터에서 실행 중인 파드, 노드, 노드의 컨테이너 등의 CPU 및 메모리 사용량을 실시간으로 모니터링하는 데 사용되는 명령어입니다.
🧿 --sort-by 을 사용하여 메모리를 내림차순으로 정렬할 수 있습니다.
✔ -A = --all-namespace : 전체 네임스페이스
🧿 플러그인을 설치하여 스토리지 사용량을 조회할 수 있습니다.
✅ 명령어 기반 쿠버네티스 모니터링 k9s
✔ K9s
◾ 터미널에서 쿠버네티스 클러스터를 모니터링하고 디버깅하는 데 사용됩니다.
https://github.com/derailed/k9s
🧿 k9s를 설치하고 새로운 터미널에서 k9s정보를 확인합니다.
🧿 k9s 모니터링을 확인하기 위해 잘못된 이미지의 deployment 를 실행합니다.
🧿 k9s를 실행하여 에러가 발생한 Deployment를 확인할 수 있습니다.
🧿 <0> 을 선택하고 엔터를 누르면 자세한 정보를 확인할 수 있습니다.
📢 k9s의 이벤트 메시지는 최대 1시간 이내의 정보만 표시합니다.
'Production Kubernetes Online Study' 카테고리의 다른 글
[4주차] CHAPTER-18 그라파나(Grafana) (0) | 2023.03.29 |
---|---|
[4주차] CHAPTER-17 프로메테우스(Prometheus) (2) | 2023.03.28 |
[3주차] CHAPTER-15 ArgoCD 를 활용한 GitOps (0) | 2023.03.23 |
[3주차] CHAPTER-14 깃랩을 이용한 로컬 Git 소스 저장소 (0) | 2023.03.22 |
[3주차] 원격 서버 Harbor 설치 (0) | 2023.03.22 |