1)进入应用概览页点击 应用发布;或者应用列表页选择对应的应用点击 发布。首次部署需要先进行部署配置。
2)普通用户推荐使用一键生成和官方镜像进行配置; 对于对机器运维有经验用户可以使用 高级设置,如果要使用自定义镜像的请在容器镜像服务上传自己的镜像,参考文档。
一键生成配置:实例数量请设置正整数,建议最少保证2个实例节点,具体由用户自行决定,CPU:单位核数,内存单位MB,请按照自己的需求设置,不能大于整个集群机器水位。(CPU、内存设置为0表示不预分配资源)
注意:CPU和内存的选择不能够超过集群内ECS规格的最大值,要保留一定余量。比如4核8G的ECS最大能够部署约4核7G的容器总量。
高级设置说明
填写项 |
说明 |
环境类型 |
支持正式环节和测试环节。 |
部署根目录 |
应用程序部署路径,可以自行设置。 |
实例数量 |
指定要部署的容器数量(不是你的机器数量,而是你要部署几个容器,建议两个以上)。 |
CPU&内存 |
指定的是单个容器的资源使用。 |
端口映射 |
指明容器需要暴露的端口(如tomcat镜像的8080端口),如果后续需要配置“流量接入”,这里必须指定流量接入对应的端口,否则流量接入将不可用。 |
环境变量 |
如果是选择官方镜像、一键生成配置会默认生成环境变量,比如java启动参数设置,可按照自己的需求进行修改,注意容器内存需要大于JVM堆内存大小,否则会导致启动失败;自定义镜像请根据自己的镜像填写,环境变量会以docker env的形式传入到容器中。 |
文件挂载 |
所填内容将以文件的形式挂载到容器内的指定目录下。注意:默认只有.sh结尾的文件具有可执行权限,其他文件默认为读写权限。 |
目录挂载 |
建议将日志,或者容器内的数据目录(如临时文件存储)以目录挂载的形式挂载到宿主机上,保证容器所占用的磁盘空间不会被占满,容器占用磁盘空间过大会导致容器直接挂掉。 |
健康检查配置 |
目前支持http和shell脚本检测应用健康状态,请一定保证设置正确,否则会导致容器启动失败。SpringBoot2默认设置值为 http://127.0.0.1:8081/actuator/health。 |
选择需要的环境,可以通过新建发布单、上传代码包进行发布,支持分批发布功能。
1)发布管理:显示目前正在进行的发布单。 程序包管理:记录已经进行发布的程序包,可以快速发布某个程序包,达到回滚的目的。
2)点击新建发布单,通过上传代码包进行发布。
3)查看具体的发布单详情
默认会创建两个默认部署环境管理:正式环境和测试环境(依赖新建集群时,创建的集群环境),根据需要使用也可以创建新的环境。
发布完成后在环境管理页面可以查看已经部署成功的应用实例数,资源管理页面内可以看到具体pod节点的信息。
1)点击部署配置,可以查看和修改该应用的具体部署逻辑。
2)编辑配置(根据需要使用)
所有的部署配置变更,以及环境实例数量的变更,都需要重新提交发布单才能生效。
容器配置 |
说明 |
端口映射 |
指明容器需要暴露的端口(如tomcat镜像的8080端口),如果后续需要配置“流量接入”,这里必须指定流量接入对应的端口,否则流量接入将不可用。 |
环境变量 |
如果是选择官方镜像默认生成环境变量,比如java启动参数设置,可按照自己的需求进行修改,注意容器内存需要大于JVM堆内存大小,否则会导致启动失败;自定义镜像请根据自己的镜像填写,环境变量会以docker env的形式传入到容器中。 |
文件挂载 |
所填内容将以文件的形式挂载到容器内的指定目录下。注意:默认只有.sh结尾的文件具有可执行权限,其他文件默认为读写权限。 |
目录挂载 |
建议将日志,或者容器内的数据目录(如临时文件存储)以目录挂载的形式挂载到宿主机上,保证容器所占用的磁盘空间不会被占满,容器占用磁盘空间过大会导致容器直接挂掉。 |
健康检查配置 |
目前支持http和shell脚本检测应用健康状态,请一定保证设置正确,否则会导致容器启动失败。SpringBoot2默认设置值为 http://127.0.0.1:8081/actuator/health。 |
1)选择SLB,点击新建SLB接入,前提需要在该集群所在的专有网络VPC下,购买私网SLB。
2)新建SLB接入
负载均衡协议,一般建议选择http协议。
环境,根据需要选择环境。
内外网类型,选择内网环境(小程序业务都使用内网访问+私网SLB)
负载均衡,需要在该环境所在集群专有网络下购买SLB,才能选择到对应SLB。(购买私网SLB请注意规格对应的连接数和查询数,免费版只能支持每秒1000次查询)
监听端口,一般使用80,如果SLB已经被占用80端口,可以使用其他端口,对ews域名的绑定没有影响。
RS端口,应用内监听端口,比如,用基础的tomcat就填写8080,根据实际应用情况设置端口。
3)接入EWS域名 (目前已经停止使用)
选择 手淘H5接入 标签,目前只有手淘互动类型应用可以有此功能。 点击 新建手淘H5接入 进入创建页面。
Appkey,只有无线互动类型的应用appkey可以进行绑定;请正确选择,会影响后续ews域名审核。
环境 和SLB接入,只能选择在流量接入中创建的对应内网环境SLB才可以被选择。
使用场景描述需要详细说明业务场景,提交以后会进入运营小二审核流程,需要审核通过以后才能使用。
查看统一接入状态。
状态列表:
状态 |
说明 |
审批中 |
EWS域名审批流程中。 |
审批拒绝 |
EWS域名审批被拒绝,详情请看拒绝原因。 |
配置中 |
网络流量转发链路配置中。 |
配置失败 |
网络流量转发链路配置失败。 |
已生效 |
EWS域名已生效。 |
容器健康检查代表了容器的健康状态,当容器平台判断容器健康检查失败后,会自动重启容器,直到健康检查成功为止。
容器重启次数可以在“环境管理->管理资源”看到。
因此,配置正确的健康检查配置至关重要。
容器健康检查配置入口如上图所示,主要有两种健康检查类型:
http get:系统会定时通过http请求用户配置的URL,注意URL不能包含host字段。例如URL配置为“/checkpreload.htm”,端口配置为"8080",则系统会定时执行检查"curl http://localhost:8080/checkpreload.htm",并判断http的返回码是否为200。若http get返回200,则认为健康检查成功,反之认为健康检查失败。
shell script:系统会定时执行脚本内容,若脚本执行的返回值为0(类似 exit 0)则认为健康检查成功,否则认为失败。
在部署单详情页可以看到当前部署实例的日志。
点击查看日志可以看到当前容器的启动日志。
主要关注两个类型的日志:
1) [Event]类日志,如下图所示。尤其注意Event日志中的Warning,通常是导致部署不成功的原因所在。如下图所示就是健康检查配置错误导致的启动不成功。
2) 应用自身的启动日志。这里根据每个应用的不同,需要开发者自行排查。
请检查:应用的健康检查配置是否正确;
如果应用健康检查配置没有问题,就是应用自身不可用了,才会导致容器重启。(例如java堆内存泄漏导致java进程被cgroup干掉)
可以在“环境管理->管理资源->远程登录”登录到对应的应用实例内,查看应用日志。
如果选择了官方镜像,官方镜像的应用日志通常在容器内/acs/log/目录下。
接入容器集群后,ECS上会额外部署一些管控使用的容器,因此会占用少量资源。但是总体占用资源并不会太大,如果出现容器可使用规格和ECS规格差距太大的情况,请联系技术支持同学。
请确认几个事情:
1)所购买的SLB所属VPC和容器集群所属VPC是否相同(容器集群所属VPC在“运维中心”可以看到)。
2) 环境是否选择正确。通常环境会关联容器集群,正式环境和测试环境的集群不同,会影响到所属VPC,进而影响SLB的选择。
3) 确认内外网类型是否选择正确。内网访问只能选择购买的私网SLB,外网访问对应选择外网SLB。
4)不能使用集群自身使用的SLB。集群创建时会默认创建两个SLB,是给集群自身使用的,做流量接入需要另行购买。
点击此处查看创建集群。
购买ecs的时候可以不购买带宽,公网入方向的话可以通过公网SLB来,出方向通过NAT网关和弹性IP来解决。
这个程序包管理就是使用哪一个代码包发布,如果代码包有更新的话就是在发布管理里新建一个发布单。
如果提示Insufficient cpu, 则说明集群cpu核数不足以支撑本次发布; 如果提示Insufficient memory, 则说明集群内存资源不足以支撑本次发布;
具体计算规则见创建集群文档常见问题的第11条。