温馨提示×

CentOS K8s安装后如何进行测试

小樊
41
2025-11-20 04:53:07
栏目: 智能运维

CentOS 上 Kubernetes 安装后的验证与测试清单


一 基础连通性与组件状态检查

  • 检查节点与控制面组件状态
    • 查看节点是否 Readykubectl get nodes
    • 查看系统组件是否就绪:kubectl get pods -n kube-system
    • 查看 kubelet 服务:systemctl status kubelet(应为 active (running)
  • 若节点为 NotReady,优先检查并安装 CNI 网络插件(如 Flannel),安装后再次观察节点状态是否变为 Ready

二 部署应用与访问测试

  • 部署一个 Nginx 应用并暴露访问
    • 部署:kubectl create deployment nginx --image=nginx --replicas=2
    • 暴露为 NodePortkubectl expose deployment nginx --type=NodePort --port=80
    • 获取访问端口:kubectl get svc nginx,记录 NodePort(例如 3xxxx
    • 访问测试:
      • 集群内:kubectl run -it --rm test-nginx --image=busybox:1.36 --restart=Never -- wget -qO- http://nginx.default.svc.cluster.local
      • 集群外:curl http://<任意节点IP>:<NodePort>
  • 预期结果:页面返回 Welcome to nginx!,说明 Pod 调度、Service 负载均衡、网络连通性均正常。

三 网络与服务发现验证

  • 验证 Pod 间网络Service DNS
    • 查看 Pod IP:kubectl get pods -o wide
    • Pod 间连通性(ICMP/端口):
      • kubectl exec -it <pod-name> -- ping <目标PodIP>
      • kubectl exec -it <pod-name> -- nc -zv <目标PodIP> 80
    • DNS 解析测试:
      • kubectl exec -it <pod-name> -- nslookup kubernetes.default.svc.cluster.local
      • kubectl exec -it <pod-name> -- nslookup nginx.default.svc.cluster.local
  • 验证 Service 与 Endpoints
    • kubectl get svc nginxkubectl get endpoints nginx,确认 Endpoints 中有后端 Pod IP
    • 从问题 Pod 内测试访问 Service ClusterIP:kubectl exec -it <pod-name> -- nc -zv <svc-cluster-ip> 80
  • 验证 kube-proxy 工作正常
    • kubectl get pods -n kube-system | grep kube-proxy
    • 异常时查看日志:kubectl logs <kube-proxy-pod> -n kube-system
  • 预期结果:Pod 之间可互通、服务名可解析、Service 后端有 Endpoints 且可访问。

四 弹性自愈与伸缩测试

  • 自愈能力
    • 删除一个 Pod:kubectl delete pod <nginx-pod-name>
    • 观察重建:kubectl get pods,应被 Deployment 自动拉起,数量恢复为 replicas 设定值
  • 水平伸缩
    • 扩容:kubectl scale deployment nginx --replicas=5
    • 验证:kubectl get pods 数量变为 5
  • 预期结果:删除后自动重建;扩容后 Pod 数量Service 后端同步更新。

五 常见故障快速排查

  • 节点 NotReady:未安装或未生效 CNI(如 Flannel),安装后复查:kubectl get nodeskubectl get pods -n kube-flannel
  • Service ClusterIP 不可达:检查 Service 配置与 Endpoints 是否为空;在 Pod 内 nslookupnc 测试;查看 kube-proxy 状态与日志
  • Ingress 502:核对 Ingress 的 host/path/service/port;确认后端 Service/Endpoints 正常;查看 Ingress Controller 日志
  • 镜像拉取失败:提前导入所需镜像或配置国内镜像源,避免节点加入/启动因拉取超时失败。

0