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

Google Kubernetes Engine应用自定义域名配置及多应用部署问题

GKE自定义域名配置问题解答

问题1:域名DNS设置与集群重建后的IP变化

  • 不要将域名的域名服务器(NS记录)设置为30.31.32.33/api:DNS的NS记录用于指定管理该域名的DNS服务器地址,而非应用访问地址。你需要配置的是A记录(或AAAA记录),将mydomain.com或products.mydomain.com指向应用的外部IP(注意不要带/api路径,DNS仅负责解析IP,路径由应用或Ingress层处理)。
  • 关于IP变化:你当前使用的30.31.32.33大概率是NodePort节点IP或临时LoadBalancer IP。如果是NodePort,重建集群后节点IP必然改变;如果是临时LoadBalancer IP,集群重建或LoadBalancer资源删除后IP也会丢失。解决方法是创建静态外部IP地址,将其绑定到GKE的LoadBalancer(或Ingress)上,这样即使重建集群,只要重新绑定该静态IP,域名解析就不会失效。

问题2:同一集群部署多应用并使用不同域名

通过Kubernetes Ingress 资源实现基于域名的路由,步骤如下:

  1. 为新应用创建对应的Deployment和Service(和现有示例应用的配置逻辑一致,确保Service能正常访问应用)。
  2. 定义Ingress资源,在规则中为不同域名指定对应Service:
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: multi-domain-ingress
      annotations:
        kubernetes.io/ingress.class: "gce" # GKE默认Ingress类
        kubernetes.io/ingress.global-static-ip-name: "your-static-ip-name" # 绑定静态IP
    spec:
      tls:
      - hosts:
        - mydomain.com
        - products.mydomain.com
        # 若需HTTPS,配置对应TLS Secret名称
        # secretName: mydomain-tls
      rules:
      - host: mydomain.com
        http:
          paths:
          - path: /api
            pathType: Prefix
            backend:
              service:
                name: existing-app-service # 现有示例应用的Service名称
                port:
                  number: 80
      - host: products.mydomain.com
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: new-app-service # 新应用的Service名称
                port:
                  number: 80
    
  3. 将两个域名的A记录都指向该静态IP,Ingress会根据请求的域名自动路由到对应的应用Service。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:07:40