
kubectl が使えない? kube-apiserver のログを確認しよう
Kubernetes の設定を変更した途端、kubectl がまったく反応しなくなった……そんな経験はありませんか?特に /etc/kubernetes/manifests/kube-apiserver.yaml を編集した直後に問題が発生すると、原因が分からず焦ってしまいますよね。
そんなときこそ、まずは kube-apiserver のログを確認すること が大切です。エラーの原因を特定するために、落ち着いてログをチェックしましょう。特に、kubeadm で構築したクラスターでは kube-apiserver が 静的 Pod として動作しているため、わずかな設定ミスが Kubernetes の中核に影響を及ぼすことがあります。
では、どこを確認し、どう対処すればよいのか? 慌てずに、一つずつチェックしていきましょう。
(1) kube-apiserver のログを確認する
まず最初に kube-apiserver のログを確認 して、どこでエラーが起きているのかを特定しましょう。
ログの保存場所
kubeadm で構築した Kubernetes クラスターでは、kube-apiserver のログは /var/log/pods に保存されていることが多いです。
まずは、このディレクトリに kube-apiserver のログがあるか確認してみましょう。
ls -lh /var/log/pods/kube-system_kube-apiserver-*
もしディレクトリが見つかったら、その中にログが保存されている可能性が高いです。
ログを確認する方法
1. ログファイルの内容を確認
ログを表示して、エラーメッセージがないか探してみます。
sudo cat /var/log/pods/kube-system_kube-apiserver-*/kube-apiserver/*.log | less
リアルタイムでログを確認したい場合は tail -f を使うと便利です。
sudo tail -f /var/log/pods/kube-system_kube-apiserver-*/kube-apiserver/*.log
まとめ
/var/log/pods に kube-apiserver のログがあるか確認する
less や tail -f を使ってエラーメッセージを探す
kubectl が使えなくなると焦りますが、まずは kube-apiserver のログを確認することが問題解決の第一歩です!