【发布时间】:2019-06-13 23:01:07
【问题描述】:
我正在尝试设置入口负载平衡器。 基本上,我有一个带有多个路径的后端服务。
假设我的后端 NodePort 服务名称是 hello-app。与此服务关联的 pod 公开了多个路径,例如 /foo 和 /bar。下面是例子
NodePort 服务及相关部署
apiVersion: v1
kind: Service
metadata:
name: hello-app
spec:
selector:
app: hello-app
type: NodePort
ports:
- protocol: "TCP"
port: 7799
targetPort: 7799
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-app
labels:
app: hello-app
spec:
replicas: 1
selector:
matchLabels:
app: hello-app
template:
metadata:
labels:
app: hello-app
spec:
containers:
- name: hello-app
image: us.gcr.io/hello-app:latest
现在发出如下请求,我面临 404 错误。
http://{ingress-address:port}/foo
http://{ingress-address:port}/bar
我也尝试过以下入口配置,但在这两种情况下都没有帮助。
入口配置1
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: basic-ingress
spec:
rules:
- http:
paths:
- path: /*
backend:
serviceName: hello-app
servicePort: 7799
入口配置2
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: basic-ingress
spec:
backend:
serviceName: hello-app
servicePort: 7799
错误信息
10.88.16.10 - - [20/Jan/2019 08:50:55] “GET / HTTP/1.1”404 - [2019-01-20 08:50:55] [INFO] [_internal] [_log] 10.88.16.10 - - [20/Jan/2019 08:50:55] “GET / HTTP/1.1”404 -
我查看了this 链接中提到的示例,但它假定不同的路径引用不同的后端服务。在我的例子中,多个路径属于同一个后端服务。
看起来完整路径没有从入口转发到下游后端服务,从而导致无效请求。 有人可以建议为上述要求配置入口的正确方法是什么?
【问题讨论】:
标签: kubernetes-ingress google-kubernetes-engine