んー、いろいろみたい! BusyBox
kubectl run -it --rm busybox --image=busybox -- sh
まずはBusyBoxを使って、いろんなことをチェックしちゃおう!このコマンドを実行すると、BusyBoxという小さなコンテナを作ってくれるよ。中に入って、色々なツールを使ってトラブルシューティングできるんだ。とっても便利!
本当にそのなまえ引けてる? nslookup
kubectl run -i --tty dns-test \
--image=busybox \
--restart=Never \
--rm -- nslookup example.com
次はnslookupを使って、ちゃんと名前解決できてるかを確認しよう。BusyBoxを使って、「example.com」が正しく引けるかをチェック!もし引けないなら、DNSの設定を見直す必要があるかもね。
ログをチェック! Stern
stern <pod-name>
ポッドのログを見るのも大事だよね。stern
を使えば、指定したポッドのログをリアルタイムでチェックできるんだ。しかも複数のポッドのログを同時に見られるから、とっても便利!エラーや警告メッセージがないか、しっかり確認しよう!
ディープダイブ!kubectl describe
kubectl describe pod <pod-name>
ポッドの詳細情報を知りたいときは、kubectl describe
がオススメ!これでポッドのステータスやイベントを詳しく見ることができるよ。どこで問題が起きているか、手がかりを探そう!
ポッドの中に入ろう!kubectl exec
kubectl exec -it <pod-name> -- /bin/sh
ポッドの中に直接入ってトラブルシューティングしたいときは、kubectl exec
を使おう!このコマンドを実行すれば、指定したポッド内でシェルにアクセスできるんだ。中に入って、問題を詳しく調査しよう!
これってどういう状態?kubectl get
kubectl get pods
最後に、クラスタ内のリソースの状態をさくっと確認したいときは、kubectl get
が便利!ポッドやサービスのリストを一目で確認できるよ。クラスタの全体像を把握しよう!
ネットワークを調べるなら!Netshoot
kubectl run netshoot --rm -it --image nicolaka/netshoot -- /bin/bash
ネットワークの問題を詳しく調査したいときは、netshoot
がオススメ!このコマンドを実行すれば、netshoot
コンテナの中に入って、豊富なネットワークツールを使えるよ。例えば、ping
やtraceroute
、dig
、curl
などを使って、ネットワークの状態をチェックしよう!
もっと深く調査したいときは!Debug Container
kubectl debug <pod-name> --image=nicolaka/netshoot
既存のポッドに新しいコンテナを追加して、トラブルシューティングを行いたいときは、kubectl debug
を使おう!このコマンドを実行すれば、指定したポッドにnetshoot
イメージを使ったデバッグ用のコンテナを追加できるんだ。これで、元のポッドを停止せずに詳細な調査ができるよ!