生涯未熟

生涯未熟

プログラミングをちょこちょこと。

Terminated, NodeShutdownのPodをCronJobで滅した

GKEを運用している中で何故かTerminatedやNodeShutdownなPodが残ったまんまになってるな〜〜〜と神経質な自分にとっては許しがたい事象が数ヶ月続いていました。
やっとこさ本腰入れて調査出来る時間が取れたので、この気持ち悪い状態で残ってるPodを滅するために調べました。

結論

結論これじゃーんって記事が見つかりました。

kamihikouki.hatenablog.com

Preemptible VMのせいか〜〜〜ありがてぇありがてぇと読んでたのですが、この一節見てほげ〜となりました。

ガベージコレクションされるまではずっと残ります。 この閾値は、GKEユーザーからは変更することができないようです。かつそのデフォルト値は12500と非常に大きいです。

ほげ〜〜〜そりゃ残ったまんまだわさ。
こりゃいかんと対策を探す旅へ。

対策

これも割とサクッと見つかりました。
先程の記事にもあった kubectl delete をCronJobで定期実行しましょうやという記事。

heschlie.blog

まぁそれくらいしかないですよね、という感じでまんまパクって動かしました。
で、ちゃんと全てのTerminated, NodeShutdown Podが滅されるようになりました。満足。

[追記: 2022/05/31 21:59]

記事中にあったkubectl deleteのコマンドより、こっちの方がいいかもしれない。

command:
  - /bin/sh
  - -c
  - kubectl get pods --all-namespaces | grep -i -e Terminated -e NodeShutdown | awk '{print $1, $2}' | xargs -r -n2 kubectl delete pod -n