在阿里,我们如何管理测试环境(16)

...


kind: Service

...

注意其中的order-service服务 , 它在当前特性环境Namespace中可以使用局部域名order-service.svc.cluster访问 , 请求会路由到它配置的全局域名order-service.pub-base-env.svc.cluster , 即公共基础环境的同名服务上处理 。 处于该Namespace中的其它服务感知不到这个差异 , 而是会觉得这个Namespace中部署了所有相关的服务 。

若在特性的开发过程中 , 开发者对order-service服务也进行了修改 , 此时应该将修改过的服务版本添加到环境里来 。 只需修改order-service的Service对象属性(使用Kubernetes的patch操作) , 将其改为ClusterIP类型 , 同时在当前Namespace中创建一个Deployment对象与之关联即可 。

由于修改Service对象只对相应Namespace(即相应的特性环境)内的服务有效 , 无法影响从公共基础环境回调的请求 , 因此路由是单向的 。 在这种情况下 , 特性环境中必须包含待测调用链路的入口服务和包含回调操作的服务 。 例如待测的特性是由界面操作发起的 , 提供用户界面的服务就是入口服务 。 即使该服务没有修改 , 也应该在特性环境中部署它的主线版本 。

推荐阅读