核心组件(kube-apiserver、kube-controller-manager、kube-scheduler、etcd)是集群的“大脑”,需确保其正常运行。
kubectl get componentstatusesHealthy(如controller-manager Healthy ok、etcd-0 Healthy {"health":"true"})。Unhealthy或Unknown),需检查对应服务的systemctl状态(如systemctl status kube-apiserver)或日志(如journalctl -u kube-apiserver)。节点是Pod运行的载体,需确认所有节点处于Ready状态。
kubectl get nodesSTATUS列为Ready(如node-1 Ready control-plane 30d v1.27.0)。NotReady,需检查节点上的kubelet服务(systemctl status kubelet)、网络连接(如节点间是否能互通)或磁盘空间(是否因磁盘满导致kubelet异常)。Pod是Kubernetes的最小调度单元,需确保系统Pod(如CoreDNS、kube-proxy)和用户Pod运行正常。
kubectl get pods -n kube-systemCrashLoopBackOff(应用不断重启)、ImagePullBackOff(镜像拉取失败)、Pending(调度失败)等异常状态(如coredns-78fcd69978-ckc9b Running 0 20d)。kubectl get pods -A(查看所有命名空间)或kubectl get pods(查看当前命名空间),确认用户部署的Pod(如之前创建的Nginx Pod)状态为Running。Service是Pod的访问入口,需验证其能否正常分配端口并转发流量。
kubectl create deployment nginx --image=nginx # 创建Nginx Deployment
kubectl expose deployment nginx --type=NodePort --port=80 # 暴露为NodePort类型Service
kubectl get svc nginxEXTERNAL-IP为<pending>(集群IP)和分配的PORT(S)(如80:30080/TCP)。curl http://<节点IP>:30080),应返回Nginx默认页面(包含“Welcome to nginx!”字样)。网络是Kubernetes集群的基础,需确保Pod间能通信且DNS解析正常。
kubectl run test-pod --image=alpine --rm -it --restart=Never -- sh
# 在临时Pod内执行:
ping kubernetes.default.svc.cluster.local # 测试DNS解析(应能解析到Service IP)
ping <其他节点IP> # 测试跨节点通信(应能通)
exit
ping不通,需检查网络插件(如Calico、Flannel)是否正常运行(kubectl get pods -n kube-system | grep calico),或节点防火墙是否放行了Kubernetes相关端口(如10250、6443)。kubelet是节点上的代理,负责管理节点上的Pod和容器,其状态直接影响节点和Pod的运行。
systemctl status kubeletActive: active (running)(如kubelet.service: Active: active (running) since Mon 2025-10-20 10:00:00 CST; 5h ago)。systemctl start kubelet)并查看日志(journalctl -u kubelet),排查启动失败原因(如证书过期、配置文件错误)。etcd是Kubernetes的分布式键值存储,存储了集群的所有配置数据,需确保其健康。
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
endpoint health
正常输出应显示127.0.0.1:2379 is healthy: successfully committed proposal。通过以上步骤,可全面验证Kubernetes集群的安装是否成功。若所有检查项均正常,说明集群具备基本的运行能力;若存在异常,可根据错误信息针对性排查(如组件状态异常查日志、Pod挂起查资源或调度问题)。