如何在使用 Ghost docker 镜像和 Kubernetes 时增加最大文件大小

How to increase the maximum file size when using Ghost docker image and Kubernetes

我正在使用 Kubernetes 和版本为 3.16.1 的 docker 图像 ghost 托管一个 Ghost 博客。上传主题时,我收到文件大小过大的错误消息。

The file you uploaded was larger than the maximum file size your server allows.

我一直在远程访问 pod 以查看我是否在那里找到任何我可以配置但看不到的设置。看不到在deployment文件中增加什么配置增加默认。

我有一个使用 Nginx 的 Ingress 控制器并指定了“nginx。org/client-max-body-size”,但是在我添加了那个之后没有帮助。

有人知道如何在使用 Ghost docker 图像和 nginx 入口控制器时增加最大文件大小吗?以下是入口控制器配置文件和部署文件的一部分。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: beitostolenlive-no-ingress
  namespace: beitostolenlive-no
  annotations:
    kubernetes.io/ingress.class: "nginx"
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
    nginx.org/proxy-connect-timeout: "30s"
    nginx.org/proxy-read-timeout: "20s"
    nginx.org/client-max-body-size: "50m"

这是部署配置文件。

apiVersion: apps/v1
kind: Deployment
metadata:
    name: beitostolenlive-no
    namespace: beitostolenlive-no
    labels:
        web: beitostolenlive-no
spec:
    replicas: 1
    strategy:
        type: Recreate
    selector:
        matchLabels:
            web: beitostolenlive-no
    template:
        metadata:
            labels:
                web: beitostolenlive-no
        spec:
            containers:
            - name: beitostolenlive-no
              image: ghost:3.16.1
              imagePullPolicy: Always
              ports:
                - containerPort: 2368
              env:
                - name: url
                  value: https://beitostolenlive.no
                - name: database__client
                  value: mysql
                - name: database__connection__host
                  value: ***
                - name: database__connection__user
                  value: ***
                - name: database__connection__password
                  value: ***
                - name: database__connection__database
                  value: ***
              volumeMounts:
              - mountPath: /var/lib/ghost/content
                name: content
            volumes:
            - name: content
              persistentVolumeClaim:
                claimName: beitostolenlive-no-content

请在您的入口配置文件中添加 nginx.ingress.kubernetes.io/proxy-body-size 注释。

对于 NGINX,当请求中的大小超过客户端请求正文的最大允许大小时,将向客户端返回此类错误。这个大小可以通过参数client_max_body_size.

来配置

要为所有 Ingress 规则全局配置此设置,可以在 NGINX ConfigMap 中设置 proxy-body-size 值。要在 Ingress 规则中使用自定义值,请定义我提到的注释。

有用信息:custom-max-body-size, 413-k8s-helm.