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

基于Kubernetes rewrite-target与kube-lego配置GC存储桶重定向及自定义证书

配置Kubernetes Ingress重定向至GCS存储桶并启用自定义证书

我来帮你梳理并完善这个指向GCS存储桶的Kubernetes配置,同时确保自定义证书能正常工作。先看看你现有的配置,然后我会给出调整后的完整方案:

现有Service配置

kind: Service
apiVersion: v1
metadata:
  name: proxy-to-gcs
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  type: ExternalName
  externalName: storage.googleapis.com

现有Ingress配置(未完成部分标注)

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: proxy-to-gcs
  annotations:
    kubernetes.io/tls-acme: "true"
    ingress.kubernetes.io/ssl-redirect: "true"
    ingress.kubernetes.io/rewrite-target: bucket_name/public
    # 此处kubernetes.io/...配置未完成
spec:
  # 原配置缺少TLS规则和路由规则定义

完整修正后的配置方案

首先要注意,extensions/v1beta1版本的Ingress已经被废弃,建议改用networking.k8s.io/v1(适用于Kubernetes 1.19+版本)。下面是适配自定义证书和GCS重定向的完整配置:

调整后的Service配置(直接指向目标存储桶)

kind: Service
apiVersion: v1
metadata:
  name: proxy-to-gcs
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  type: ExternalName
  externalName: bucket_name.storage.googleapis.com # 替换为你的GCS桶完整域名

完整Ingress配置(含自定义证书支持)

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: proxy-to-gcs
  annotations:
    # 若用cert-manager自动签发证书,替换为你的ClusterIssuer名称
    cert-manager.io/cluster-issuer: "your-cluster-issuer"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /public/$1
    # 适配GCS的特殊响应,避免客户端跳转到谷歌域名
    nginx.ingress.kubernetes.io/proxy-pass-request-body: "off"
    nginx.ingress.kubernetes.io/proxy-redirect-from: "https://bucket_name.storage.googleapis.com"
spec:
  tls:
  - hosts:
    - your-custom-domain.com # 替换为你的自定义域名
    secretName: gcs-proxy-tls # 证书将存储到这个Secret中(自动/手动创建均可)
  rules:
  - host: your-custom-domain.com
    http:
      paths:
      - path: /(.*)
        pathType: Prefix
        backend:
          service:
            name: proxy-to-gcs
            port:
              number: 80

关键配置说明

  • API版本升级:用networking.k8s.io/v1替代旧版本,避免后续版本兼容问题
  • 证书管理:如果是手动上传自定义证书,直接创建对应TLS Secret即可,无需cert-manager.io/cluster-issuer注解;如果用Let's Encrypt自动签发,确保已部署cert-manager并配置好ClusterIssuer
  • 重写规则:rewrite-target配合路径正则,将用户请求的路径转发到GCS桶的public子目录下
  • GCS适配:添加proxy-pass-request-body和proxy-redirect-from注解,解决GCS响应跳转回谷歌域名的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:41:24