【发布时间】:2021-10-06 15:42:10
【问题描述】:
我有一个 GKE Ingress,按照this 教程设置。它工作了几个星期,直到我想在 YAML 配置中添加一个新规则。
显示以下错误并且不再创建入口:
Error syncing to GCP: error running backend syncing routine: googleapi: Error 404: The resource 'projects/<project_id>/zones/<zone>/networkEndpointGroups/<my-service>' was not found, notFound
我已将 yaml 简化为只有一个服务,但它仍然无法正常工作:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: basic-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: "web-static-ip"
networking.gke.io/managed-certificates: "cluster-certificate"
kubernetes.io/ingress.class: "gce"
spec:
defaultBackend:
service:
name: webserver
port:
number: 3007
在上面的例子中,没有定义规则,只定义了 defaultBackend。添加规则不会改变错误;有时它只显示不同的服务。使用什么服务也无所谓,所有资源都找不到。
但是,Ingress 的仪表板没有显示有关服务的错误(所有健康检查似乎都通过了):
我一直在苦苦挣扎,尝试使用不同的服务,使用不同的规则,但我认为我错过了一些东西。
- 哪个系统负责这个资源?服务本身似乎运行良好并且健康检查通过了,那么这是否是 Ingress 端的错误?
- 查看LoadBalancer dashboard 时,没有创建任何负载平衡器。是不是也是Ingress创建失败的原因?
我知道可能需要更多信息来帮助我,但我不确定要提供什么,因为感觉就像我在黑暗中搜索一样。请告诉我!
-更新-
我已经多次删除并重新创建了 Ingress,但这没有效果。 kubectl describe Ingress basic-ingress 显示如下:
Name: basic-ingress
Namespace: production
Address:
Default backend: webserver:3007 (10.6.128.139:3007)
Rules:
Host Path Backends
---- ---- --------
* * webserver:3007 (10.6.128.139:3007)
Annotations: ingress.gcp.kubernetes.io/pre-shared-cert: mcrt-065ca8b6-e85b-42ad-9113-6babe367a2d8
kubernetes.io/ingress.class: gce
kubernetes.io/ingress.global-static-ip-name: web-static-ip
networking.gke.io/managed-certificates: cluster-certificate
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Sync 3m48s (x3 over 3m48s) loadbalancer-controller Scheduled for sync
Warning Sync 31s (x16 over 3m30s) loadbalancer-controller Error syncing to GCP: error running backend syncing routine: googleapi: Error 404: The resource 'projects/<project_id>/zones/<zone>/networkEndpointGroups/<my-service>' was not found, notFound
kubectl get ingress basic-ingress 显示:
NAME CLASS HOSTS ADDRESS PORTS AGE
basic-ingress <none> * 80 6m34s
所有其他选项卡都是空的(因此看不到负载平衡器)。它表示该服务没有被任何东西使用(见上图)。
【问题讨论】:
-
您能在 [Kubernetes Engine > Service & Ingress] 上看到服务“webserver”吗?这可能与显示的错误有关
-
你能把
kubectl describe Ingress basic-ingress的结果贴出来吗? -
另外,您是否尝试过删除 Ingress 资源并重新创建它?
-
@NadiaEspinosa 是的,它看起来正确(我在原帖中添加了一张图片)
-
您是否尝试使用此负载平衡实现Network Endpoint Group?