6.3. Prometheus に対する KubePersistentVolumeFillingUp アラートの解決
				クラスター管理者は、Prometheus に対してトリガーされている KubePersistentVolumeFillingUp アラートを解決できます。
			
				openshift-monitoring プロジェクトの prometheus-k8s-* Pod によって要求された永続ボリューム (PV) の合計残り容量が 3% 未満になると、重大アラートが発生します。これにより、Prometheus の動作異常が発生する可能性があります。
			
					KubePersistentVolumeFillingUp アラートは 2 つあります。
				
- 
							重大アラート: マウントされた PV の合計残り容量が 3% 未満になると、severity="critical"ラベルの付いたアラートがトリガーされます。
- 
							警告アラート: マウントされた PV の合計空き容量が 15% 未満になり、4 日以内にいっぱいになると予想される場合、severity="warning"ラベルの付いたアラートがトリガーされます。
この問題に対処するには、Prometheus 時系列データベース (TSDB) のブロックを削除して、PV 用のスペースを増やすことができます。
前提条件
- 
						dedicated-adminロールを持つユーザーとしてクラスターにアクセスできる。
- 
						OpenShift CLI (oc) がインストールされている。
手順
- 次のコマンドを実行して、すべての TSDB ブロックのサイズを古いものから新しいものの順にリスト表示します。 - oc debug <prometheus_k8s_pod_name> -n openshift-monitoring \ -c prometheus --image=$(oc get po -n openshift-monitoring <prometheus_k8s_pod_name> \ -o jsonpath='{.spec.containers[?(@.name=="prometheus")].image}') \ -- sh -c 'cd /prometheus/;du -hs $(ls -dtr */ | grep -Eo "[0-9|A-Z]{26}")'- $ 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}")'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 削除できるブロックとその数を特定し、ブロックを削除します。次のコマンド例は、 - prometheus-k8s-0Pod から最も古い 3 つの 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'- $ 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'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次のコマンドを実行して、マウントされた PV の使用状況を確認し、十分な空き容量があることを確認します。 - oc debug <prometheus_k8s_pod_name> -n openshift-monitoring \ --image=$(oc get po -n openshift-monitoring <prometheus_k8s_pod_name> \ -o jsonpath='{.spec.containers[?(@.name=="prometheus")].image}') -- df -h /prometheus/- $ 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/- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 次の出力例は、 - 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 ... - Starting pod/prometheus-k8s-0-debug-j82w4 ... Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p4 40G 15G 40G 37% /prometheus Removing debug pod ...- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow