注意:以下文档只适用于TOP接口,请谨慎使用!
首先,根据自己的业务场景选择业务类型。
然后填写应用基本信息,如果需要详细设置应用类型等,请展开高级设置
部署类型:如何选择“部署类型”?
应用类型:如何选择应用类型?
在创建好应用后,可以在应用列表点击“查看”
环境的解释
聚石塔会默认生成两种类型的环境,正式环境与测试环境。正式环境与测试环境的容器集群不能是相同的集群。建议手淘互动应用直接配置正式环境就可以。
一、填写环境基本信息
二、填写资源配置信息
三、配置环境
使用持续集成
为进一步提升用户的应用交付效率,聚石塔推出了持续集成能力;从用户的代码源开始,用户手动触发构建,系统自动帮助用户构建并产出代码包,构建完成后,用户直接提交发布单即可,免去了之前用户通过线下方式手工打包、然后上传代码包的过程;具体可参见:点击查看。
如果使用官方镜像,请在此界面直接选择容器镜像,并配置实例数量,实例所使用的CPU和内存。
手淘互动已经一般情况只需要关注正式环境以及正式环境系统配置即可。
部署根目录:如果镜像需要使用代码包部署,就需要配置部署根目录。官方镜像的部署根目录统一为/acs/code。
日志收集:如果需要通过SLS收集日志,使用方式参考:点击查看。
容器配置:
详细请参考:点击查看。
这些配置中需要重点关注的配置是端口映射和健康检查配置。健康检查配置会影响到应用发布过程,只有系统判断配置的健康检查成功之后才会认为是发布成功。
如果是首次发布,可以先跳过配置“优雅上下线”,先让服务发布起来;发布起来后,如果有“优雅上下线”的需求,再根据需要配置
容器"创建成功后,运行前"的任务,用于资源部署、环境准备等。需要注意:
a) 并不是在容器启动成功后才执行;
b) 如果钩子长时间未执行完成,则容器不会变为running状态,也就无法发布成功
c) 如果执行失败,则容器会被kill掉
a) 如果钩子长时间未执行完成,会在超过优雅上下线等待时间 terminationGracePeriodSeconds 后被kill
b) 如果执行失败,则容器会被kill掉
更详细精准的解释如下:
https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#overview。
需要注意的是:所有的部署配置变更,以及环境实例数量的变更,都需要重新提交发布单才能生效。
四、完成配置
下一步,请去创建发布单进行应用发布
对于手淘互动应用而言,暂时只需要关注正式环境的发布。如下图是示,需要注意选择正式环境的Tab。
接下来新建发布单。
发布批数:发布批数是指将指定的实例数量分为几批发布。例如,环境配置了4个实例,这里发布批数为2,则是将4个实例分为两批发布,每批发布2个实例。分批发布可以减少代码变更对线上服务的影响,并且可以达到一定的灰度测试效果。
暂停模式:第一批暂停是部署第一批后,该发布单暂停发布,点击了“恢复”之后才会继续,剩下的批次依次发布了;每批暂停是指每部署完一批都暂停,点“恢复”后开始下一批
发布单创建提交之后,可以看到发布单列表,状态为部署中。
点击发布单后的详情,可以进入到发布实例详情列表。
在这里可以看到发布过程中的实例列表,以及发布完成的实例列表,以及整个发布单的状态。
部署过程中,【查看日志】和【远程登录】是跟进部署进展的最好方式。
查看日志:
如果有一个实例的发布过程一直没有结束(左侧状态不是执行成功),通常是发布过程出现问题。有关发布异常的排查方法详见文档:点击查看。
如果之前选择了分批发布,当发布完一批之后,需要手动点击恢复按钮,继续后面批次的发布。
当所有实例已经发布完成,并且发布单处于已完成的状态,代表发布成功。
如果发布单一直没有结束,并且定位到了异常,可以手动执行关闭发布单,之后再在修改之后,重新提交发布单。
在发布成功后,就可以在环境管理下,看到自己发布环境的实例数量。
进一步进入【管理】按钮,可以看到启动成功的实例列表。
发布失败时,请查看错误信息提示
发布单成功发布,代表应用健康检查已经成功。如果还想进一步验证自己应用的可用性,可以通过远程登录的方式,登录到具体实例中(一个容器运行环境),执行linux命令( 比如curl localhost:8080)来确认自己应用已经真正发布成功。
远程登录的入口在“环境管理”->“资源管理”下,如下图所示。
点击远程登录以后,进入一个容器内的linux bash环境下。可以执行所有和ECS上相同的指令,验证应用是否可用。
由于同一个环境下的所有实例通常拥有相同的环境配置和代码,因此随便选择一个计算实例验证可用性即可。
应用发布成功后,需要做流量接入,才能访问到容器内的应用程序。
具体详见文档:流量接入。
应用发布成功后,运维请参考应用运维。