【问题标题】:Deploying dockerized Spring Cloud Netflix project to Kubernetes将 dockerized Spring Cloud Netflix 项目部署到 Kubernetes
【发布时间】:2019-01-26 15:25:58
【问题描述】:

我正在开发一个微服务项目,它是 dockerized Spring Cloud Netflix 项目,它包含 3 个微服务,除了一些 Netflix 服务,它们是涡轮机、zipkin、发现、配置服务器等。

(它现在只是在本地工作..)

很快,我决定将我的项目部署到具有编排工具的云提供商。

经过一些研究,我决定使用 Kuberenetes。

但是,Spring Cloud Netflix 和 Kubernetes 都有一些分布式系统的解决方案:服务发现、负载均衡、容错等。

在这种情况下,使用 Netflix 库。 Kubernetes 似乎没有必要。

我读过thisthis。我认为 Spring Cloud Kubernetes 看起来像是一个变通解决方案。

所以我的问题是:

  1. 假设将启动一个新的 dockerized 微服务项目,我们决定使用 Kubernetes 进行编排。我们可以说 Netflix-OSS 绝对没有必要吗?
  2. 假设我们在同一个项目上工作了一段时间并使用了 Netflix-OSS,但我们想使用 Kubernetes。在这种情况下,如果这两个选项的努力没有太大不同,那么哪个是更好的解决方案:
    1. 使用 Spring Cloud Kubernetes
    2. 删除所有 Netflix 库。来自微服务并尝试转换纯 Kubernetes 解决方案。

【问题讨论】:

标签: docker kubernetes spring-cloud spring-cloud-netflix


【解决方案1】:

我认为您提到的Christian Posta 文章非常好。正如他所说,您可以使用开箱即用的 Kubernetes 解决方案来处理最常见的用例,用于发现 (kub dns)、负载平衡(使用服务)和边缘服务/网关(入口)。

正如 Christian 还指出的,如果您需要通过主动查询而不是知道要查找的内容来动态发现服务,那么 Spring Cloud Kubernetes 可能比直接使用 Kubernetes API 更好。如果您需要从配置更改中刷新您的应用程序并看到它快速更新而无需通过滚动更新(如果您将 configmap 作为卷安装则需要),那么 Spring cloud Kubernetes 配置客户端可能很有价值。如果您需要客户端负载平衡,功能区集成也可能很有价值。因此,您可以在没有 Spring Cloud Kubernetes 的情况下开始,并在您发现它有帮助时添加它的一部分。我认为最好将该项目视为添加额外的选项和便利,而不是 Kubernetes 原生解决方案的替代方案。

还值得注意的是,您可以将 Netflix 堆栈应用程序部署到 Kubernetes(包括使用 Zuul 和 eureka),这不一定有什么问题。它的优点是您可以在 Kubernetes 之外使用它,如果它是 Java 团队,它可能对您的特定团队更方便。主要缺点是 Netflix 堆栈与 Java 非常相关,而 Kubernetes 是语言中立的。

【讨论】:

    猜你喜欢
    • 2017-07-21
    • 2017-07-15
    • 2019-10-17
    • 1970-01-01
    • 2023-03-02
    • 2018-09-06
    • 2019-07-19
    • 1970-01-01
    • 2020-12-22
    相关资源
    最近更新 更多