当前位置: 首页 > 知识库问答 >
问题:

将码头化的Spring Cloud Netflix项目部署到Kubernetes

澹台华翰
2023-03-14

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

(现在正在本地工作。)

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

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

但是,Spring CloudNetflix和库伯内特斯都有一些分布式系统的解决方案:服务发现、负载平衡、容错等。

在这种情况下,使用Netflix库。库伯内特斯似乎没有必要。

我读了这个和这个。我认为Spring Cloud Kubernetes看起来是一个变通的解决方案。

所以我的问题是:

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

共有1个答案

吴缪文
2023-03-14

我认为你提到的克里斯蒂安·波斯塔的文章很好。正如他所说,您可以使用开箱即用的Kubernetes发现解决方案(kub-dns)、负载平衡(使用服务)和边缘服务/网关(Ingress)来处理最常见的用例。

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

同样值得注意的是,你可以在Kubernetes上部署一个网飞堆栈应用程序(包括使用Zuul和eureka ),这不一定有什么问题。它的优点是你可以在Kubernetes之外使用它,如果它是Java团队,对你的特定团队来说可能更方便。主要的缺点是网飞栈非常依赖于Java,而Kubernetes是语言中立的。

 类似资料:
  • 2. 项目部署 本章主要介绍如何部署Camel。 首先,介绍Vagrant这个虚拟机工具。借助Vagrant,我们可以保证本地开发及测试环境与线上环境的一致。 随后介绍slb-admin的部署。管理端本地也要安装Dengine,用以测试Nginx配置文件的语法是否正确。此外,还需要部署数据库:MySQL及MongoDB。 最后介绍Nginx服务器的部署。我们可以根据具体需求部署Nginx集群,每台

  • 描述 本文档提供了 3 种部署方式,对应 Jboot 里的 3 种打包方式。 通过 脚本 运行 在 打包方式 文档中,我们可以把项目打包成一个 .zip 的压缩包项目,里面带有 jboot.sh (和 jboot.bat) 执行脚本, 只需要我们解压 .zip 压缩文件,通过如下命令就可以对 jboot 项目进行启动和停止。 # 启动 ./jboot.sh start # 停止 ./jboot.

  • 部署中,你可以先构建打包生成环境代码,再启动服务。因此,构建和启动分为下面两条命令: next build next start 例如,使用now去部署package.json配置文件如下: { "name": "my-app", "dependencies": { "next": "latest" }, "scripts": { "dev": "next",

  • 我的网站有两个服务器——本地(ubuntu桌面上的laravel homestead)和公共(带有php7的ubuntu服务器)。我已经有了一些简单的网站,它们在我的公共服务器上运行良好,并且可以在网上看到。我在我的laravel Homestead本地服务器上创建了laravel 5.2项目,现在我想将其移动到我的公共服务器上。我压缩完整的项目文件夹(tar.gz),并使用filezilla将其

  • 我在Laravel voyager上做了一个测试项目。我想把它发布到服务器上。 我试试这个: 初始化 git远程添加原点 *** git检出大师 git拉 添加. env 添加. htaccess php工匠迁移--force 在ProviderRepository.php第208行中:未找到类“TCG\Voyager\VoyagerServiceProvider” 怎么做? 更新: php ar

  • 我刚刚在我的Windows Tomcat上安装了Nexus2.7.1,并启动运行。我试图使用“maven deploy”命令将一个快照jar部署到Nexus快照repo中,但收到以下错误。使用Maven 3.0.5版。请引导。

  • 我在科尔达做了一个简单的项目。我的项目有4个节点,包括公证人和客户文件夹中的SpringBoot API。我不知道如何将我的项目部署到服务器上。我看过Corda文档,但那篇教程只针对一个节点。所以,我的问题是如何在服务器上部署具有多个节点的Corda项目,以及SpringBoot API。有人能帮我吗?

  • 所以这是我的问题。我正在努力将一个简单的maven应用程序部署到Glassfish服务器中,只是为了检查我的配置是否正确,以便进一步开发。我使用的是NetBeans IDE,但由于它提供的控制台日志很小,几乎无法读取,所以我尝试使用系统终端(我使用的是Fedora)。 我试图部署的应用程序由一个无状态EJB bean(名为DziekanatBean,当前不执行任何操作)和一个Maven POM项目