您的位置:首页 > 运维架构 > Tomcat

kubernetes下的Nginx加Tomcat三部曲之三:实战扩容和升级

2018-02-04 00:28 489 查看
本章是《kubernetes下的Nginx加Tomcat三部曲系列》的终篇,今天咱们一起在kubernetes环境对下图中tomcat的数量进行调整,再修改tomcat中web工程的源码,并将现有的tomcat的pod全部替换成新代码构建的结果:



往期章节

《kubernetes下的Nginx加Tomcat三部曲之一:极速体验》

《kubernetes下的Nginx加Tomcat三部曲之二:细说开发》

列举步骤

在线扩容Tomcat;

验证扩容结果;

修改web工程源码;

构建web工程的新镜像;

让kubernetes的机器用上web工程的Docker镜像

在线更新Tomcat的pod的镜像;

验证更新结果;

Nginx&Tomcat方式和SpringCloud方式扩容对比;

kubernetes环境基本情况

一个master,一个node;

master的IP地址:192.168.119.148;

node1的IP地址:192.168.119.153;

在线扩容Tomcat

在装好kubectl工具的机器上执行kubectl get pods,查看当前pod情况:

root@master:~# kubectl get pods
NAME                          READY     STATUS    RESTARTS   AGE
ng-59b887b8bc-jzcv5           1/1       Running   3          2d
tomcathost-7f68566795-8pl29   1/1       Running   3          2d
tomcathost-7f68566795-mvg5f   1/1       Running   3          2d
tomcathost-7f68566795-trscg   1/1       Running   3          2d


如上所示,目前是三个tomcat的pod;

执行扩容命令kubectl scale deployment tomcathost –replicas=5,将tomcat的pod从3个增加到5个,如下:

root@master:~# kubectl scale deployment tomcathost --replicas=5
deployment "tomcathost" scaled
root@master:~# kubectl get pods
NAME                          READY     STATUS    RESTARTS   AGE
ng-59b887b8bc-jzcv5           1/1       Running   3          2d
tomcathost-7f68566795-8kf76   1/1       Running   0          18s
tomcathost-7f68566795-8pl29   1/1       Running   3          2d
tomcathost-7f68566795-mvg5f   1/1       Running   3          2d
tomcathost-7f68566795-tp5xp   1/1       Running   0          18s
tomcathost-7f68566795-trscg   1/1       Running   3          2d


tomcat的pod已经增加到5个了,创建时间都只有18秒;

去dashboard页面看以下tomcathost这个deployment的详情,可以看到tomcat数量已经上升到5个了,扩容成功:



点击上图红框1,再点击tomcathost这个服务,可以看到上图中的详情;

上图红框2中是5个tomcat的pod的容器IP地址;

点击上图红框3中的每个容器名,可以查看容器详情;

上图红框4显示了刚才的扩容事件;

验证扩容结果

nginx服务所在的node机器的IP地址是192.168.119.153,所以在浏览器上访问:http://192.168.119.153:30006/getserverinfo,反复刷新此页面,看到返回的IP地址在不断的更新,都是tomcat所在pod的IP地址,5个都会出现,如下图:



扩容实战就到这里,接下来我们修改web工程的源码,验证在线升级的能力;

修改web工程源码

tomcat上运行的web工程源码,可以GitHub下载,地址和链接信息如下表所示:

名称链接备注
项目主页https://github.com/zq2599/blog_demos该项目在GitHub上的主页
git仓库地址(https)https://github.com/zq2599/blog_demos.git该项目源码的仓库地址,https协议
git仓库地址(ssh)git@github.com:zq2599/blog_demos.git该项目源码的仓库地址,ssh协议
这个git项目中有多个目录,本次的web工程源码放在k8stomcatdemo,如下图红框所示:



打开工程中的ServerInfo.java,web接口的源码如下:

@RequestMapping(value = "/getserverinfo", method = RequestMethod.GET)
public String getUserInfoWithRequestParam(){
return String.format("server : %s, time : %s", getIPAddr(), new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}


修改返回的字符串内容,在前面加上”From new version,”:

@RequestMapping(value = "/getserverinfo", method = RequestMethod.GET)
public String getUserInfoWithRequestParam(){
return String.format("From new version, server : %s, time : %s", getIPAddr(), new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}


构建web工程的新镜像

修改pom.xml中的工程版本,从0.0.3,如下所示:

<groupId>com.bolingcavalry</groupId>
<artifactId>k8stomcatdemo</artifactId>
<version>0.0.3</version>
<packaging>jar</packaging>
<name>k8stomcatdemo</name>


在pom.xml所在目录执行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: