容器管理平台会对容器做更高的抽象,容器不再是单打独斗,而且组成集团军共同战斗。
多个容器组成一个 Pod,这几个容器亲如兄弟,彼此关联性很强,能够通过 localhost访问彼此。有的任务一帮兄弟还扛不住,就需要多个 Pod合力完成,这个由 Replication Controller进行控制,可以将一个 Pod复制 N个副本,同时承载任务,众人拾柴火焰高。
N个 Pod如果对外散兵作战,一是无法合力,二是给人很乱的感觉,因而需要有一个老大作为代言人,将大家团结起来,一致对外,这就是 Service。老大对外提供统一的虚拟 IP和端口,并将这个 IP和服务名关联起来,访问服务名则自动映射为虚拟 IP。老大的意思就是如果外面要访问我这个团队,喊一声名字就可以,例如”雷锋班,帮敬老院打扫卫生!”,你不用管雷锋班的哪个人去打扫卫生,每个人打扫哪一部分,班长会统一分配。
最上层通过 namespace分隔完全隔离的环境,例如生产环境,测试环境,开发环境等。就像军队分华北野战军,东北野战军一样。野战军立正,出发,部署一个 Tomcat的 Java应用。
有个 blog的 war,可以从这里下载
http://demo.nos-eastchina1.126.net/springblog.war
还需要一个 jar,从这里下载
http://demo.nos-eastchina1.126.net/spring-instrument-tomcat-4.2.2.RELEASE.jar
登陆网易蜂巢,点击对象存储,创建桶。上传 springblog.war到这个桶里面。
对于 spring,还需要 spring-instrument-tomcat-4.2.2.RELEASE.jar 放到这个桶里面。
由于这是基于 Tomcat的,所以我们使用 hub.c.163.com/library/tomcat:8.0-jre7 作为基础镜像。这个镜像可以在镜像仓库里面搜到。
通过 ADD命令,将对象存储中的 war,jar放入容器镜像中,并且修改权限。注意 URL地址不是本例子中的地址,而是您自己的地址,可以在对象存储界面上通过复制地址得到这个地址。
将 catalina.sh run作为 ENTRYPOINT。
在镜像仓库里面,创建镜像仓库,起个名字
点击镜像仓库,点击构建镜像
在本地选择写好的 Dockerfile开始构建。
构建成功则显示如下:
在服务管理中,点击创建服务。
填写名称 testtomcat,选择无状态
镜像选择前面构建的镜像。
选择默认的规格,端口映射为 8080映射为 8080。
点击立即创建。等待创建成功。
在负载均衡页面,点击创建负载均衡,取名 testtomcat。
点击创建监听。
取名 testtomcat,监听端口 8080,映射为 testtomcat服务的 8080.
点击立即创建。
使用负载均衡的 IP地址加上 8080端口访问 tomcat。
使用 user/user登陆,创建一个博客。