在 Debian 上部署 Kubernetes(k8s)后,可以从集群状态、节点、组件、网络、应用等多个层面进行验证。下面给你一套常用且实用的验证步骤,适用于 kubeadm 部署方式(最常见)。
确保 kubectl 能访问集群:
kubectl cluster-info
正常输出示例:
Kubernetes control plane is running at https://...
CoreDNS is running at ...
kubectl get nodes
✅ 所有节点状态应为 Ready
kubectl get nodes -o wide
可查看内核版本、OS、kubelet 版本等。
kubectl describe node <node-name>
重点检查:
Ready 状态KubeletReadyNetworkUnavailable=falsekubectl get pods -n kube-system
✅ 应看到以下组件(状态为 Running):
kube-apiserverkube-controller-managerkube-scheduleretcdcorednskube-proxysystemctl status kubelet
journalctl -u kubelet -f
以 Calico 为例:
kubectl get pods -n kube-system -l k8s-app=calico-node
查看网络配置:
kubectl get ippools.crd.projectcalico.org
kubectl get pods -n kube-system -l k8s-app=kube-dns
kubectl create deployment nginx-test --image=nginx
kubectl expose deployment nginx-test --port=80 --type=NodePort
查看:
kubectl get pods
kubectl get svc
访问测试:
curl http://<NodeIP>:<NodePort>
清理:
kubectl delete deploy nginx-test
kubectl delete svc nginx-test
kubectl run test-pod --image=busybox -it --rm -- sh
在 Pod 内测试:
nslookup kubernetes.default
ping <另一节点Pod IP>
kubectl get componentstatuses
(新版本已逐步废弃,建议直接看 Pod)
kubectl exec -n kube-system etcd-<node> -- \
etcdctl endpoint health \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
--cacert=/etc/kubernetes/pki/etcd/ca.crt
kubectl describe node <node>
journalctl -u kubelet
kubectl describe pod <pod>
kubectl get pods -n kube-system -l k8s-app=kube-dns
✅ kubectl get nodes → Ready
✅ kubectl get pods -A → 无 CrashLoopBackOff
✅ CoreDNS 正常
✅ 能创建 Pod 并访问网络
✅ NodePort / ClusterIP 正常
如果你愿意,可以告诉我:
我可以给你更精确的验证命令和排错方案。