在AWS EKS部署sorry-cypress后无法公开访问仪表盘求助
排查步骤
1. 镜像功能定位错误
你的Dockerfile是用来运行Cypress测试用例的(ENTRYPOINT为npx cypress run),并非部署sorry-cypress仪表盘服务的镜像。sorry-cypress是包含director、dashboard、api等组件的服务集群,需要部署官方提供的服务镜像(如agoldis/sorry-cypress-director、agoldis/sorry-cypress-dashboard),而非自行构建的测试运行镜像。
2. EKS部署资源配置检查
若已部署正确的sorry-cypress服务镜像,逐一核对以下配置:
- Service资源:确认Service类型为
LoadBalancer或通过Ingress暴露,ClusterIP类型仅允许集群内部访问。执行kubectl get svc查看对应服务的EXTERNAL-IP是否正常分配(LoadBalancer类型)。 - Ingress资源:若使用Ingress暴露服务,确认Ingress Controller(如ALB Ingress Controller)已部署,Ingress规则的路径、域名配置准确,且AWS侧ALB已正常创建并绑定域名。
- Pod状态:执行
kubectl get pods检查sorry-cypress各组件Pod状态是否为Running,无CrashLoopBackOff或Error状态。 - 端口映射:确认Deployment中容器端口与Service端口匹配,sorry-cypress dashboard默认端口为8080,你的Dockerfile暴露了3000,需核对端口是否一致。
3. 网络与安全组检查
- EKS节点安全组:确保节点安全组允许外部访问Service或Ingress对应的端口(如80/443,或dashboard自定义端口)。
- AWS负载均衡安全组:若使用LoadBalancer,负载均衡的安全组需允许外部流量访问对应端口。
- 集群网络策略:检查是否存在NetworkPolicy限制了sorry-cypress服务的外部访问权限。
4. 容器内部服务验证
进入Pod内部,检查服务是否正常启动:
kubectl exec -it <dashboard-pod-name> -- curl http://localhost:8080
若内部无法访问,查看容器日志排查服务启动问题:
kubectl logs <dashboard-pod-name>
内容的提问来源于stack exchange,提问作者Faisal Shani
相关产品推荐
相关产品推荐

