You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署在Kubernetes上的Django应用Sktime+Plotly预测图表无法加载如何解决

1. 先确认资源配置是否生效

你贴出的Deployment配置中,CPU限制仍然是200m,和你提到的修改到2000m的配置不符:

resources:
  requests:
    cpu: 200m
    memory: 100Mi
  limits:
    memory: "1Gi"
    cpu: "200m"

Sktime的预测任务属于CPU密集型操作,200m的CPU限制仅允许容器使用0.2核,执行计算时会被Kubernetes直接限流,导致请求长时间阻塞。首先确认你修改配置后是否执行了kubectl apply -f <你的yaml文件名>让新配置生效,修改后可以执行kubectl describe deployment mywebsite查看实际生效的资源配置。

2. 排查Django部署配置问题

本地运行正常但集群异常,大概率是Django生产环境配置和本地开发模式存在差异:

  • 检查Django的DEBUG配置,如果生产环境关闭了DEBUG模式,必须配置静态资源服务,否则Plotly依赖的前端JS、CSS静态资源会返回404,导致图表无法渲染、页面持续加载。生产环境建议搭配Nginx处理静态资源,或者安装whitenoise库让Django直接处理静态资源。
  • 确认ALLOWED_HOSTS配置中已经添加了minikube service --url mywebsite返回的IP地址,否则Django会直接拒绝访问请求。
  • 检查你容器内启动Django的方式:不要使用默认的python manage.py runserver开发服务器,它是单线程的,处理耗时的预测请求时会阻塞所有其他请求,生产环境必须使用Gunicorn、uWSGI等多进程WSGI服务器启动。

3. minikube启动方式没问题

minikube service --url mywebsite是LoadBalancer类型服务在minikube环境下的标准获取访问地址的方式,操作本身没有问题。你可以先执行kubectl get svc mywebsite确认服务的端点(ENDPOINTS)是否正常关联到Pod的8000端口,排除服务配置错误的问题。

4. 直接查看Pod日志定位具体错误

执行以下命令查看Pod的运行日志,直接定位请求卡住的具体原因:

# 先获取Pod名称
kubectl get pods | grep mywebsite
# 查看Pod实时日志
kubectl logs -f <上一步输出的Pod名称>

如果日志中出现CPU throttle相关的提示,就确认是资源限制问题;如果出现静态资源404就对应调整静态资源配置;如果出现预测任务的报错就检查模型文件是否正常打包到镜像中。

5. 检查minikube本身的资源配额

如果你修改了Pod的资源限制还是无效,确认你启动minikube时分配的总资源是否足够,执行minikube config view查看cpu和memory的配置,如果minikube本身只分配了1核CPU,你给Pod配置2核的限制也不会生效,需要重新启动minikube分配足够资源:

minikube stop
minikube start --cpus 4 --memory 4096

内容的提问来源于stack exchange,提问作者Julian Romero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 12:45:08