ingress内置的就是nginx,默认max_client_body_size大小为1MB,通过ingress做代理的服务就会受此文件传输大小的限制。

以下ingress的yaml文件配置是gitlab服务通过ingress做代理,需要传输的文件大小超过1MB,需要修改此值。

基于域名的 HTTP访问(gitlab服务做例子):
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-gitlab-ce
  namespace: gitlab-ce
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/proxy-body-size: "1024m"  #此时传输到gitlab的文件最大可为1024MB
    nginx.ingress.kubernetes.io/ssl-redirect: "false" # 前端使用http访问Ingress,默认可能使用https链接Ingress
    nginx.ingress.kubernetes.io/rewrite-target: /$1   # ingress跳转后台的path重写规则
spec:
  rules:
  - host: gitlab.dev.com                        # 访问gitlab的域名
    http:
      paths:
      - path: /(.*)
        backend:
          serviceName: gitlab-ce
          servicePort: 80

基于域名的 HTTPS访问:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-gitlab-ce
  namespace: gitlab-ce
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/proxy-body-size: "1024m"   #此时传输到gitlab的文件最大可为1024MB
    nginx.ingress.kubernetes.io/ssl-redirect: "true"       # 前端使用https访问Ingress
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"  # Ingress使用https访问后台,默认可能使用http请求后台url
    nginx.ingress.kubernetes.io/rewrite-target: /$1        # url path重写规则
spec:
  tls:                                                     # 域名与TLS证书绑定,支持前端使用https访问域名
  - hosts:
    - gitlab.dev.com
    secretName: ingress-secret
  rules:
  - host: gitlab.dev.com                # 访问gitlab的域名
    http:
      paths:
      - path: /(.*)
        backend:
          serviceName: gitlab-ce
          servicePort: 443

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐