如何在Rancher中为Kubernetes集群设置入口?

问题描述 投票:1回答:1

我是按照以下步骤进行的 Rancher快速入门指南 我正在使用2个虚拟机。

  • VM #1:我正在运行Rancher服务器(在一个Docker容器中)和一个Rancher代理,有3个角色:etcd,控制平面和工人。
  • 虚拟机#2:一个带有工人的Rancher代理。

我正试图设置一个 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,并从后台获得响应。

kubernetes-ingress rancher
1个回答
0
投票

你在相同的命名空间中有任何其他的入口对象吗?如果你有,我建议你指定 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/

© www.soinside.com 2019 - 2024. All rights reserved.