kubernetes - 如果我的服务器遍布全球,我应该使用 Kubernetes 吗?
问题描述
我有一堆遍布全球的服务器。我想提供服务,比如从不同的服务器 ping 用户的 ip,以报告来自世界不同地区的延迟。
我应该使用 Kubernetes 来管理这些服务器吗?
通过管理,我的意思是确保每个区域中都有一个可用的 pod 来提供 ping 服务,优雅地更新所有区域中的 pod,等等。
从文档看来 Kubernetes 假设节点应该彼此靠近,并且集群应该存在于同一个网络中。
如果 Kubernetes 不适合此类任务,我有什么选择?我应该手动管理它们吗?
解决方案
我不会为这个用例推荐 Kubernetes(据我所知)。有几个原因:
您是正确的,Kubernetes 通常假设集群在地理上并不分散。
用于传入流量的 Kubernetes 负载平衡机制相对简单,并且无法进行您所描述的那种地理负载平衡。因此,无论如何,您仍然需要某种外部 GSLB 类型的解决方案。
至于您有哪些选择,有多种可能的方法。一种方法(到目前为止不是唯一的方法)是在多个 AWS 区域中使用 EC2 实例。如果您使用 Auto-Scaling 组,您可以确保至少有一个 EC2 实例始终处于运行状态。您可能能够通过 Route53 和 ELB 获得一些 GSLB 类型的功能,但是如果没有更多信息,这是否足以满足您的用例还不清楚。
推荐阅读
- flutter - 在 Flutter 中的 TextField 下显示错误
- swift - 在 MacOS 上无法识别 CallBackURL
- google-data-studio - 记分卡图表如何使用日期,datastudio
- typescript - 你能从Typescript中的嵌套对象值创建一个类型吗
- html - 为什么引导程序没有正确对齐单元格?
- python - /change-password/ 处的 ValueError 视图 authapp.views.ChangePassword 未返回 HttpResponse 对象。它返回 None 而不是
- google-chrome-devtools - chrome dev tools perf 面板中的单帧中有两张图片
- python - 如何设置具有大量类别的熊猫组的散景箱形图的初始缩放
- escaping - printf 忽略转义序列
- java - 如何从 Java 类调用 Kotlin 类