oauth2.0 如何将流量从K8S NGINX入口控制器直接旁路到后端

ycl3bljg  于 2023-01-20  发布在  Nginx
关注(0)|答案(1)|浏览(157)

OAUTH2用于认证,OAUTH2代理部署在Kubernetes中。当NGINX入口控制器收到请求时,它总是将流量路由到OAUTH代理。要求是当请求包含特定的报头时(例如:abc),那么这些请求应该直接路由到后端。那些不应该路由到OAUTH代理。这可以使用NGINX入口控制器中的某种注解来完成吗?我们可以旁路那些到OAUTH2的流量吗?

iq0todco

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,将路由到第一个入口/服务。

相关问题