kubernetes下的Nginx加Tomcat三部曲之三:实战扩容和升级
2018-02-04 00:28
489 查看
本章是《kubernetes下的Nginx加Tomcat三部曲系列》的终篇,今天咱们一起在kubernetes环境对下图中tomcat的数量进行调整,再修改tomcat中web工程的源码,并将现有的tomcat的pod全部替换成新代码构建的结果:
《kubernetes下的Nginx加Tomcat三部曲之二:细说开发》;
验证扩容结果;
修改web工程源码;
构建web工程的新镜像;
让kubernetes的机器用上web工程的Docker镜像
在线更新Tomcat的pod的镜像;
验证更新结果;
Nginx&Tomcat方式和SpringCloud方式扩容对比;
master的IP地址:192.168.119.148;
node1的IP地址:192.168.119.153;
如上所示,目前是三个tomcat的pod;
执行扩容命令kubectl scale deployment tomcathost –replicas=5,将tomcat的pod从3个增加到5个,如下:
tomcat的pod已经增加到5个了,创建时间都只有18秒;
去dashboard页面看以下tomcathost这个deployment的详情,可以看到tomcat数量已经上升到5个了,扩容成功:
点击上图红框1,再点击tomcathost这个服务,可以看到上图中的详情;
上图红框2中是5个tomcat的pod的容器IP地址;
点击上图红框3中的每个容器名,可以查看容器详情;
上图红框4显示了刚才的扩容事件;
扩容实战就到这里,接下来我们修改web工程的源码,验证在线升级的能力;
这个git项目中有多个目录,本次的web工程源码放在k8stomcatdemo,如下图红框所示:
打开工程中的ServerInfo.java,web接口的源码如下:
修改返回的字符串内容,在前面加上”From new version,”:
在pom.xml所在目录执行
往期章节
《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协议 |
打开工程中的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所在目录执行
相关文章推荐
- kubernetes下的Nginx加Tomcat三部曲之一:极速体验
- kubernetes下的Nginx加Tomcat三部曲之二:细说开发
- 实战项目memcached+tomcat+session+nginx在工作中的应用和配置
- 负载均衡环境搭建实战之nginx和tomcat
- Puppet单机实战之Nginx代理Tomcat
- 【APP & Web架构】企业web高可用集群实战之Nginx+nginx_ajp实现Tomcat负载均衡集群+Session 推荐
- 实战 Centos6.5下 Nginx-1.6.0 +keepalived-1.2.12 +tomcat-7.0.54 实现高可用+负载均衡
- 实战docker,构建nginx反向代理tomcat,学习link和docker-compose
- 实战配置nginx+tomcat+memcached
- 平台升级至nginx+Tomcat9.0.1(Spring5.0.1+velocity2.0+quartz-2.3.0)+redis集群
- Kubernetes下web服务的性能测试三部曲之三:横向扩容
- Ansible实战之Nginx代理Tomcat主机架构
- 运维笔记35-web应用实战 (nginx+memcached+tomcat)
- Nginx+Memcached+Tomcat session会话共享实战
- Kubernetes下web服务的性能测试三部曲之二:纵向扩容
- nginx反向代理到tomcat,并在request中获取客户端请求ip
- Nginx与Tomcat负载均衡
- nginx+keepalived+tomcat+memcached服务器集群搭建
- Apache/Tomcat/JBOSS/Nginx(2)
- JAVA企业级应用Tomcat实战