基于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
相关产品推荐
相关产品推荐

