首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >区域间的Kubernetes入口控制器代理请求

区域间的Kubernetes入口控制器代理请求
EN

Stack Overflow用户
提问于 2022-07-08 17:47:40
回答 2查看 156关注 0票数 3
  1. traefik / traefik网格能处理多个区域结构来解决对正确用户区域的请求吗?
  2. 还有其他自我托管的解决方案推荐吗?

规则:

  • 每个区域是独立的,一个区域的停机时间不影响其他区域
  • 在所有区域复制用户身份验证元数据。
  • 带有身份验证令牌的请求可以从任何区域进入网络并进行验证。
  • 身份验证请求的默认入口点是usa-Regi-1。
  • 入口控制器/服务网格确定用户是谁以及他们的帐户托管在哪个区域。
  • 身份验证服务将"user_region“头添加到请求中,并添加"precedence_region”以防止内部循环。
  • 检测到解列区域不是当前区域,并将请求代理到正确的区域,并添加额外的标头。

图:

代码语言:javascript
运行
复制
                                   ┌───────────────────────────────────────────────┐
                                   │                                               │
                                   │ 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           │
                                   │                                               │
                                   └───────────────────────────────────────────────┘
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-17 14:10:10

本地数据存储需求

在一些市场中,可能有管理理由将用户的数据保存在其本国区域内。因此,如果一个欧洲用户已经旅行到美国,他们应该继续路由到欧洲服务器,他们的数据将留在欧洲。

基于报头的简单路由

首先,在每个HTTP请求中都需要一些内容,比如您提到的user_region头。入口控制器是执行此操作的逻辑位置,而不是每个服务的逻辑位置。这是一个基于Traefik报头的路由示例

入口控制器中的路由

如果您需要更复杂的逻辑,那么可以使用入口控制器的可扩展性特性或者放在API前面的专用API网关来编写插件。有关示例,请参见这个NGINX配置文件,它根据这个Lua插件设置目标主机名。

进一步信息

这些联系也可能令人感兴趣。特别要注意如何处理未经认证的请求,首先识别用户,然后将用户转移到他们的主区域,以便在那里进行身份验证。这可以允许用户的凭据只存储在他们的主区域。

票数 1
EN

Stack Overflow用户

发布于 2022-07-11 17:47:13

您所描述的通常被称为“全局服务器负载平衡”。虽然Traefik本身不支持这样的特性,但可以利用它与高级DNS提供程序一起提供Global负载平衡。

在实践中,您可能希望设置基于位置的DNS设置,以便将用户引用最近的“侵入控制器”,而不是在您的入口控制器之间重新路由。nginx的这篇文章详细介绍了如何将NS1作为DNS提供程序来设置全局服务器负载平衡,并可用于Trafik。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72915162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档