GKE入口未基于url中的主机进行路由



我在GKE上为我的服务创建了以下入口(它是带变量的舵图的一部分(

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: TestIngress
annotations:
kubernetes.io/ingress.class: "gce"
kubernetes.io/ingress.global-static-ip-name: {{ $ingressExternalStaticIpName }}
spec:
rules:
- host: "web.frontend.com"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: {{ $webServiceName }}
port:
number: 80
- host: "grpc.frontend.com"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: {{ $grpcServiceName }}
port:
number: 80
defaultBackend:
service:
name: {{ $grpcServiceName }}
port:
number: 80

我修改了/etc/hosts,使web.frontend.com指向静态ip。然后我运行

curl web.frontend.com

我意识到grpc服务正在响应我的请求。我读过这个文档https://kubernetes.io/docs/concepts/services-networking/ingress/并且它说它基于主机头路由??这听起来有点奇怪,因为我认为host是指url。所以我尝试了

curl -H "Host:web.frontend.com:80" web.frontend.com

仍然得到grpc服务器的响应

入侵主机究竟是如何工作的,还是我做错了什么?

第二天尝试了一下,它就工作了。问题可能是由于谷歌缓存

相关内容

  • 没有找到相关文章

最新更新