amazon-web-services - 如何在入口控制器中为不同的目标创建不同的身份验证类型?
问题描述
我正在将 EKS 集群部署到 AWS 并使用 alb 入口控制器指向我的 K8S 服务。入口规范如下所示。
有两个目标path: /*
和path: /es/*
。而且我还配置alb.ingress.kubernetes.io/auth-type
为cognito
用作身份验证方法。
我的问题是如何auth-type
为不同的目标配置不同的?我想使用cognito
for/*
和none
for /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
解决方案
这个问题出现了很多,所以我想它需要被公关到他们的文档中。
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
推荐阅读
- python - 向 QPushbutton enterEvent 和 exitEvent 添加动画
- node.js - 我应该使用哪种方法将数据存储在 firebase firestore 文档中?
- pine-script - Tradingview Pinescript Strategy.close() 不工作
- javascript - 为什么一个对象存在于两个和解中?
- database - 我在 Laravel 8 中使用 livewire 将表单插入到我的数据库中,我收到以下错误
- javascript - 从 mongo 检索图像文件到我的主页
- php - 如何在也有 wordpress 博客文章摘要的静态站点上查询 mysql 用户数据库
- javascript - 从 CheckBox 显示多个选定的选中值
- amazon-web-services - 必须计算记录数,我应该使用哪个数据库
- c++ - 我可以在初始化派生类时构造基类来分配吗?