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

GKE Ingress无法绑定全局静态IP问题求助

GKE Ingress无法绑定全局静态IP问题排查与解决

核心根因

从kubectl describe ingress的警告事件可明确:GCP项目smarter-ai-service中找不到指定的SSL证书资源k8s2-cr-g4e2azkm-wr44xnxqvebjy33n-e3b0c44298fc1c14,导致负载均衡同步失败,进而Ingress无法完成静态IP绑定。

排查与解决步骤

1. 检查K8s证书Secret有效性

先确认Ingress引用的TLS Secret是否存在且内容合规:

# 检查Secret是否存在
kubectl get secret dev-api-deleted-com-cert -n default

# 查看Secret详情,确认包含tls.crt和tls.key字段
kubectl describe secret dev-api-deleted-com-cert -n default

如果Secret不存在或证书内容(公钥/私钥)格式错误,重新生成符合K8s规范的TLS Secret(确保tls.crt是PEM格式证书链,tls.key是PEM格式私钥)。

2. 验证GCP SSL证书资源状态

用命令查看项目内所有SSL证书,确认报错中的证书是否存在:

gcloud compute ssl-certificates list --project smarter-ai-service

如果该证书不存在,说明GKE负载均衡控制器未成功从K8s Secret同步生成GCP端SSL证书,大概率是Secret内容无效或控制器权限不足。

3. 检查GKE控制器权限

GKE负载均衡控制器需要具备创建/管理GCP SSL证书的权限,给GKE节点池使用的服务账号添加Compute Load Balancer Admin角色:

gcloud projects add-iam-policy-binding smarter-ai-service \
  --member="serviceAccount:[你的GKE服务账号邮箱]" \
  --role="roles/compute.loadBalancerAdmin"

4. 强制触发Ingress同步

清理现有Ingress资源并重新部署,强制控制器重新同步所有资源:

# 删除现有Ingress
kubectl delete ingress stage-api-deleted-com-cert -n default

# 重新应用Ingress清单
kubectl apply -f stage-api-deleted-com-cert.yaml

也可通过添加临时注解触发同步,避免删除资源:

kubectl annotate ingress stage-api-deleted-com-cert -n default sync-trigger=$(date +%s)

5. 清理残留GCP负载均衡资源

如果多次部署失败导致GCP端残留无效资源,手动清理后再重新部署Ingress:

# 替换为事件中显示的对应资源名称
gcloud compute url-maps delete k8s2-um-g4e2azkm-default-stage-api-deleted-com-cert-xkz9puyb
gcloud compute target-https-proxies delete k8s2-tp-g4e2azkm-default-stage-api-deleted-com-cert-xkz9puyb
gcloud compute forwarding-rules delete k8s2-fr-g4e2azkm-default-stage-api-deleted-com-cert-xkz9puyb

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 15:52:39