Argo与Kubernetes部署工作流报错:Request entity to large: limit is 3145728
问题排查与解决:Argo工作流部署报"Request entity too large: limit is 3145728"
这个报错的核心是你提交的工作流请求体超过了3MB的默认限制,限制一般来自Argo Server本身或者前端Ingress的配置,以下是具体排查和修复步骤:
1. 调整Argo Server的请求大小上限
Argo Server默认用--max-request-size参数限制请求体为3MB,需要修改这个配置:
- 找到Argo Server的Deployment资源,编辑容器启动参数,添加或更新
--max-request-size,比如设为10MB(对应字节数10485760):containers: - name: argo-server command: ["argo-server"] args: - --max-request-size=10485760 # 保留其他原有参数 - 重启Argo Server生效:
kubectl rollout restart deployment argo-server -n argo
2. 检查并修改Ingress的请求限制
如果Argo Server通过Ingress对外暴露,Nginx这类Ingress控制器也会默认限制请求体大小,需要在Ingress资源中加注解调整:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: argo-server-ingress namespace: argo annotations: nginx.ingress.kubernetes.io/proxy-body-size: 10m # 保留其他原有注解 spec: # 保留原有Ingress规则
- 应用修改:
kubectl apply -f <你的Ingress配置文件路径>
3. 精简工作流请求内容
如果工作流定义里包含大段配置、大镜像标签或者内嵌的大文件,建议把这些内容抽离到ConfigMap或Secret中,通过引用的方式代替直接内嵌,从根源上减小请求体大小。
修改完成后重新提交工作流,若仍报错,排查是否有API网关等中间层也设置了请求大小限制。
内容的提问来源于stack exchange,提问作者Derek Menéndez
相关产品推荐
相关产品推荐

