Debian 上 Kubernetes 安装后的验证与测试清单
一 基础健康检查
- 查看节点与控制面组件状态
- 节点状态:kubectl get nodes(期望状态为 Ready)
- 系统组件:kubectl get pods -n kube-system(核心组件如 kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kube-proxy 应为 Running)
- 集群信息:kubectl cluster-info
- 组件日志:journalctl -u kubelet(节点上排查 kubelet 问题)
- 可选:在控制面节点上进一步检查 systemd 服务状态(如 kube-apiserver、kube-controller-manager、kube-scheduler)
以上可快速确认控制面与节点代理是否正常、集群是否可用。
二 网络与 DNS 验证
- 验证集群网络插件就绪
- 检查网络插件 Pod:kubectl get pods -n kube-system | grep -E “calico|flannel|weave”(以实际使用的 CNI 为准),确保 Running。
- 服务发现与连通性
- 运行临时调试容器:kubectl run test-pod --image=busybox:1.36 --rm -it --restart=Never – /bin/sh
- 在容器内解析与访问:
- nslookup kubernetes.default.svc.cluster.local(应解析到 ClusterIP)
- wget -qO- http://kubernetes.default.svc.cluster.local(应返回 200 与正常响应)
以上可验证 CNI 网络 与 CoreDNS 是否正常。
三 应用部署与访问测试
- 部署测试应用
- 创建 Deployment:kubectl create deployment nginx --image=nginx:alpine --replicas=2
- 暴露服务:kubectl expose deployment nginx --type=NodePort --port=80(或 --type=ClusterIP 便于内部访问)
- 访问验证
- 获取 NodePort:kubectl get svc nginx -o jsonpath=“{.spec.ports[0].nodePort}”
- 从集群外部访问:curl http://<任意节点IP>:(应返回 Nginx 欢迎页)
- 从集群内部访问:kubectl port-forward svc/nginx 8080:80 后,curl http://localhost:8080
- 扩缩与回滚
- 扩容:kubectl scale deployment nginx --replicas=3
- 回滚:kubectl rollout undo deployment/nginx
以上覆盖 部署、服务暴露、伸缩、回滚 的基本能力。
四 运维与可观测性验证
- 日志与诊断
- 查看应用日志:kubectl logs -l app=nginx
- 事件与详情:kubectl describe pod ;kubectl describe svc nginx
- 指标与自动扩缩(可选)
- 部署 Metrics Server:kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
- 创建 HPA:kubectl autoscale deployment nginx --cpu-percent=50 --min=2 --max=5
- 观察:kubectl get hpa(在增加负载后副本数应自动变化)
以上验证 日志、事件、指标与 HPA 能力,便于后续容量与稳定性管理。
五 进阶项与清理
- 进阶能力(按需)
- Ingress:部署 Ingress 控制器(如 Traefik/Nginx Ingress),创建 Ingress 资源并验证外部域名访问。
- 持久化存储:创建 PV/PVC 并挂载到应用,验证数据落盘与重启后持久性。
- 安全基线:检查 Secrets、RBAC、NetworkPolicy 是否按预期配置。
- 一键清理测试资源
- kubectl delete service nginx
- kubectl delete deployment nginx
以上覆盖常见扩展能力与测试后资源清理,保证集群整洁。