ulimit analyzer
Spot the one node where nofile is wrong.
When a fleet of pods is supposed to be configured identically but one or two nodes have a stale image / wrong systemd override, the fastest way to find them is to run ulimit -a on every pod and diff the results. This tool computes the modal value per field across all nodes, flags anomalies, and lets you copy the list of bad node names.
Step 1 — collect ulimit on every node
Replace
<pod-prefix> with the workload prefix you care about.for node in $(kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'); do
pod=$(kubectl get pods -A --field-selector spec.nodeName=$node \
--no-headers -o custom-columns=":metadata.namespace,:metadata.name" 2>/dev/null \
| grep "<pod-prefix>" | head -1)
if [ -z "$pod" ]; then continue; fi
ns=$(echo "$pod" | awk '{print $1}'); name=$(echo "$pod" | awk '{print $2}')
echo "=== $node ==="
kubectl exec -n "$ns" "$name" -- sh -c 'ulimit -a' 2>&1
doneStep 2 — paste output
Paste output above. Expects === node-name === headers.