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

如何配置K8s Ingress将请求路由至DigitalOcean Bucket静态资源

步骤1:创建ExternalName类型Service

首先配置Service指向DigitalOcean Spaces的域名,示例配置如下:

apiVersion: v1
kind: Service
metadata:
  name: do-spaces-svc
  namespace: default
spec:
  type: ExternalName
  externalName: <你的区域>.digitaloceanspaces.com # 示例值:nyc3.digitaloceanspaces.com
  ports:
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443

步骤2:配置Ingress规则

核心需要处理路径前缀重写、上游Host头修正、上游传输协议指定三个关键点,示例配置如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: do-spaces-ingress
  namespace: default
  annotations:
    # 重写路径:把/static/后的路径拼到桶名后,对应目标地址格式要求
    nginx.ingress.kubernetes.io/rewrite-target: /<你的桶名>/$1
    # 修正发给Spaces的Host头,否则Spaces无法识别对应存储服务会返回404
    nginx.ingress.kubernetes.io/upstream-vhost: <你的区域>.digitaloceanspaces.com
    # 指定上游用HTTPS协议,否则用HTTP请求HTTPS端口会返回502错误
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
  ingressClassName: nginx # 替换为你实际使用的Ingress类名
  rules:
  - host: example.com
    http:
      paths:
      - path: /static/(.*)
        pathType: Prefix
        backend:
          service:
            name: do-spaces-svc
            port:
              name: https
  # 如需开启HTTPS可补充下面的TLS配置段
  # tls:
  # - hosts:
  #   - example.com
  #   secretName: example-com-tls

常见错误排查

  • 404错误:优先检查upstream-vhost配置是否正确、桶名是否拼写正确、目标对象是否存在、桶是否开启了对应路径的公开读权限
  • 502错误:优先检查backend-protocol是否设置为HTTPS、Service的externalName和端口配置是否正确、集群节点是否能正常解析Spaces的域名
  • 403错误:检查Spaces桶是否配置了正确的CORS规则,以及对应路径的访问权限配置是否符合要求

内容的提问来源于stack exchange,提问作者1f928

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:45:04