在Debian系统上验证Kubernetes(K8s)安装成功,需通过组件状态检查、节点就绪验证、网络功能测试、服务部署验证等多维度确认集群可用性。以下是具体操作流程:
首先确认Kubernetes关键组件(如kubelet、kube-apiserver、kube-controller-manager等)是否正常运行:
sudo systemctl status kubelet
若输出显示Active: active (running),则kubelet服务正常。sudo systemctl status kube-apiserver
若状态为active,说明API服务器可接收请求。sudo systemctl status kube-controller-manager
状态正常表示集群资源(如Pod、Deployment)的生命周期管理可用。使用kubectl命令检查集群中所有节点的就绪情况:
kubectl get nodes
STATUS列显示为Ready,则说明节点已成功加入集群并可接收任务;NotReady,需检查节点上的kubelet日志(journalctl -u kubelet)排查问题。Kubernetes的系统组件(如CoreDNS、kube-proxy)以Pod形式运行在kube-system命名空间,需确认其正常启动:
kubectl get pods --all-namespaces
kube-system命名空间的Pod:kubectl get pods -n kube-system
STATUS应为Running,且READY列显示为1/1(或对应副本数),表示Pod内容器均已启动。Kubernetes依赖网络插件(如Flannel、Calico)实现Pod间通信,需检查插件Pod是否正常:
kubectl get pods -n kube-system | grep flannel
STATUS为Running,若有异常需重新部署插件(如kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml)。部署一个简单的Nginx测试应用,验证Pod创建、服务暴露及网络连通性:
kubectl create deployment nginx --image=nginx --replicas=2
kubectl expose deployment nginx --type=NodePort --port=80
kubectl get svc nginx
输出中PORT(S)列会显示类似80:30080/TCP(30080为节点端口)。<节点IP>为实际IP):curl http://<节点IP>:30080
若返回Nginx欢迎页面(Welcome to nginx),则说明Pod、Service及网络配置正常。使用以下命令快速确认集群整体状态:
kubectl cluster-info
输出应包含API服务器地址(如Kubernetes master is running at https://<主节点IP>:6443)及核心组件状态。kubectl version --short
确认客户端(Client Version)与服务器(Server Version)版本兼容(建议版本差不超过1个小版本)。通过以上步骤,若所有检查项均符合预期(节点Ready、Pod Running、网络通信正常、服务可达),则说明Debian系统上的Kubernetes安装成功。若过程中出现异常,可通过kubectl logs <Pod名称>查看Pod日志,或journalctl -u <组件名称>查看系统组件日志排查问题。