在 Linux 上运行的 Kubernetes(k8s)崩溃通常不是“k8s 本身崩溃”这么简单,而是某个核心组件或节点异常导致集群不可用。下面按常见原因 → 现象 → 排查方向系统说明。
K8s 对资源非常敏感。
常见原因
典型现象
NotReadyOOMKilled排查
free -h
df -h
df -i
top / htop
journalctl -u kubelet
✅ 重点目录:
/var/lib/etcd/var/lib/kubelet/var/logetcd 一旦异常,整个 k8s 基本“假死”。
常见原因
现象
etcd timeout排查
kubectl get cs
journalctl -u etcd
etcdctl endpoint health
kubelet 是节点“管家”。
常见原因
现象
排查
systemctl status kubelet
journalctl -u kubelet -xe
K8s 依赖底层 runtime。
常见原因
现象
ContainerCreating 卡住排查
systemctl status containerd
systemctl status docker
ctr images list
K8s 很多组件靠证书通信。
常见过期点
现象
x509 certificate expired排查
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -dates
没有网络 = Pod 全崩。
常见 CNI
现象
排查
kubectl get pods -n kube-system
journalctl -u kubelet | grep cni
Linux 层直接拖垮 k8s。
常见原因
关键端口
# 1. 看节点
kubectl get nodes
# 2. 看组件
kubectl get pods -n kube-system
# 3. 看系统
journalctl -u kubelet -n 200
df -h
free -h
# 4. 看日志
/var/log/messages
/var/log/syslog
优先怀疑:
我可以帮你直接定位是哪一层炸了。