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

GKE集群中如何让Kubernetes HTTPS服务公网可访问?

GKE集群实现Nginx Ingress公网HTTPS访问方案

1. 确认Ingress Controller的公网入口IP

GKE上部署的Nginx Ingress Controller如果使用LoadBalancer类型的Service,GCP会自动分配一个公网IP。执行以下命令查看:

kubectl get svc -n ingress-nginx

找到ingress-nginx-controller服务的EXTERNAL-IP字段,这个就是公网访问的入口IP。如果你的Service是NodePort或ClusterIP类型,需要修改为LoadBalancer才能获取公网IP:

# 修改ingress-nginx-controller的Service配置
apiVersion: v1
kind: Service
metadata:
  name: ingress-nginx-controller
  namespace: ingress-nginx
spec:
  type: LoadBalancer
  # 保留其他原有配置

2. 绑定域名到公网IP

你需要拥有一个公网域名(如app.yourdomain.com),在域名服务商的DNS管理后台添加一条A记录,将该域名指向上述的Ingress公网IP。等待DNS解析生效(通常5-30分钟),可通过nslookup app.yourdomain.com验证解析是否正确。

3. 配置HTTPS证书(推荐Cert-Manager自动签发)

安装Cert-Manager

先在GKE集群中安装Cert-Manager的CRDs和控制器,可通过Cert-Manager官方发布的静态YAML文件进行安装(选择最新稳定版即可)。安装完成后执行以下命令验证部署状态:

kubectl wait --for=condition=available deployment --timeout=600s -n cert-manager cert-manager

创建ClusterIssuer(对接Let's Encrypt)

创建一个ClusterIssuer资源,用于自动申请免费的Let's Encrypt证书:

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: your-email@example.com  # 替换为你的邮箱,用于证书过期通知
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
    - http01:
        ingress:
          class: nginx

更新Ingress资源启用HTTPS

修改你现有的Ingress配置,添加TLS配置和Cert-Manager注解:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: your-app-ingress
  annotations:
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"  # 自动将HTTP请求重定向到HTTPS
spec:
  ingressClassName: nginx
  tls:
  - hosts:
    - app.yourdomain.com  # 替换为你的绑定域名
    secretName: app-tls-secret  # Cert-Manager会自动创建这个Secret存储证书
  rules:
  - host: app.yourdomain.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: your-app-service  # 替换为你的应用Service名称
            port:
              number: 80

应用配置后,Cert-Manager会自动完成证书申请、签发和挂载,整个过程通常需要1-2分钟。

4. 验证公网HTTPS访问

证书签发完成后,直接在浏览器访问https://app.yourdomain.com,浏览器会显示安全的HTTPS标识。也可以用curl验证:

curl -v https://app.yourdomain.com

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:39:54