章节介绍
在生产环境中,常用到Nginx加Tomcat的部署方式,如下图:
原文地址:http://blog.csdn.net/boling_cavalry/article/details/79215453
从本章开始,我们来实战kubernetes下部署上述Nginx和Tomcat服务,并开发spring boot的web应用来验证环境,整个实战分为以下三篇内容:
1. 极速体验kubernetes下的nginx加tocmat;
2. 细说nginx和tomcat镜像的制作;
3. 实战tomcat server的在线扩容和应用升级;
实战工程介绍
本次实战创建的Pod如下:
1. 一个Nginx的Pod,负责转发web请求到Tomcat;
2. 三个Tomcat的Pod,上面部署了web应用,收到Nginx转发的请求后,返回的内容是当前Pod的IP地址;
准备kubernetes环境
本次实战需要可用的kubernetes环境,您可以参考以下文章进行快速搭建:
1. 《rancher下的kubernetes之一:构建标准化vmware镜像》;
2. 《rancher下的kubernetes之二:安装rancher和kubernetes》;
如何执行kubectl命令
实战中,需要在一台ubuntu电脑上安装kubectl工具,然后连接到kubernetes环境执行各种命令,kubectl工具的安装步骤可以参照这篇文章:《rancher下的kubernetes之三:在linux上安装kubectl工具》;
脚本文件下载
本次体验所需的deployment和service资源是通过脚本创建的,这个脚本可以通过以下两种方式中的任意一种下载:
1. CSDN下载(无法设置免费下载,只能委屈您用掉两个积分了):http://download.csdn.net/download/boling_cavalry/10235034
2. 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项目中有多个目录,本次所需的资源放在k8s_nginx_tomcat_resource,如下图红框所示:
下到的k8stomcatcluster20180201.tar是个压缩包,复制到可以执行kubectl命令的ubuntu电脑上,然后解压开,是个名为k8stomcatcluster的文件夹;
执行脚本文件下载
- 进入解压好的k8stomcatcluster目录;
- 执行命令chmod a+x *.sh,给shell脚本赋可执行权限;
- 执行命令start_all.sh,创建本次实战的资源,页面输出如下信息:
root@maven:/usr/local/work/k8s/k8stomcatcluster# ./start_all.sh
deployment "tomcathost" created
service "tomcathost" created
deployment "ng" created
service "ng" created
nginx and tomcat running now
验证服务已经启动
先去kubernetes的管理页面看一下服务是否启动,如下图,名为ng、tomcathost的两个服务都已经启动:
点击tomcathost服务,看到详情信息,里面有pod的情况,如下图:
上图中显示tomcathost是在node1创建的,我的node1机器的IP地址是192.168.119.153,所以在浏览器输入:
http://192.168.119.153:30006/getserverinfo在浏览器看到的信息如下图所示,机器Tomcat所在机器的IP地址和当前时间:
多次刷新页面,能看到这三个IP地址:10.42.38.128、10.42.184.35、10.42.127.135,这就是三个Tomcat Pod的地址,Pod信息如下图红框所示:
执行k8stomcatcluster目录下的stop_all.sh脚本,可以将前面创建的所有service,deployment资源删除;
至此,我们已经在kubernetes下简单体验了Nginx加Tomcat的网站结构,接下来的章节,我们一起来细看如何在kubernetes下创建整个环境;