我正在学习高度可用的分布式系统,并且不断出现的一些概念是负载平衡 (Nginx) 和容器编排 (Kubernetes)。现在我对它们的简化理解是这样的:
Nginx
- 处理 Http 请求的 Web 服务器
- 通过反向代理到其他服务器执行负载平衡(通常以循环方式完成)
- 将单个 IP(Nginx 服务器的 IP)映射到多个 IP(我们正在负载平衡的节点)。
Kubernetes
- 容器编排工具,用于保持容器集群的定义状态。
- 将单个 IP(控制平面的 IP?)映射到多个 IP(运行容器实例的节点)。
所以我的问题是,我们是否同时使用这两种工具?好像有些重叠?
例如,如果我正在创建一个 NodeJS 应用程序来充当公开 REST API 的微服务,我是否只需将我的应用程序部署在 Docker 容器中,然后让 Kubernetes 来管理它?我的 Kubernetes 集群前面不需要像 Nginx 这样的负载均衡器吗?