企业应用快速跨向容器时代的正确姿势(下)

社区编辑2018-05-18 13:20

本文连接上文:企业应用快速跨向容器时代的正确姿势(上)


容器管理平台初体验

 

 
容器管理平台会对容器做更高的抽象,容器不再是单打独斗,而且组成集团军共同战斗。
 
多个容器组成一个 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

1.将编译结果上传到对象存储

登陆网易蜂巢,点击对象存储,创建桶。上传 springblog.war到这个桶里面。
对于 spring,还需要 spring-instrument-tomcat-4.2.2.RELEASE.jar 放到这个桶里面。
 

 

2.写一个 Dockerfile

 

 
由于这是基于 Tomcat的,所以我们使用 hub.c.163.com/library/tomcat:8.0-jre7 作为基础镜像。这个镜像可以在镜像仓库里面搜到。
 


 

 
通过 ADD命令,将对象存储中的 war,jar放入容器镜像中,并且修改权限。注意 URL地址不是本例子中的地址,而是您自己的地址,可以在对象存储界面上通过复制地址得到这个地址。
 
将 catalina.sh run作为 ENTRYPOINT。

3.构建一个镜像

在镜像仓库里面,创建镜像仓库,起个名字
 

 
点击镜像仓库,点击构建镜像
 


 

 
在本地选择写好的 Dockerfile开始构建。
 
构建成功则显示如下:
 


 

 

4.创建 tomcat服务

 

 
在服务管理中,点击创建服务。
 

 
填写名称 testtomcat,选择无状态
 

 
镜像选择前面构建的镜像。
 

 
选择默认的规格,端口映射为 8080映射为 8080。
 
点击立即创建。等待创建成功。

5.创建负载均衡器

 

 
在负载均衡页面,点击创建负载均衡,取名 testtomcat。
 

 
点击创建监听。
 
取名 testtomcat,监听端口 8080,映射为 testtomcat服务的 8080.
 
点击立即创建。

6.访问页面

使用负载均衡的 IP地址加上 8080端口访问 tomcat。
 

 
使用 user/user登陆,创建一个博客。