【发布时间】:2022-07-17 22:20:45
【问题描述】:
- traefik / traefik 网格是否可以处理多区域架构来解决对正确用户区域的请求?
- 还有其他自托管解决方案推荐吗?
规则:
- 每个区域都是独立的,一个区域的停机时间不会影响其他区域
- 跨所有区域复制用户身份验证元数据
- 带有身份验证令牌的请求可以从任何区域进入网络并被验证
- 身份验证请求的默认入口点是 usa-region-1
- 入口控制器/服务网格确定用户是谁以及他们的帐户托管在哪个区域
- 身份验证服务将 \"user_region\" 标头添加到请求和 \"precedence_region\" 以防止内部循环
- 检测到目标区域不是当前区域,并将请求代理到添加了额外标头的正确区域
图表:
┌───────────────────────────────────────────────┐ │ │ │ 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 │ │ │ └───────────────────────────────────────────────┘
-
您是否了解跨区域、跨区域和跨区域流量之间的延迟和成本差异?
-
是的,区域间的流量只会发生在尚未识别用户的请求(身份验证服务)上,之后来自用户的每个请求都将到达他们的特定区域。
-
您将如何确保用户在停机时请求正确的区域?
-
目前,停机时间会影响该地区的所有用户。未来的计划是在同一位置区域(usa-region-2,europe-region-2)拥有复制区域
标签: kubernetes kubernetes-ingress traefik self-hosting servicemesh