理性后面追加版本,如服务/部署名称与春云队长K8S

时间:2019-01-31 20:07:48

标签: spring-cloud-dataflow spring-cloud-skipper

我是一种新的春天的云数据流的世界,而玩弄的框架内,我看到,如果我有一个流=“测试steram”与所谓的“应用” 1个应用。当我使用船长部署到kubernetes时,我看到它在kubernetes上创建名称为

的pod /部署和服务。

test-stream-app-v1。

我的问题是为什么我们需要有V1在K8S服务/部署的名字呢?它采用弹簧云数据流在整个工作流程中扮演什么角色?

------跟进-----------

只是想确认几点,以确保我是在正确的轨道,了解流程

  • 我的理解是,传统流(通过kafka主题绑定)服务(kubernetes上的对象)没有发挥重要作用。

  • 滚动更新(红色/黑色)模式已在船长中以以下方式实现,而部署/服务中的版本控制则以以下方式发挥作用。

    让我们假设APP-V1部署已经存在,并要求升级。船长创建app-v2部署并 等到它准备好。一旦准备就绪它破坏应用-V1

如果我的上述认识是正确的我有以下的跟进问题......

  1. 我看到了船长可以部署和打包(并且不必是传统的流)来使用。是较长期计划或船长只是为了工作弹簧云的数据流流?

  2. 对于非传统流软件包,如果一个软件包在一个组中具有多个应用程序(其余微服务),那么此版本控制模型将如何工作?我的意思是,当我想从其他微服务调用微服务时,我可能无法知道或不太理想地知道该应用的发行版本?

1 个答案:

答案 0 :(得分:0)

@Anand。恭喜第一个帖子!

命名约定的依据是,如果Skipper与SCDF一起使用,则每个流应用程序都是“版本化的”。当作为用户滚动点播应用程序版本或按需或通过CI / CD自动化对应用程序特定的属性进行滚动升级和滚动降级时,该版本会受到影响。

这对于连续交付和连续部署工作流程非常重要,我们分别通过stream update ..stream rollback ..等命令在SCDF中提供本机选项。对于这些操作中的任何一个,应用程序都将在K8s中滚动更新,并且每个操作都会使应用程序名称中的数字增加。在您的示例中,您将看到它们为test-stream-app-v1,`test-stream-app-v2等。

将所有历史版本集中在一个中心位置(即Skipper的数据库),您就可以通过SCDF中的stream history..stream manifest ..命令与它们进行交互。

要了解所有这些信息,请观看demo-webinar(开始于〜41.25),并查看reference guide中的示例。

我希望这会有所帮助。