gpt4 book ai didi

区域间的 Kubernetes ingress controller 代理请求

转载 作者:行者123 更新时间:2023-12-05 05:38:25 26 4
gpt4 key购买 nike

  1. traefik/traefik mesh 是否可以处理多区域架构以解决对正确用户区域的请求?
  2. 还有其他自托管解决方案推荐吗?

规则:

  • 每个区域都是独立的,一个区域停机不会影响其他区域
  • 用户身份验证元数据在所有区域复制
  • 带有身份验证 token 的请求可以从任何区域进入网络并被验证
  • 身份验证请求的默认入口点是 usa-region-1
  • 入口 Controller /服务网格确定用户是谁以及他们的帐户托管在哪个区域
  • 身份验证服务将“user_region” header 添加到请求和“precedence_region” header 以防止内部循环
  • 检测到目标区域不是当前区域,并将请求代理到添加了额外 header 的正确区域

图表:

                                   ┌───────────────────────────────────────────────┐
│ │
│ usa-region-1 │
│ ┌───►/app-1/*│
│ │ │
┌───┼──► Load ──────► ┌── Ingress ────┤ │
│ │ Balancer │ Controller ├───►/app-2/*│
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ └───►/app-3/*│
│ │ │ │ │
│ │ │ │ │
│ │ │ └─Authentication │
User──────► Cloudflare ──────►│ │ │ Service │
Request │ │ │ │
│ └──────────────────┼────────────────────────────┘
│ │ *proxie the request*
│ ┌──────────────────┼────────────────────────────┐
│ │ │ │
│ │ europe-region-1 │ │
│ │ │ ┌───►/app-1/*│
│ │ │ │ │
└───┼──► Load ───────► └── Ingress ────┤ │
│ Balancer Controller ├───►/app-2/*│
│ │ │ │
│ │ │ │
│ │ └───►/app-3/*│
│ │ │
│ │ │
│ └─Authentication │
│ Service │
│ │
└───────────────────────────────────────────────┘

最佳答案

本地数据存储要求

在某些市场中,可能出于监管原因要求将用户的数据存储在其所在地区。因此,如果欧洲用户前往美国,他们应该继续被路由到欧洲服务器,他们的数据将保留在欧洲。

基于 header 的简单路由

首先,您需要在每个 HTTP 请求中包含一些内容,例如您提到的 user_region header 。入口 Controller 是执行此操作的合乎逻辑的位置,而不是针对每个服务。这是一个 Traefik header based routing example .

入口 Controller 中的路由

如果您需要更复杂的逻辑,则可以使用入口 Controller 的可扩展性功能或放置在 API 前面的专用 API 网关来编写插件。有关示例,请参见 this NGINX configuration file , 它根据 this Lua plugin 设置目标主机名.

更多信息

这些链接也可能令人感兴趣。特别注意如何 unauthenticated requests可以通过首先识别用户,然后将用户转移到他们的家乡区域,以便在那里进行身份验证来处理。这可以允许用户的凭据仅存储在他们的本地区域。

关于区域间的 Kubernetes ingress controller 代理请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72915162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com