Just need bash, kubectl and kubeadmin permission.
#!/bin/bash
kubectl describe nodes | grep --no-group-separator -A3 "Resource" > .$$
res=$(grep cpu .$$ | awk {'print $2'})
let tot=0
for i in $res
do
if [[ $i =~ "m" ]]; then
i=$(echo $i | sed 's/[^0-9]*//g')
tot=$(( tot + i ))
else
tot=$(( tot + i*1000 ))
fi
done
echo "CPU requests: " $tot"m"
res=$(grep cpu .$$ | awk {'print $4'})
let tot=0
for i in $res
do
if [[ $i =~ "m" ]]; then
i=$(echo $i | sed 's/[^0-9]*//g')
tot=$(( tot + i ))
else
tot=$(( tot + i*1000 ))
fi
done
echo "CPU limits: " $tot"m"
res=$(grep memory .$$ | awk {'print $2'})
let tot=0
for i in $res
do
if [[ $i =~ "K" ]]; then
i=$(echo $i | sed 's/[^0-9]*//g')
tot=$(( tot + i*1024 ))
elif [[ $i =~ "M" ]]; then
i=$(echo $i | sed 's/[^0-9]*//g')
tot=$(( tot + i*1048576 ))
elif [[ $i =~ "G" ]]; then
i=$(echo $i | sed 's/[^0-9]*//g')
tot=$(( tot + i*1073741824 ))
elif [[ $i =~ "m" ]]; then
i=$(echo $i | sed 's/[^0-9]*//g')
tot=$(( tot + i/1024 ))
else
tot=$(( tot + i ))
fi
done
echo "Memory requests: " $(( tot/1073741824 )) " GB"
res=$(grep memory .$$ | awk {'print $4'})
let tot=0
for i in $res
do
if [[ $i =~ "K" ]]; then
i=$(echo $i | sed 's/[^0-9]*//g')
tot=$(( tot + i*1024 ))
elif [[ $i =~ "M" ]]; then
i=$(echo $i | sed 's/[^0-9]*//g')
tot=$(( tot + i*1048576 ))
elif [[ $i =~ "G" ]]; then
i=$(echo $i | sed 's/[^0-9]*//g')
tot=$(( tot + i*1073741824 ))
elif [[ $i =~ "m" ]]; then
i=$(echo $i | sed 's/[^0-9]*//g')
tot=$(( tot + i/1024 ))
else
tot=$(( tot + i ))
fi
done
echo "Memory limits: " $(( tot/1073741824 )) " GB"
rm .$$ &>/dev/null
Sample:
$ ./resource_total.sh
CPU requests: 25575m
CPU limits: 32800m
Memory requests: 37 GB
Memory limits: 73 GB