Files
DevOps-Security-Agent-Skills/devops/orchestration/kubernetes-ops/scripts/cluster-health-check.sh
T

79 lines
1.9 KiB
Bash
Raw Normal View History

2026-01-27 17:35:45 -05:00
#!/bin/bash
# Kubernetes Cluster Health Check Script
# Usage: ./cluster-health-check.sh [namespace]
set -euo pipefail
NAMESPACE="${1:-default}"
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
echo "========================================="
echo "Kubernetes Cluster Health Check"
echo "========================================="
echo ""
# Check cluster connectivity
echo -n "Checking cluster connectivity... "
if kubectl cluster-info &>/dev/null; then
echo -e "${GREEN}OK${NC}"
else
echo -e "${RED}FAILED${NC}"
exit 1
fi
# Node status
echo ""
echo "Node Status:"
echo "------------"
kubectl get nodes -o wide
# Check for NotReady nodes
NOT_READY=$(kubectl get nodes --no-headers | grep -v " Ready" | wc -l)
if [ "$NOT_READY" -gt 0 ]; then
echo -e "${RED}WARNING: $NOT_READY node(s) not ready${NC}"
fi
# Pod status in namespace
echo ""
echo "Pod Status in namespace '$NAMESPACE':"
echo "--------------------------------------"
kubectl get pods -n "$NAMESPACE" -o wide
# Check for failed pods
FAILED_PODS=$(kubectl get pods -n "$NAMESPACE" --no-headers | grep -E "Error|CrashLoopBackOff|ImagePullBackOff" | wc -l)
if [ "$FAILED_PODS" -gt 0 ]; then
echo -e "${RED}WARNING: $FAILED_PODS pod(s) in error state${NC}"
fi
# Resource usage
echo ""
echo "Resource Usage:"
echo "---------------"
kubectl top nodes 2>/dev/null || echo "Metrics server not available"
# Recent events
echo ""
echo "Recent Warning Events:"
echo "----------------------"
kubectl get events -n "$NAMESPACE" --field-selector type=Warning --sort-by='.lastTimestamp' | tail -10
# PVC status
echo ""
echo "PersistentVolumeClaim Status:"
echo "-----------------------------"
kubectl get pvc -n "$NAMESPACE" 2>/dev/null || echo "No PVCs found"
# Service status
echo ""
echo "Services:"
echo "---------"
kubectl get svc -n "$NAMESPACE"
echo ""
echo "========================================="
echo "Health check complete"
echo "========================================="