上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.5 版本变更
你可能已经注意到了,笔者的重点一直在已经部署好的系统上。下面笔者将修复上述系统中的一个关键问题:改变主页的字体。
很快你就会了解到Knative实例是不可变的。比如,你无法通过SSH登录到主页服务器,无法通过vi进行在线编辑[8]。不过这也引出了另外一个问题,如何将更改作用到云上。
Knative将应用的部署和升级封装为服务(Service)[9]。当服务变更时,Knative会采取行动使期望与状态保持同步。具体的流程如图1.10所示。
图1.10中响应的逻辑如下:
①更新服务之前如果用户访问主页,则看到的是v1版本的主页服务器返回的HTML页面。
②开发人员通过命令行工具kn更新服务。
③Knative启动v2版本的主页服务器。
④v2版本的主页服务器通过健康检查。
⑤Knative停止v1版本的主页服务器。
⑥服务更新之后,当你再次访问主页时,看到的是v2版本的主页服务器返回的HTML页面(字体变更后)。
蓝/绿部署是Knative的默认行为。当更新服务时,会在保证新版本正常(健康检查通过)的情况下切换负载,保证流量不会中断。
图1.10 更新主页的流程