Knative最佳实践
上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的默认行为。当更新服务时,会在保证新版本正常(健康检查通过)的情况下切换负载,保证流量不会中断。

img

图1.10 更新主页的流程