我是按照以下步骤进行的 Rancher快速入门指南 我正在使用2个虚拟机。
我正试图设置一个 ingress,将路由到一个简单的 Java REST API 到一个简单的 nodeJS 应用程序--每一个都需要有一个路径。
这就是我们试图满足的 ingress 定义。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: front-end
servicePort: 3000
- path: /supermarket/
backend:
serviceName: backend
servicePort: 8081
这个 ingress 定义可以和 GKE 一起工作。
当我将它应用于Rancher时,它告诉我们我们有2个IP地址--1号虚拟机和2号虚拟机。当我们打开1号虚拟机的IP时,我们得到了Rancher用户界面的服务,但当我们打开2号虚拟机的IP时,我们得到了一个连接超时--好像那里没有开放端口。
我们需要使用什么正确的IP来打入口呢?例如,我希望能够打开http:/supermarket,并从后台获得响应。
你在相同的命名空间中有任何其他的入口对象吗?如果你有,我建议你指定 host
在您的 ingress 对象中,如下所示。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: foo.bar.com
http:
paths:
- path: /
backend:
serviceName: front-end
servicePort: 3000
- path: /supermarket
backend:
serviceName: backend
servicePort: 8081
一旦你应用了这个清单,你就可以在后端访问你的 http://foo.bar.com/supermarket
和你的前端在 http://foo.bar.com/