我的部署和服务运行正常,可以通过http://my.server.net:32142
获得-返回JSON
这是Service的输出
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ok NodePort 10.104.118.110 <none> 8080:32142/TCP 92m
入口:
NAME HOSTS ADDRESS PORTS AGE
ok my.server.net 80 86m
但是我在使用Ingress时遇到了挑战,该挑战无法将我重定向到所需的资源
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ok
labels:
app: ok
system: test
spec:
rules:
- host: my.server.net
http:
paths:
- path: /test
backend:
serviceName: ok
servicePort: 8080
预期输出:
http://my.server.net/test
和http://my.server.net:32142/test
在仅返回404错误时应返回JSON
答案 0 :(得分:0)
请尝试在请求中使用自定义标头,以便您的Ingress Controller可以找到用于传入流量的正确主机的路由,否则您将遇到默认后端(404),如下所示:
curl http://<IP_ADDRESS*>/test -H 'Host:my.server.net'
其中IP_ADDRESS
是LoadBalancer的IP(即Ingress Controller的前端),最终您可以尝试使用表单<IP_OF_NODE>:<NodePort>
,但这取决于您公开Ingress Controller的方式。
请阅读here有关Ingress配置的更多信息,即所谓的“基于名称的虚拟主机”