7.11.3. Prometheus에 대해 KubePersistentVolumeFillingUp 경고가 실행됨
클러스터 관리자는 Prometheus에 대해 KubePersistentVolumeFillingUp 경고가 트리거되는 문제를 해결할 수 있습니다.
openshift-monitoring 프로젝트의 prometheus-k8s-* Pod에서 클레임한 PV(영구 볼륨)가 남아 있는 총 공간이 3% 미만인 경우 발생합니다. 이로 인해 Prometheus가 비정상적으로 작동할 수 있습니다.
KubePersistentVolumeFillingUp 경고 두 가지가 있습니다.
-
critical alert: mounted PV의 총 공간이 3% 미만이면
severity="critical"라벨이 있는 경고가 트리거됩니다. -
경고 경고: mounted PV의 총 공간이 15 % 미만이고 4 일 이내에 채울 것으로 예상되는 경우
severity="warning"라벨이 있는 경고가 트리거됩니다.
이 문제를 해결하려면 Prometheus TSDB(time-series database) 블록을 제거하여 PV에 더 많은 공간을 생성할 수 있습니다.
사전 요구 사항
-
cluster-admin클러스터 역할의 사용자로 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
다음 명령을 실행하여 가장 오래된 것에서 최신으로 정렬된 모든 TSDB 블록의 크기를 나열합니다.
$ oc debug <prometheus_k8s_pod_name> -n openshift-monitoring \1 -c prometheus --image=$(oc get po -n openshift-monitoring <prometheus_k8s_pod_name> \2 -o jsonpath='{.spec.containers[?(@.name=="prometheus")].image}') \ -- sh -c 'cd /prometheus/;du -hs $(ls -dtr */ | grep -Eo "[0-9|A-Z]{26}")'- 1 2
- &
lt;prometheus_k8s_pod_name>을KubePersistentVolumeFillingUp경고 설명에 언급된 Pod로 바꿉니다.출력 예
308M 01HVKMPKQWZYWS8WVDAYQHNMW6 52M 01HVK64DTDA81799TBR9QDECEZ 102M 01HVK64DS7TRZRWF2756KHST5X 140M 01HVJS59K11FBVAPVY57K88Z11 90M 01HVH2A5Z58SKT810EM6B9AT50 152M 01HV8ZDVQMX41MKCN84S32RRZ1 354M 01HV6Q2N26BK63G4RYTST71FBF 156M 01HV664H9J9Z1FTZD73RD1563E 216M 01HTHXB60A7F239HN7S2TENPNS 104M 01HTHMGRXGS0WXA3WATRXHR36B
제거할 수 있는 블록 수와 블록을 확인한 다음 블록을 제거합니다. 다음 예제 명령은
prometheus-k8s-0Pod에서 가장 오래된 세 가지 Prometheus TSDB 블록을 제거합니다.$ oc debug prometheus-k8s-0 -n openshift-monitoring \ -c prometheus --image=$(oc get po -n openshift-monitoring prometheus-k8s-0 \ -o jsonpath='{.spec.containers[?(@.name=="prometheus")].image}') \ -- sh -c 'ls -latr /prometheus/ | egrep -o "[0-9|A-Z]{26}" | head -3 | \ while read BLOCK; do rm -r /prometheus/$BLOCK; done'마운트된 PV의 사용량을 확인하고 다음 명령을 실행하여 사용 가능한 공간이 충분한지 확인합니다.
$ oc debug <prometheus_k8s_pod_name> -n openshift-monitoring \1 --image=$(oc get po -n openshift-monitoring <prometheus_k8s_pod_name> \2 -o jsonpath='{.spec.containers[?(@.name=="prometheus")].image}') -- df -h /prometheus/- 1 2
- &
lt;prometheus_k8s_pod_name>을KubePersistentVolumeFillingUp경고 설명에 언급된 Pod로 바꿉니다.다음 예제 출력에서는
prometheus-k8s-0Pod에서 클레임한 마운트된 PV가 남아 있는 공간의 63%를 보여줍니다.출력 예
Starting pod/prometheus-k8s-0-debug-j82w4 ... Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p4 40G 15G 40G 37% /prometheus Removing debug pod ...