Skip to content

Instantly share code, notes, and snippets.

@tomotake-koike
Created March 15, 2021 15:16
Show Gist options
  • Select an option

  • Save tomotake-koike/e643af1c3cd30cdb8bb9a1ea98303d70 to your computer and use it in GitHub Desktop.

Select an option

Save tomotake-koike/e643af1c3cd30cdb8bb9a1ea98303d70 to your computer and use it in GitHub Desktop.
EKSでNode名からAZをくっつけるワンライナーフィルター

EKSでNode名からAZを行頭にくっつけるワンライナー・フィルター関数

以下を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を全て飲みこんでから処理するんで膨大なログ等には向いてません。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment