「私の書いたサーバが突然死するんです。してでしょうか」という質問を受けることがあります。UNIXや類似のオペレーティングシステムに存在するコマンドであり、バイナリファイル(ライブラリ、実行ファイル、オブジェクトファイル)の中身を調べ、そこに格納されているシンボルテーブルなどの情報を表示する。デバッグに使われることが多く、識別子の名前の衝突問題やC++の名前修飾の問題を解決する際に補助として用いられる。namespaceを持っている場合、とにかくどのアカウントで、何のロールで、どこのプロジェクトのどのクラスタに向かってgcloudやkubectlを叩いているのか都度確認しながら作業することになる。gcloudとkubectlはそれぞれconfigというリクエストの投げ先(context)の設定をするのに重要なサブコマンドを持っていて、これらを正しく設定しないと所望のプロジェクトなりクラスタにアクセスできない。サブコマンドがどちらもconfigという名前なので、慣れてくると覚えるキーワードが少なくて大変良いが、頭の中で二つを整理しないうちは似たようなコマンドが色々出てくるので何が何やらわからなくなってくる。usersdoi-t.hatenablog.comGKE上に立ち上げている自前のkubernetesのClusterは、一番安いという理由だけでg1-small*1を使い続けていた。いざ複数のPodを追加したりし始めると、Nodeのリソース不足が原因で色々ハマったので、そこで覚えた細かいデバッグ手法を例のごとく逆引き辞書っぽくメモしていく。ついでにリソースとは無関係なkubernetesのネットワーク関連でハマったこともメモ。使い込んでいる人にとって目新しいものはない気がする。以下、例となっているPodのデプロイは、状況を再現しやすいという理由だけで手前味噌のprometheus実験レポジトリを元に行っているのでprometheusが云々と多少言っているが、基本的にPodの内容がなんであれ、リソースが足りなくなった場合に何が起こって、kubectlで何を確かめれば良さそうか、という点を中心に書き下していく。実践的、網羅的かつ簡潔にまとまったドキュメントを見つけたのでメモ(日本語訳もある)*1。今回は、キーボードショートカットを中心に極基本をば。実践的、網羅的かつ簡潔にまとまったドキュメントを見つけたのでメモ(日本語訳もある)*1。}}あとで読むPOSIX.1「signal(2)は古い、sigaction(2)を使え。signal(2)は使うな、sigaction(2)を使え。バージョンにより異なる。バージョンによっても異なっている。Reserved.設定を変更しましたx。