排障按层推进:先确认云资源,再确认节点互通,再确认 Kubernetes,再确认 Cilium 和 Cluster Mesh。不要跨层猜测。
| 问题现象 | 定位命令 | 判断依据 | 修复动作 |
|---|
| plan 失败 | make aliyun-plan、make tencent-plan | 变量校验、provider 配置、读 API 报错 | 修正变量、凭据、地域和可用区 |
| apply 失败 | 查看 apply 输出和云控制台 | 创建权限、库存、配额、规格不满足 | 调整权限、规格、可用区或配额 |
| output 缺失 | make aliyun-output、make tencent-output | 资源未创建或 outputs 变更 | 重新 apply 后再 output |
节点与 underlay 层
| 问题现象 | 定位命令 | 判断依据 | 修复动作 |
|---|
| SSH 失败 | ssh -vvv <user>@<ip> | 用户、key、公网 IP、安全组任一不匹配 | 修正 ssh_user、公钥路径或 admin_cidrs |
| WireGuard 不通 | make check-underlay | UDP 51820、peer、路由异常 | 修正安全组和 WireGuard 配置 |
| 跨云节点丢包 | 节点间 ping/trace | 只公网通、WireGuard 地址不通 | 先修 underlay,再看 Kubernetes |
Kubernetes 层
| 问题现象 | 定位命令 | 判断依据 | 修复动作 |
|---|
| 节点 NotReady | make check-clusters | kubelet、containerd、CNI 未就绪 | 查 kubelet 日志和 Cilium Pod |
| kubeadm 初始化失败 | kubeadm 输出、节点系统日志 | 配置、端口、镜像或运行时异常 | 修正配置后重新执行对应脚本 |
| worker 加入失败 | join 脚本输出 | token、证书、API Server 可达性 | 重新生成 join 信息并验证网络 |
Cilium 与 Cluster Mesh 层
| 问题现象 | 定位命令 | 判断依据 | 修复动作 |
|---|
| Cilium 不健康 | cilium status | agent、operator、Pod 网络异常 | 检查 Helm values 和节点资源 |
| Cluster Mesh 不 connected | make check-clustermesh | NodePort、LB、安全组、cluster ID | 逐项验证 32379 入口 |
| 跨集群服务失败 | Cilium CLI、kubectl service 检查 | Mesh connected 但服务未导出或 DNS 异常 | 先验证 Mesh,再验证服务发现 |
排障原则
- 先收集最小证据,再改配置。
- 一次只改一个变量或一类规则,方便确认因果。
- 云资源失败看 provider/API,节点失败看 SSH 和系统日志,集群失败看 kubelet/CNI,跨集群失败看 Mesh 入口。
- 每次修复后回到对应层的验收命令,不要跳到最终测试。