跳到主要内容

安装排错

安装失败时先确认 Helm release、Pod 状态、Service 暴露和 CRD 注册,再下钻到镜像、证书、权限和 License。

Helm release 不存在

helm ls -n disaster-system
helm status testudo -n disaster-system

常见原因:

  • namespace 未创建且未加 --create-namespace
  • Chart 包路径错误。
  • values 文件语法错误。
  • release 安装到了非预期 namespace。

Pod 无法启动

kubectl -n disaster-system get pods
kubectl -n disaster-system describe pod <pod-name>
kubectl -n disaster-system logs <pod-name>

常见原因:

  • 镜像拉取失败。
  • imagePullSecret.existingSecret 不存在。
  • 节点无法访问镜像仓库。
  • ConfigMap 或 Secret 挂载失败。
  • 资源不足或调度失败。

CRD 未注册

kubectl api-resources | grep testudo.softcdata.com
kubectl get crd | grep disaster

如果 CRD 未注册,检查 Chart manifest 是否包含 CRD,以及安装账号是否有创建 CRD 的权限。

Webhook 失败

现象:

  • 创建 CRD 实例时报 admission webhook 错误。
  • webhook service 没有 endpoints。
  • cert-manager 未安装但启用了 webhook.certManager.enabled

排查:

kubectl -n disaster-system get svc,endpoints | grep webhook
kubectl get validatingwebhookconfiguration | grep disaster
kubectl -n disaster-system get certificate,issuer

无 cert-manager 环境应关闭 cert-manager 集成,并由运维流程提供 TLS Secret 和 CA bundle。

控制台打不开

kubectl -n disaster-system get svc disaster-web
curl -I http://<NodeIP>:30087
kubectl -n disaster-system port-forward svc/disaster-web 8087:80

常见原因:

  • NodePort 被防火墙拦截。
  • web Pod 未就绪。
  • web.backendUrl 配置错误。
  • server Service 不可达。

Server API 异常

kubectl -n disaster-system get svc disaster-server
kubectl -n disaster-system logs deploy/disaster-server
kubectl -n disaster-system port-forward svc/disaster-server 30081:30081
curl http://127.0.0.1:30081/healthz

如果 /healthz 正常但业务接口失败,继续检查 JWT、RBAC、CRD 和 Event 权限。

License 异常

默认安装不会通过 Helm 创建真实 License Secret。推荐安装完成后通过平台接口或 CLI 安装正式 License。不要把真实 License 写入公开 values 文件。