安装排错
安装失败时先确认 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 文件。