fix: correct node storage query in check_storage.sh
This commit is contained in:
@@ -17,7 +17,7 @@ echo ""
|
|||||||
# 1. PVC 狀態
|
# 1. PVC 狀態
|
||||||
echo "📦 PVC (資料卷)"
|
echo "📦 PVC (資料卷)"
|
||||||
echo "------------------------------------------"
|
echo "------------------------------------------"
|
||||||
kubectl get pvc -o custom-columns=NAME:.metadata.name,STATUS:.status.phase,SIZE:.spec.resources.requests.storage,AGE:.metadata.age
|
kubectl get pvc
|
||||||
|
|
||||||
# 統計 PVC
|
# 統計 PVC
|
||||||
PVC_TOTAL=$(kubectl get pvc --no-headers 2>/dev/null | wc -l)
|
PVC_TOTAL=$(kubectl get pvc --no-headers 2>/dev/null | wc -l)
|
||||||
@@ -37,11 +37,7 @@ echo ""
|
|||||||
if kubectl get ns longhorn-system >/dev/null 2>&1; then
|
if kubectl get ns longhorn-system >/dev/null 2>&1; then
|
||||||
echo "💾 Longhorn 儲存"
|
echo "💾 Longhorn 儲存"
|
||||||
echo "------------------------------------------"
|
echo "------------------------------------------"
|
||||||
|
kubectl -n longhorn-system get volumes
|
||||||
# 取得 volume 狀態
|
|
||||||
kubectl -n longhorn-system get volumes -o custom-columns=NAME:.metadata.name,STATE:.status.state,健康:.status.robustness,NODE:.status.currentNodeID 2>/dev/null || {
|
|
||||||
kubectl -n longhorn-system get volumes
|
|
||||||
}
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
@@ -72,33 +68,29 @@ if kubectl get ns longhorn-system >/dev/null 2>&1; then
|
|||||||
echo "------------------------------------------"
|
echo "------------------------------------------"
|
||||||
|
|
||||||
for node in vm120 vm121 vm122; do
|
for node in vm120 vm121 vm122; do
|
||||||
NODE_INFO=$(kubectl -n longhorn-system get nodes.longhorn.io "$node" -o jsonpath="{.status.diskStatus}" 2>/dev/null)
|
# 取得節點的儲存資訊
|
||||||
if [ -n "$NODE_INFO" ]; then
|
STORAGE_AVAIL=$(kubectl -n longhorn-system get nodes.longhorn.io "$node" -o jsonpath="{.status.diskStatus.*.storageAvailable}" 2>/dev/null | head -1)
|
||||||
# 取得第一個 disk 的資訊
|
STORAGE_MAX=$(kubectl -n longhorn-system get nodes.longhorn.io "$node" -o jsonpath="{.status.diskStatus.*.storageMaximum}" 2>/dev/null | head -1)
|
||||||
DISK_NAME=$(echo "$NODE_INFO" | grep -oP '^\s+"\K[^"]+' | head -1)
|
|
||||||
if [ -n "$DISK_NAME" ]; then
|
|
||||||
STORAGE_AVAIL=$(echo "$NODE_INFO" | grep -A1 "$DISK_NAME" | grep storageAvailable | grep -oP '\d+' | head -1)
|
|
||||||
STORAGE_MAX=$(echo "$NODE_INFO" | grep -A1 "$DISK_NAME" | grep storageMaximum | grep -oP '\d+' | head -1)
|
|
||||||
|
|
||||||
if [ -n "$STORAGE_AVAIL" ] && [ -n "$STORAGE_MAX" ]; then
|
if [ -n "$STORAGE_AVAIL" ] && [ -n "$STORAGE_MAX" ]; then
|
||||||
# 轉換為 GB
|
# 轉換為 GB
|
||||||
AVAIL_GB=$((STORAGE_AVAIL / 1024 / 1024 / 1024))
|
AVAIL_GB=$((STORAGE_AVAIL / 1024 / 1024 / 1024))
|
||||||
MAX_GB=$((STORAGE_MAX / 1024 / 1024 / 1024))
|
MAX_GB=$((STORAGE_MAX / 1024 / 1024 / 1024))
|
||||||
USED_GB=$((MAX_GB - AVAIL_GB))
|
USED_GB=$((MAX_GB - AVAIL_GB))
|
||||||
PERCENT=$((USED_GB * 100 / MAX_GB))
|
PERCENT=$((USED_GB * 100 / MAX_GB))
|
||||||
|
|
||||||
# 顏色
|
# 顏色
|
||||||
if [ $PERCENT -lt 70 ]; then
|
if [ $PERCENT -lt 70 ]; then
|
||||||
COLOR="$GREEN"
|
COLOR="$GREEN"
|
||||||
elif [ $PERCENT -lt 90 ]; then
|
elif [ $PERCENT -lt 90 ]; then
|
||||||
COLOR="$YELLOW"
|
COLOR="$YELLOW"
|
||||||
else
|
else
|
||||||
COLOR="$RED"
|
COLOR="$RED"
|
||||||
fi
|
|
||||||
|
|
||||||
echo -e "$node: ${COLOR}${USED_GB}G / ${MAX_GB}G (${PERCENT}%)${NC}"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo -e "$node: ${COLOR}${USED_GB}G / ${MAX_GB}G (${PERCENT}% 使用)${NC}"
|
||||||
|
else
|
||||||
|
echo "$node: 無法取得儲存資訊"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user