在 Debian 上部署完 Kubernetes(k8s)后,可以从系统层、集群层、节点层、网络层、工作负载层逐步验证是否“装好”。下面给你一套实用验证清单,适合 kubeadm 方式安装的集群(其他发行版思路类似)。
systemctl status kubelet
✅ 应为 active (running)
kubectl version --client
which kubeadm kubelet kubectl
kubectl get nodes
✅ 所有节点状态应为 Ready
示例:
NAME STATUS ROLES AGE VERSION
master Ready control-plane 10m v1.29.2
node1 Ready <none> 8m v1.29.2
❌ 若 NotReady,检查:
journalctl -u kubelet -f
kubectl describe node <node>
kubectl get pods -n kube-system
✅ 应看到以下组件且状态为 Running:
kube-apiserver-*kube-controller-manager-*kube-scheduler-*etcd-*kube-proxy-*coredns-*(或你用的 DNS)kubectl get pods -n kube-system | grep -E "flannel|calico|cilium"
✅ 网络插件 Pod 必须 Running
kubectl run test-dns --rm -it --image=busybox --restart=Never -- sh
nslookup kubernetes.default
✅ 能解析说明 DNS + 网络正常
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pods
kubectl get svc
curl http://<NodeIP>:<NodePort>
✅ 返回 nginx 页面说明集群可用
kubectl get endpoints kube-controller-manager -n kube-system
kubectl get endpoints kube-scheduler -n kube-system
| 现象 | 可能原因 |
|---|---|
| 节点 NotReady | CNI 没装 |
| DNS 不通 | CoreDNS 没起 |
| Pod 一直 Pending | 资源不足 / 污点 |
| kubectl 无权限 | kubeconfig 没配置 |
✅ 真正装好的标志:
kubectl get nodes全 Ready +kube-system全 Running + 能跑 Pod + 能访问服务
如果你愿意,可以贴一下:
kubectl get nodes 和 kubectl get pods -A 的输出我可以帮你精准判断哪里没装好。