猿问

Kubernetes 上的 mutlipart/form-data 解析错误

我正在我的go服务器中的标准结构上调用该函数,如下所示:FormFilenet/httpRequest


    multiFile, header, err := req.FormFile("file")

    if err != nil {

        log.Printf("reader error: %s", err)

        // response error handling

        return

    }

使用 Docker Compose 在本地运行时,它会成功运行,但是当我在 Kubernetes 集群上运行它时,我从 Pod 日志中收到以下错误:


reader error: multipart: NextPart: read tcp [host]:[port]->[differentHost]:[differentPort]: i/o timeout

我已经将一个卷挂载到我的pod上,以处理缓冲区溢出对磁盘的任何写入。以下是相关的 k8s 部署配置:


    spec:

      containers:

          volumeMounts:

            - mountPath: /tmp

              name: file-volume

      securityContext:

        fsGroup: 1000

        runAsGroup: 1000

        runAsUser: 1000

      volumes:

        - emptyDir: {}

          name: file-volume

有谁知道导致此问题的原因以及如何解决?


holdtom
浏览 143回答 2
2回答

慕雪6442864

您可以设置较长的服务器超时,当我们上传较大的文件/较慢的网络连接时,就会发生这种情况s := &http.Server{    ReadTimeout:  150 * time.Second,    WriteTimeout: 150 * time.Second,}

温温酱

读取超时表明,与其说这是 Pod 内部的问题,例如卷装入),不如说是服务发现问题。客户端似乎无法读取您的 Pod。可能与您的 K8s 服务或入口配置有关。或者,也许你的 Pod 无法正常运行。在这种情况下,您必须调查 Pod 日志和 K8s 事件日志。
随时随地看视频慕课网APP

相关分类

Go
我要回答