【问题标题】:How to get two ingress ports accessible for single service using NGINX kubernetes controller如何使用 NGINX kubernetes 控制器让单个服务可以访问两个入口端口
【发布时间】:2019-06-29 09:15:47
【问题描述】:

我们有一个服务有两个暴露的端口——一个用于服务器,第二个用于管理。 Kubernetes 集群运行着 NGINX 控制器。有没有办法在 Ingress YAML 文件中公开两个服务端口? 细节: 服务服务器端口:8081 服务管理端口:8082 我们尝试在 Ingress YAML 文件中使用两个“后端”,但它仅适用于默认端口 80,而对于任何其他端口都失败。 ingress.yml 文件如下:

kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: bw-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
   - host: my.host.net
     http:
      paths:
      - path: "/controller/"
        backend:
          serviceName: bw-svc1
          servicePort: 80
       - path: "/actuator/"
         backend:
           serviceName: bw-svc2
           servicePort: 5612

【问题讨论】:

    标签: kubernetes kubernetes-ingress nginx-ingress


    【解决方案1】:

    在您的配置示例中,两条路径的缩进级别不相等。

    除此之外,您的配置看起来正确,应该会导致以下行为:

    1. 通过my.host.net/controller 进入集群的所有流量都将发送到服务bw-svc1:80
    2. 通过my.host.net/actuator 进入集群的所有流量都将发送到服务bw-svc2:5612

    如果这不是您想要达到的目标,能否请您重新表述您的问题?

    【讨论】:

    • 感谢您的回复。你提到的几点是我想要达到的。第一点工作正常。但是对于第二点,我收到端口 5612 的“连接被拒绝”错误。它只有在我们提供端口 80 时才有效。有没有办法在不同的端口上实现这一点?
    • 检查您的服务 bw-svc2:5612 是否已启动并正在运行 - 例如将带有 curl 的 pod 加载到集群中,并尝试从该特定 pod 中curl https://bw-svc2:5612。还要仔细检查 bw-svc2 的就绪和活跃度探测是否正确设置。
    • 为了启动这两个服务,我在服务 YAML 文件中使用了 NodePort,因此我获得了外部端口来访问这两个服务。在该外部端口的帮助下,我能够成功地从外部访问该服务。这意味着服务运行良好。
    猜你喜欢
    • 2021-11-19
    • 2023-01-27
    • 2021-12-23
    • 2021-11-30
    • 2021-12-02
    • 1970-01-01
    • 2018-10-29
    • 2021-10-05
    • 2021-05-12
    相关资源
    最近更新 更多