Authentication 我如何在kubernetes ingress中使用auth url集公开一条路由?

Authentication 我如何在kubernetes ingress中使用auth url集公开一条路由?,authentication,kubernetes,kubernetes-ingress,nginx-ingress,Authentication,Kubernetes,Kubernetes Ingress,Nginx Ingress,我正在通过Kubernetes ingresses(我们使用Nginx ingresses)玩一点基于路径的路由。我们有一个通过外部服务进行身份验证的服务,就像第一个代码片段中的服务一样。该服务已经被我们生态系统中的其他服务使用,但是,随着开发的进展,该服务现在具有管理API,我们需要关闭特定路径的身份验证。根据这一点,这对于基本身份验证是不可能的,并且根据我的尝试(第二个代码片段),通过外部服务进行身份验证也是不可能的。是否有其他方法允许特定路径不进行身份验证,而不完全重新构建入口和域/路径

我正在通过Kubernetes ingresses(我们使用Nginx ingresses)玩一点基于路径的路由。我们有一个通过外部服务进行身份验证的服务,就像第一个代码片段中的服务一样。该服务已经被我们生态系统中的其他服务使用,但是,随着开发的进展,该服务现在具有管理API,我们需要关闭特定路径的身份验证。根据这一点,这对于基本身份验证是不可能的,并且根据我的尝试(第二个代码片段),通过外部服务进行身份验证也是不可能的。是否有其他方法允许特定路径不进行身份验证,而不完全重新构建入口和域/路径

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: path-based-routing-1
  annotations:
    kubernetes.io/tls-acme: "true"
    kubernetes.io/ingress.class: nginx-external
    nginx.ingress.kubernetes.io/auth-url: http://authorizer.dev.svc.cluster.local
spec:
  tls:
  - hosts:
    - 'routing.example.com'
    secretName: routing.example.com
  rules:
  - host: 'routing.example.com'
    http:
      paths:
      - path: /
        backend:
          serviceName: path-based-routing-1
          servicePort: 80

据我所知,从您提供的链接可以看出,您只需要创建另一个将禁用auth的入口控制器。我想你应该离开ingress.class,删除acme和auth类型。我发现了另一个例子。1.如果删除tls acme和身份验证类型,会发生什么情况?2.如果您指定了两条路径,如
/something
/menmanagement api
,您的示例是否有效?
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: path-based-routing-2
  annotations:
    kubernetes.io/tls-acme: "true"
    nginx.ingress.kubernetes.io/auth-type: ""
    kubernetes.io/ingress.class: nginx-external

    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  tls:
  - hosts:
    - 'routing.example.com'
    secretName: routing.example.com
  rules:
  - host: 'routing.example.com'
    http:
      paths:
      - path: /management-api
        backend:
          serviceName: path-based-routing-2
          servicePort: 80