我正在尝试通过在我们的GKE群集中使用ingress
对象在GCP上自动设置负载均衡器。
我有三个GKE部署,每个部署都可以在端口8080
上的服务中使用,该服务具有唯一的nodePort。
使用ingress-fanout.yaml
时,它将创建4个后端服务,而不是yaml中指定的3个。第四项服务默认为所有不匹配的路由。我认为第四项服务是因为我们在Yaml中没有匹配未映射的路由。
一个人如何将不匹配的路线映射到其中一项服务?有可能吗?
这里是ingress-fanout.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: fanout-ingress
annotations:
kubernetes.io/ingress.global-static-ip-name: "our-static-ip"
ingress.gcp.kubernetes.io/pre-shared-cert: "our-ssl-cert"
kubernetes.io/ingress.allow-http: "false"
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
spec:
rules:
- host: our-website.com
http:
paths:
- path: /*
backend:
serviceName: li-frontend
servicePort: 8080
- path: /backend/*
backend:
serviceName: li-django
servicePort: 8080
- path: /notifications/*
backend:
serviceName: li-notifications
servicePort: 8080
更新:我删除了许多原始问题,并缩小了问题范围。当健康检查开始成功时,就清除了旧问题。
答案 0 :(得分:0)
首先,“后端”与您指定的“路径”无关。 GCP控制台上的“后端”指向您的GKE节点池。
Ingress支持添加默认后端。您可能已经尝试过搜索“入口默认后端”。您可以在以下位置找到有关此文档的文档:https://kubernetes.io/docs/concepts/services-networking/ingress/#single-service-ingress
如果没有其他匹配项,基本上这样做会设置默认的后端:
spec:
backend:
serviceName: testsvc
servicePort: 80
rules:
[...your stuff here...]