集群 Docker 环境

问题描述

我是 Docker 和容器化的新手。因此,我正在寻找一些参考资料来解决我正在寻找的解决方案。 在老式的 Java Web 应用程序中,有集群应用服务器的概念。可以应用负载平衡器在集群节点之间分派传入的请求。 现在我正在寻找类似的解决方案,使用 Docker 和 Kubernetes。简单来说,我希望我的应用程序从外部看起来像一个节点,只有一个 IP,但是在系统负载增加的情况下,会生成相同 Docker 的新实例,并分派负载他们之间自动。我找不到正确的关键字来搜索它。所以如果你能给我一些提示来找到合适的材料,那就太好了。 正如我所提到的,我对容器化非常陌生。所以,请不要对我的帖子做任何假设。如果您认为这没有意义,并且我将橙子和苹果混合在一起,请告诉我。 提前致谢。

解决方法

从基础架构的角度来看,这正是 kubernetes 提供的内容:您将应用程序提供为 docker 映像并在 kubernetes 中定义一个 Deployment,它将提供定义数量的实例 (Pod)应用。 要在 kubernetes 中访问它,您需要定义一个 Service,它是一个单一的虚拟 IP,以使您的应用程序显示为一个实例。 Kubernetes 将循环请求到所有 Pod

如果需要,您的应用程序负责复制状态或将其保存在中央存储中。因此,无状态应用程序是最合适的。

要从外部访问您的应用程序,您可以使用 LoadBalancer 和/或 Ingress 对象。

kubernetes 也可以执行自动缩放,但它不是开箱即用的。