【问题标题】:nginx ingress on kubernetes url routing to hostKubernetes url 上的 nginx 入口路由到主机
【发布时间】:2019-12-17 09:14:49
【问题描述】:

我的规则应该如何: 如果要支持到服务的动态 url 映射

/a should map to service service-a
/b should map to service service-b
/cccc should map to service service-cccc

注意:服务可以动态添加

因此在 10 分钟后。我们现在有

/dddd should map to service service-dddd

【问题讨论】:

    标签: kubernetes kubernetes-ingress nginx-ingress


    【解决方案1】:

    基本上,您不断将新路径附加到 $.spec.rules[x].http.paths,其中 x 是您打算在其上添加路径的主机的索引。

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: my-ingress
      namespace: my-namespace
      annotations:
        kubernetes.io/ingress.class: "nginx"
        # and other annotations you need..
      #labels:
         # if you need labels
    spec:
      rules:
      - host: "your.hostname"
        http:
          paths:
          - path: /a
            backend:
              serviceName: service-a
              servicePort: 443 # say your service runs on 443
          - path: /b
            backend:
              serviceName: service-b
              servicePort: 443 # say your service runs on 443
          - path: /cccc
            backend:
              serviceName: service-cccc
              servicePort: 443 # say your service runs on 443
    

    【讨论】:

    • 服务映射路径能否有通配符
    • 不。在原生 kubernetes yaml 中,您不能这样做。对于您上面的用例,您最好的选择是使用脚本来做到这一点。但是,我确实认为您应该为每个服务定义一个入口对象——这就是人们所做的,而且它确实有效。这样,您将能够使用 kustomize(轻量级)或臭名昭著的 helm 之类的模板工具。您将在 yaml 模板中使用一些“通配符”,这些工具将在运行时填充该值。
    • 我们可以热重载nginx吗..这意味着我不想重启nginx
    • 你不必重启 nginx
    猜你喜欢
    • 2021-05-31
    • 1970-01-01
    • 2021-12-13
    • 2019-11-21
    • 2019-03-08
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多