k8s-apiserver-unavailable

Kubernetes API Server 不可用的定位与修复

现象

kubectl 报 Unable to connect to the server、dial tcp ... connection refused/timeout,或 API 返回 5xx。控制器、调度器和 kubelet 也可能同时异常。

快速定位

kubectl cluster-info
kubectl get --raw='/readyz?verbose'
kubectl get --raw='/healthz'
curl -k https://<apiserver>:6443/healthz

控制面节点:

systemctl status kube-apiserver
journalctl -u kube-apiserver --since '30 min ago' | tail -100
crictl ps | grep apiserver
df -h
free -m

常见根因

  1. apiserver 进程崩溃、OOM 或静态 Pod 无法启动。
  2. 负载均衡/VIP 故障,客户端连不到健康实例。
  3. 证书过期、CA 不匹配或时间偏差。
  4. etcd 不可用或延迟过高。
  5. 准入 Webhook 超时/不可用,阻塞请求。
  6. 请求量过大、连接数或文件描述符耗尽。

修复

相关命令