模块7:故障排查和优化

导航 上一步:模块6:部署应用到K8s 返回主索引:阿里云ACK部署SOP 模块概述 预计时间:40分钟 本模块目标: ✅ 掌握Pod故障排查方法 ✅ 掌握网络故障排查方法 ✅ 学会查看和分析日志 ✅ 学会回滚应用 ✅ 了解成本优化方法 ✅ 学会彻底清理资源 成本说明: 本模块不产生额外费用 会学习如何优化成本 步骤7.1:Pod故障排查 - ImagePullBackOff 🎬 操作说明 ImagePullBackOff是最常见的Pod启动失败错误,表示无法拉取Docker镜像。我们需要学会快速定位和解决这个问题。 📍 详细步骤 第1步:识别错误 运行命令查看Pod状态: kubectl get pods -n my-app 如果看到ImagePullBackOff或ErrImagePull: NAME READY STATUS RESTARTS AGE my-app-7d9f8c6b5d-abc12 0/1 ImagePullBackOff 0 2m 第2步:查看详细错误信息 运行命令: kubectl describe pod <Pod名称> -n my-app 在Events部分查看错误: Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 2m default-scheduler Successfully assigned my-app/my-app-xxx to node1 Normal Pulling 1m (x4 over 2m) kubelet Pulling image "registry.cn-hangzhou.aliyuncs.com/my-namespace/my-app:v1.0.0" Warning Failed 1m (x4 over 2m) kubelet Failed to pull image: rpc error: code = Unknown desc = Error response from daemon: pull access denied Warning Failed 1m (x4 over 2m) kubelet Error: ErrImagePull Normal BackOff 30s (x6 over 2m) kubelet Back-off pulling image Warning Failed 30s (x6 over 2m) kubelet Error: ImagePullBackOff 第3步:分析错误原因 ...

2026-01-29 · maneng

WMS生产实践与故障排查

引言 本文分享WMS生产环境的实战经验,包括部署架构、常见故障排查、性能调优和大促保障。 1. 生产环境部署 1.1 服务器规划 小型WMS(日订单<5000单): 应用服务器: 2台(4核8G) 数据库服务器: 1台(8核16G)+ 从库1台(备份) Redis服务器: 1台(4核8G) 中型WMS(日订单5000-50000单): 应用服务器: 4台(8核16G)+ 负载均衡 数据库服务器: 1主2从(16核32G)+ 读写分离 Redis集群: 3台(8核16G) 消息队列: 3台(RabbitMQ集群) 大型WMS(日订单>50000单): 应用服务器: 10+台(16核32G)+ Kubernetes 数据库服务器: MySQL主从 + 分库分表 Redis集群: 6台(哨兵模式) 消息队列: Kafka集群(5台) 监控服务: Prometheus + Grafana 1.2 高可用架构 ┌─────────────────────────────────────┐ │ Nginx负载均衡(主备) │ └─────────────────────────────────────┘ ↓ ↓ ↓ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ WMS-1 │ │ WMS-2 │ │ WMS-3 │ └─────────┘ └─────────┘ └─────────┘ ↓ ↓ ↓ ┌─────────────────────────────────┐ │ MySQL主从(读写分离) │ │ Master + Slave1 + Slave2 │ └─────────────────────────────────┘ ↓ ┌─────────────────────────────────┐ │ Redis哨兵模式 │ │ Master + Slave + Sentinel │ └─────────────────────────────────┘ 1.3 容灾备份策略 数据库备份: ...

2025-11-22 · maneng

问题排查与故障处理

常见问题清单 1. 规则不生效 问题:配置了限流规则,但不生效。 排查: # 1. 检查Dashboard连接 curl http://localhost:8719/api # 2. 检查规则是否加载 curl http://localhost:8719/getRules?type=flow # 3. 检查资源名是否一致 # Dashboard中的资源名 vs 代码中的资源名 解决: // 确保资源名完全一致 @SentinelResource(value = "orderCreate") // 代码中 // Dashboard配置的资源名也必须是 "orderCreate" // 检查规则加载 List<FlowRule> rules = FlowRuleManager.getRules(); System.out.println("规则数量:" + rules.size()); 2. Dashboard看不到应用 问题:应用启动后,Dashboard看不到应用。 排查: # 检查配置 spring: cloud: sentinel: transport: dashboard: localhost:8080 # Dashboard地址 port: 8719 # 客户端端口 eager: true # 立即初始化 解决: // 主动触发一次资源调用 @PostConstruct public void init() { try { Entry entry = SphU.entry("sentinel-heartbeat"); entry.exit(); } catch (BlockException e) { // ignore } } 3. 规则推送失败 问题:Dashboard推送规则失败。 ...

2025-11-20 · maneng

故障排查手册:快速定位和解决Redis问题

故障分类 故障类型 典型现象 排查优先级 连接问题 无法连接、超时 🔴 最高 性能问题 响应慢、卡顿 🟡 高 内存问题 OOM、淘汰 🟡 高 数据问题 数据丢失、不一致 🟡 高 集群问题 节点下线、脑裂 🔴 最高 1. 连接问题排查 问题1:无法连接Redis 症状: Connection refused Could not connect to Redis at 127.0.0.1:6379 排查步骤: # 1. 检查Redis进程 ps aux | grep redis systemctl status redis # 2. 检查端口监听 netstat -tulnp | grep 6379 ss -tulnp | grep 6379 # 3. 检查防火墙 iptables -L | grep 6379 firewall-cmd --list-all # 4. 检查绑定地址 redis-cli CONFIG GET bind # 如果是127.0.0.1,外部无法访问 # 5. 测试连接 redis-cli -h 127.0.0.1 -p 6379 PING telnet 127.0.0.1 6379 解决方案: ...

2025-01-22 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...