我正在GKE集群上工作。我有一个运行的简单服务器。服务器上有3条路由。
route 1 - /
route 2 - /ping
route 3 - /health
这些路径返回200 strip 有通用但不同的“确定”消息的响应。
这就是我的入口Yaml的样子-
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: basic-ingress
spec:
tls:
- hosts:
- www.simple.com
secretName: simple-server-tls
rules:
- host: www.simple.com
http:
paths:
- path: /ping
backend:
serviceName: simple-server
servicePort: 8080
我将服务器暴露为负载平衡器。我可以使用loadbalancer作为
https://<loadbalancer_ip>:8080/https://<loadbalancer_ip>:8080/pinghttps://<loadbalancer_ip>:8080/health
访问所有三个路由但是,当尝试使用Ingress时,我在
https://www.simple.com/ping
上仅收到200条响应其他两条路线
https://www.simple.com/health
和https://www.simple.com/
返回default backend - 404 error
。我可以确认服务器正在运行并且可以完美地处理请求,并且我已经为入口分配了足够的时间(最多30分钟)以完成设置。
https://www.simple.com/healthz returns "OK"
。我认为我在正确配置入口方面犯了一个错误。任何帮助/建议表示赞赏。
我无法提供入口日志,因为我注意到
kubectl describe ingress/basic-ingress
返回错误Error from server (NotFound): the server could not find the requested resource
。但是,kubectl get ingress返回basic-ingress www.simple.com <ingress_ip> 80, 443 31m
最佳答案
找出问题。您需要在路径中添加通配符。我的路径中只有/
,因此它拒绝了所有其他网址(读取抛出404错误)。我添加了/*
并删除了the rewrite-target annotation
,因为它正确建议了@bserdar,并且可以正常工作。链接到github上的问题很有帮助-https://github.com/kubernetes/ingress-nginx/issues/1120
关于kubernetes - 如何通过一个Ingress在同一服务上服务器多个路径?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58313480/