如何在入口控制器中为不同的目标创建不同的身份验证类型?

Joey Yi Zhao

我正在将 EKS 集群部署到 AWS 并使用 alb 入口控制器指向我的 K8S 服务。入口规范如下所示。

有两个目标path: /*path: /es/*而且我还配置alb.ingress.kubernetes.io/auth-typecognito用作身份验证方法。

我的问题是如何auth-type为不同的目标配置不同的?我想使用cognitofor/*nonefor /es/*我怎样才能做到这一点?

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: sidecar
  namespace: default
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/group.name: sidecar
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/group.order: '1'
    alb.ingress.kubernetes.io/healthcheck-path: /health
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]'
    # Auth
    alb.ingress.kubernetes.io/auth-type: cognito
    alb.ingress.kubernetes.io/auth-idp-cognito: '{"userPoolARN":"xxxx","userPoolClientID":"xxxx","userPoolDomain":"xxxx"}'
    alb.ingress.kubernetes.io/auth-scope: 'email openid aws.cognito.signin.user.admin'
    alb.ingress.kubernetes.io/certificate-arn: xxxx

spec:
  rules:
    - http:
        paths:
          - path: /es/*
            backend:
              serviceName: sidecar-entrypoint
              servicePort: 8080
          - path: /*
            backend:
              serviceName: server-entrypoint
              servicePort: 8081


丹尼尔

这个问题经常出现,所以我想它需要在他们的文档中进行 PR-ed。

Ingress 资源是累积的,因此您可以将路径分成两个独立的 Ingress 资源,以便对每个资源进行不同的注释。它们将与整个集群中的所有其他 Ingress 资源结合以形成最终配置

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: sidecar-star
  namespace: default
  annotations:
    kubernetes.io/ingress.class: alb
    # ... and the rest ...
spec:
  rules:
    - http:
        paths:
          - path: /*
            backend:
              serviceName: server-entrypoint
              servicePort: 8081
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: sidecar-es
  namespace: default
  annotations:
    kubernetes.io/ingress.class: alb
    # ... and the rest ...
spec:
  rules:
    - http:
        paths:
          - path: /es/*
            backend:
              serviceName: sidecar-entrypoint
              servicePort: 8080

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

k8s入口控制器中的Traefik转发身份验证

护照身份验证卡在控制器中?

如何将经过身份验证的用户绑定到控制器中的参数?

如何在Rails中为button_to分配参数和不同的控制器方法?

如何在Spring Boot Security 2.0中使用2种不同的身份验证方法

如何在不同目录中为相似形式设置CodeIgniter控制器

如何扩展Laravel内置的身份验证以处理控制器构造函数中的授权?

如何在我的登录控制器上使用身份验证

Laravel如何在apiResources控制器中获取身份验证用户详细信息

在动作和控制器中使用不同身份验证方案的Authorize属性的行为是什么

如何在React中同步不同组件的身份验证状态?

如何在blazor Webassembly项目的服务器端控制器中对用户进行身份验证?

如何在ASP Net Core 3.1控制器中针对特定操作设置基本身份验证?

如何在弹簧控制器中为特定方法在验证器中应用不同的行为

不同的asp.net Web API控制器的不同身份验证机制

如何在同一视图控制器上为不同的pickerview设置不同的数据集

为不同类型的用户使用两个不同的身份验证后端

如何从不同的类(如身份验证器)访问EmberJS中的控制器?

特殊控制器中用于身份验证的不同Twig-Layout?

在Rails的同一控制器中对两个不同的devise类进行身份验证

春季安全性-根据是否经过身份验证委派给不同的控制器?

如何在不同的控制器中解决不同的服务?

如何在Django rest框架ViewSet中对不同的功能使用不同的身份验证

如何在Firebase中管理用户的不同身份验证

如何在 Laravel 中为不同的控制器使用不同的身份验证

如何在 pam 策略中为不同的用户或组设置不同的身份验证要求?

如何在 cakedc 插件 cakephp3 中为不同的用户组设置不同的身份验证重定向 URL

如何在 NestJS 控制器处理程序的请求中获取“已验证主体”和“经过身份验证的用户”?

使用客户端证书身份验证的 NGINX 代理到入口控制器