Changed pod selection to use --field-selector=status.phase=Running to avoid selecting Terminating pods during rollout
41 lines
1.4 KiB
Bash
Executable file
41 lines
1.4 KiB
Bash
Executable file
#!/bin/bash
|
|
# Script to debug Redis/Valkey connectivity in production
|
|
|
|
set -e
|
|
|
|
NAMESPACE="${1:-towerops}"
|
|
# Get a running pod (not terminating)
|
|
POD_NAME=$(kubectl get pods -n "$NAMESPACE" -l app=towerops --field-selector=status.phase=Running -o jsonpath='{.items[0].metadata.name}' 2>/dev/null)
|
|
|
|
if [ -z "$POD_NAME" ]; then
|
|
echo "Error: No running towerops pods found in namespace $NAMESPACE"
|
|
exit 1
|
|
fi
|
|
|
|
echo "=== Debugging Redis/Valkey in pod: $POD_NAME ==="
|
|
echo
|
|
|
|
echo "1. Checking if both containers are running:"
|
|
kubectl get pod "$POD_NAME" -n "$NAMESPACE" -o jsonpath='{range .status.containerStatuses[*]}{.name}{"\t"}{.ready}{"\t"}{.state}{"\n"}{end}'
|
|
echo
|
|
|
|
echo "2. Checking Valkey container logs:"
|
|
kubectl logs "$POD_NAME" -n "$NAMESPACE" -c valkey --tail=20
|
|
echo
|
|
|
|
echo "3. Testing Valkey connectivity from towerops container:"
|
|
kubectl exec "$POD_NAME" -n "$NAMESPACE" -c towerops -- sh -c 'nc -zv 127.0.0.1 6379 2>&1 || echo "Cannot connect to Redis at 127.0.0.1:6379"'
|
|
echo
|
|
|
|
echo "4. Checking Redis environment variables:"
|
|
kubectl exec "$POD_NAME" -n "$NAMESPACE" -c towerops -- env | grep -i redis
|
|
echo
|
|
|
|
echo "5. Checking if Valkey is accepting connections:"
|
|
kubectl exec "$POD_NAME" -n "$NAMESPACE" -c valkey -- valkey-cli ping 2>&1 || echo "Valkey ping failed"
|
|
echo
|
|
|
|
echo "=== Debug complete ==="
|
|
echo
|
|
echo "If Valkey is not running, try deleting the pod to restart it:"
|
|
echo " kubectl delete pod $POD_NAME -n $NAMESPACE"
|