以下をCopy&Pasteしてもらって、
az_filt () { local region_prefix="ap-northeast-" ; local region_suffix="1.compute.internal" ; local region="${region_prefix}${region_suffix}" ; local zone ; declare -A zone ; IFS=$'\n' ; for l in $(kubectl get node --show-labels | sed -E "s/^(ip(-[0-9]{1,3}){4}\.${region}).*topology.kubernetes.io\/zone=${region_prefix}(.{2})/\1 \3/" ) ; do n="$(echo $l | cut -d\ -f 1)" zone[$n]=$(echo $l | cut -d\ -f 2) ; done ; for l in $(cat - ) ; do node=$(echo $l | sed -E "s/^.*(ip(-[0-9]{1,3}){4}\.${region}).*$/\1/" ) ; [ -n "${zone["$node"]}" ] && echo -n ${zone["$node"]} " " || echo -n " " ; echo $l ; done ; }
こんな感じにパイプでつないでもらえれば、
kubectl get node | az_filt
kubectl get po -o wide | az_filt
kubectl get describe -o wide -A | az_filt
Node名が出現する行に1aとか1cとかのAZの後ろ2文字を行の頭につけて表示します。
ただ、bashスクリプトだけにBufferを全て飲みこんでから処理するんで膨大なログ等には向いてません。