运行 同一 springboot 应用程序的多个实例

Running multiple instances of same springboot application

我有一个 spring-boot 应用程序,我想将其部署在 OVH public 云上。

我不需要达到部署同一个应用的多个实例的目的,每个实例都必须有自己的资源(比如MySQL数据库)。

必须使用特殊 url 访问每个实例。例如:

我对与云计算和部署有关的一切都很陌生。

根据我在网上看到的,我的疑惑是

我错了吗?任何可以提供帮助的在线课程/资源/视频都很棒。

提前致谢。

理想情况下,如果它是单个应用程序,它应该连接到一个后端数据库,而不是 3 个不同的数据库。

如果您的用例非常具体,并且您确实想将一个应用程序的 3 个实例连接到 3 个不同的数据库,那么请将每个已部署的应用程序视为具有 3 个不同部署的独立应用程序。

谈到 Docker 和 kubernenets,我认为您最初不需要这些,而是​​将您的应用程序直接部署到云实例。为了实现应用程序的高可用性,将它们部署为自动缩放组的一部分,并将 ELB 映射到每个自动缩放组。最后,将 ELB CNAME 映射到您的 DNS 记录中并开始使用您的应用程序。

Docker 和 K8s 有自己的学习曲线,如果你是这个领域的新手,会增加开销。尽管它们有很多优点,并且如果您要管理大量微服务并拥有敏捷环境,它们将非常有益。

我的偏好是先从 VM 开始,然后慢慢转向容器世界。 :)

基本上,Docker is a platform to develop, deploy, and run applications inside containers, therefore containers represent run-time environment for images. Kubernetes扮演着编排器的角色,为集群中容器之间建立通信通道提供了足够的方式,默认情况下使用Docker作为容器运行时。

有一些基本的 concepts in Kubernetes that describe a cluster core components 和应用程序工作负载,因此定义了集群的所需状态。

Kubernetes objects 表示集群管理操作和容器化应用程序的抽象级别 run-time Kubernetes API.

相关资源中的环境

我会关注在应用程序部署生命周期中最重要的 Kubernetes 资源。

Deployment 是定义 Pods 应该如何在集群中实现的主要机制,并为进一步应用 run-time 工作流提供特定配置。

Service 描述了特定 Pod 如何与集群中的其他资源通信的方式,提供端点 IP 地址和应用程序响应的端口。

Ingress 将 Kubernetes 服务暴露在集群外,具有一些独特的优势,如负载平衡、SSL/TLS ceritficate 终止等

您可以在特定指南中获得有关 OVH 中 Kubernetes 实施的更多相关信息 chapter