OAUTH2用于认证,OAUTH2代理部署在Kubernetes中。当NGINX入口控制器收到请求时,它总是将流量路由到OAUTH代理。要求是当请求包含特定的报头时(例如:abc),那么这些请求应该直接路由到后端。那些不应该路由到OAUTH代理。这可以使用NGINX入口控制器中的某种注解来完成吗?我们可以旁路那些到OAUTH2的流量吗?
iq0todco1#
您可能需要访问https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#canary假设您有一个正常的入口:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-backend spec: ingressClassName: nginx rules: - host: XXX http: paths: - path: / pathType: Prefix backend: service: name: backend port: number: 80
在第二个Ingress上设置所需后端的头文件名称和值,并启用canary。
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-backend-header annotations: nginx.ingress.kubernetes.io/canary: "true" nginx.ingress.kubernetes.io/canary-by-header: sample-header nginx.ingress.kubernetes.io/canary-by-header-value: abc spec: ingressClassName: nginx rules: - host: XXX http: paths: - path: / pathType: Prefix backend: service: name: backend-with-header port: number: 80
现在,每个带有样本头的请求:abc路由到第二个入口/服务。任何其他值,例如sample-header:test,将路由到第一个入口/服务。
1条答案
按热度按时间iq0todco1#
您可能需要访问https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#canary
假设您有一个正常的入口:
在第二个Ingress上设置所需后端的头文件名称和值,并启用canary。
现在,每个带有样本头的请求:abc路由到第二个入口/服务。任何其他值,例如sample-header:test,将路由到第一个入口/服务。