for i in {1..10000}; do curl ; done
1.制作docker image push到repositories里。
2.Task definitions定义repositories里面的containers,可以选择多个container,这样一个instance上就有多个container。Task definitions定义后,可以revision更新生成新的+1 version。
3.Clusters里面定义什么方式开多少instances,VPC,IAM。
4.在新建的cluster上创建services,service里面可以选择task definition里面定义的container集合,可以选择ELB,可以决定Auto scaling group。
5.ELB上设定监听port:ELB,监听port:ELB对应target groups里注册instances和port:container,对应这些instances上映射到container的port:container。(tested)
6.到这里,ELB可以自动路由相应端口,ASG可以自动扩充和缩减instances。
7.在这个cluster上新建services,services上新建container 和其他container不同端口,则可以在原instance上新增container。
8.在这个cluster上新建tasks,会新开instances,并把新的task definition里面的containers部署到instances上面。注意端口不能和之前的container相同,不然逻辑上就已经出错了。
9.stop task 相应创建的instances不能自动停止,也不好跟其他的task创建的instances做区分,只能通过Container instance 的ID来区分,再通过instance ID去EC2 的控制台删除,再在ECS instances里删除。
10.Repositories tag 的部署对应Task Definitions如下:
0.2 8081 Hello world
0.3 8080 Morning world - taskdef6 container:flask-morning
0.4 8080 Happy world - taskdef9 container:flask-morning
11.平滑升级:首先一个task definition 只能有一个container,其次升级的那个container 在不同的task definition中必须有相同的名字。
升级:task def 6 -> 9 升级了一个只有一个container的ecs service,然后update,就可以升级,因为公司网络问题,暂时不知道是否平滑。
阅读(2750) | 评论(0) | 转发(0) |