kubernetes url路由到主机上的nginx入口

kubernetes url路由到主机上的nginx入口,kubernetes,kubernetes-ingress,nginx-ingress,Kubernetes,Kubernetes Ingress,Nginx Ingress,我的规则应该是什么样子的: 如果希望支持到服务的动态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 基本上,您一直在向$.spec.rules[x].http.paths

我的规则应该是什么样子的: 如果希望支持到服务的动态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


基本上,您一直在向$.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