Created
December 4, 2018 19:02
-
-
Save J-Swift/3a1a6bf3dc8cd4882d4cdb9cae67c998 to your computer and use it in GitHub Desktop.
Show aks pods by node
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
set -euo pipefail | |
readonly temp_dir=$( mktemp -d ) | |
# sudo kubectl get pods | |
# NAME READY STATUS RESTARTS AGE | |
# azure-vote-back-655476c7f7-gvg7b 1/1 Running 0 24m | |
# azure-vote-front-7f98fd48d4-8fkcd 1/1 Running 0 18m | |
# azure-vote-front-7f98fd48d4-l2848 1/1 Running 0 13m | |
# azure-vote-front-7f98fd48d4-xzd7c 1/1 Running 0 13m | |
is_valid_pod() { | |
local -r pod_name=$1 | |
local -r filename="${temp_dir}/pods.txt" | |
if [ ! -f "${filename}" ]; then | |
touch "${filename}" | |
sudo kubectl get pods | tail -n +2 > "${filename}" | |
fi | |
grep "${pod_name}" "${filename}" > /dev/null | |
} | |
# sudo kubectl get pod -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName --all-namespaces | |
# NAME STATUS NODE | |
# azure-vote-back-655476c7f7-gvg7b Running aks-nodepool1-30647309-3 | |
# azure-vote-front-7f98fd48d4-8fkcd Running aks-nodepool1-30647309-0 | |
# azure-vote-front-7f98fd48d4-l2848 Running aks-nodepool1-30647309-3 | |
# azure-vote-front-7f98fd48d4-xzd7c Running aks-nodepool1-30647309-1 | |
# heapster-7866db774d-wqlmx Running aks-nodepool1-30647309-0 | |
# kube-dns-v20-b8ff799f7-274tl Running aks-nodepool1-30647309-0 | |
# kube-dns-v20-b8ff799f7-ws8jd Running aks-nodepool1-30647309-3 | |
# kube-proxy-j4975 Running aks-nodepool1-30647309-1 | |
# kube-proxy-qk9dl Running aks-nodepool1-30647309-3 | |
# kube-proxy-rzj9c Running aks-nodepool1-30647309-0 | |
# kube-svc-redirect-b26ck Running aks-nodepool1-30647309-3 | |
# kube-svc-redirect-p75np Running aks-nodepool1-30647309-1 | |
# kube-svc-redirect-s24d7 Running aks-nodepool1-30647309-0 | |
# kubernetes-dashboard-cb6558ddb-2l5wg Running aks-nodepool1-30647309-3 | |
# metrics-server-d576554d8-78x26 Running aks-nodepool1-30647309-1 | |
# tunnelfront-67fb9d698b-wrhzl Running aks-nodepool1-30647309-3 | |
print_pods() { | |
local -r node_name=$1 | |
local -r filename="${temp_dir}/pods_full.txt" | |
if [ ! -f "${filename}" ]; then | |
touch "${filename}" | |
sudo kubectl get pod -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName --all-namespaces | tail -n +2 > "${filename}" | |
fi | |
for pod_name in $( grep "${node_name}" "${filename}" | awk '{print $1;}' ); do | |
if is_valid_pod "${pod_name}"; then | |
echo " ${pod_name}" | |
fi | |
done | |
} | |
# sudo kubectl get nodes | |
# NAME STATUS ROLES AGE VERSION | |
# aks-nodepool1-30647309-0 Ready agent 20m v1.10.9 | |
# aks-nodepool1-30647309-1 Ready agent 14m v1.10.9 | |
# aks-nodepool1-30647309-3 Ready agent 26m v1.10.9 | |
print_nodes() { | |
local -r filename="${temp_dir}/nodes.txt" | |
if [ ! -f "${filename}" ]; then | |
touch "${filename}" | |
sudo kubectl get nodes | tail -n +2 > "${filename}" | |
fi | |
for node in $( cat "${filename}" | awk '{print $1;}' ); do | |
echo "[${node}]" | |
print_pods "${node}" | |
echo | |
done | |
} | |
main() { | |
print_nodes | |
rm -rf "${temp_dir}" | |
} | |
main |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment