fix: correct variable parsing in check_nodes.sh
This commit is contained in:
@@ -21,14 +21,14 @@ NODES=$(kubectl get nodes --no-headers)
|
|||||||
# 統計
|
# 統計
|
||||||
NODE_TOTAL=$(echo "$NODES" | wc -l)
|
NODE_TOTAL=$(echo "$NODES" | wc -l)
|
||||||
NODE_READY=$(echo "$NODES" | grep -c " Ready " || true)
|
NODE_READY=$(echo "$NODES" | grep -c " Ready " || true)
|
||||||
NODE_NOT_READY=$(echo "$NODES" | grep -v " Ready " | wc -l)
|
NODE_NOT_READY=$((NODE_TOTAL - NODE_READY))
|
||||||
|
|
||||||
echo "📊 叢集概況"
|
echo "📊 叢集概況"
|
||||||
echo "------------------------------------------"
|
echo "------------------------------------------"
|
||||||
echo "總節點數: $NODE_TOTAL"
|
echo "總節點數: $NODE_TOTAL"
|
||||||
echo -e " ${GREEN}Ready: $NODE_READY${NC}"
|
echo -e " ${GREEN}✓ Ready: $NODE_READY${NC}"
|
||||||
if [ $NODE_NOT_READY -gt 0 ]; then
|
if [ $NODE_NOT_READY -gt 0 ]; then
|
||||||
echo -e " ${RED}NotReady: $NODE_NOT_READY${NC}"
|
echo -e " ${RED}✗ NotReady: $NODE_NOT_READY${NC}"
|
||||||
fi
|
fi
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
@@ -36,9 +36,17 @@ echo ""
|
|||||||
echo "🖥️ 節點詳細資訊"
|
echo "🖥️ 節點詳細資訊"
|
||||||
echo "------------------------------------------"
|
echo "------------------------------------------"
|
||||||
|
|
||||||
while read -r name status roles age version internal_ip os kernel runtime; do
|
echo "$NODES" | while IFS= read -r line; do
|
||||||
|
# 解析每個欄位
|
||||||
|
NAME=$(echo "$line" | awk '{print $1}')
|
||||||
|
STATUS=$(echo "$line" | awk '{print $2}')
|
||||||
|
ROLES=$(echo "$line" | awk '{print $3}')
|
||||||
|
INTERNAL_IP=$(echo "$line" | awk '{print $6}')
|
||||||
|
OS=$(echo "$line" | awk '{print $7}')
|
||||||
|
KERNEL=$(echo "$line" | awk '{print $8}')
|
||||||
|
|
||||||
# 顏色判斷
|
# 顏色判斷
|
||||||
if [[ "$status" == "Ready"* ]]; then
|
if [[ "$STATUS" == "Ready"* ]]; then
|
||||||
STATUS_COLOR="$GREEN"
|
STATUS_COLOR="$GREEN"
|
||||||
ICON="✓"
|
ICON="✓"
|
||||||
else
|
else
|
||||||
@@ -47,30 +55,34 @@ while read -r name status roles age version internal_ip os kernel runtime; do
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# 角色簡化
|
# 角色簡化
|
||||||
if [[ "$roles" == *"control-plane"* ]]; then
|
if [[ "$ROLES" == *"control-plane"* ]]; then
|
||||||
ROLE="${BLUE}[master]${NC}"
|
ROLE="${BLUE}[master]${NC}"
|
||||||
elif [[ "$roles" == "<none>" ]]; then
|
elif [[ "$ROLES" == "<none>" ]]; then
|
||||||
ROLE="[worker]"
|
ROLE="[worker]"
|
||||||
else
|
else
|
||||||
ROLE="$roles"
|
ROLE="$ROLES"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 輸出
|
# 輸出
|
||||||
echo -e "${STATUS_COLOR}$ICON $name${NC} $ROLE"
|
echo -e "${STATUS_COLOR}$ICON $NAME${NC} $ROLE"
|
||||||
echo " 狀態: $status"
|
echo " 狀態: $STATUS"
|
||||||
echo " IP: $internal_ip"
|
echo " IP: $INTERNAL_IP"
|
||||||
echo " OS: $os $kernel"
|
echo " OS: $OS $KERNEL"
|
||||||
echo ""
|
echo ""
|
||||||
done <<< "$NODES"
|
done
|
||||||
|
|
||||||
# Pod 分佈
|
# Pod 分佈
|
||||||
echo "📦 Pod 分佈"
|
echo "📦 Pod 分佈"
|
||||||
echo "------------------------------------------"
|
echo "------------------------------------------"
|
||||||
kubectl get pods -A -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{.spec.nodeName}{"\n"}' | awk '{print $1, $2, "→", $3}' | column -t | head -20
|
kubectl get pods -A -o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{.spec.nodeName}{"\n"}{end}' 2>/dev/null | grep -E "(vm120|vm121|vm122)" | while IFS=$'\t' read -r ns pod node; do
|
||||||
|
echo " $pod ($ns) → $node"
|
||||||
|
done | head -15
|
||||||
|
|
||||||
POD_TOTAL=$(kubectl get pods -A --no-headers | wc -l)
|
POD_TOTAL=$(kubectl get pods -A --no-headers 2>/dev/null | wc -l)
|
||||||
echo "..."
|
if [ $POD_TOTAL -gt 15 ]; then
|
||||||
echo "總 Pod 數: $POD_TOTAL"
|
echo " ..."
|
||||||
|
fi
|
||||||
|
echo " 總 Pod 數: $POD_TOTAL"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
|
|||||||
Reference in New Issue
Block a user