我是一种新的春天的云数据流的世界,而玩弄的框架内,我看到,如果我有一个流=“测试steram”与所谓的“应用” 1个应用。当我使用船长部署到kubernetes时,我看到它在kubernetes上创建名称为
的pod /部署和服务。test-stream-app-v1。
我的问题是为什么我们需要有V1在K8S服务/部署的名字呢?它采用弹簧云数据流在整个工作流程中扮演什么角色?
------跟进-----------
只是想确认几点,以确保我是在正确的轨道,了解流程
我的理解是,传统流(通过kafka主题绑定)服务(kubernetes上的对象)没有发挥重要作用。
滚动更新(红色/黑色)模式已在船长中以以下方式实现,而部署/服务中的版本控制则以以下方式发挥作用。
让我们假设APP-V1部署已经存在,并要求升级。船长创建app-v2部署并 等到它准备好。一旦准备就绪它破坏应用-V1
如果我的上述认识是正确的我有以下的跟进问题......
我看到了船长可以部署和打包(并且不必是传统的流)来使用。是较长期计划或船长只是为了工作弹簧云的数据流流?
对于非传统流软件包,如果一个软件包在一个组中具有多个应用程序(其余微服务),那么此版本控制模型将如何工作?我的意思是,当我想从其他微服务调用微服务时,我可能无法知道或不太理想地知道该应用的发行版本?
答案 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中的示例。
我希望这会有所帮助。