《kubernetes-1.8.0》14-examples-javaweb-tomcat-sidecar

本文介绍了在Kubernetes 1.8.0环境中,Tomcat部署Java Web应用的两种方式,包括加载本地WAR包和将WAR包内置到镜像中。重点讲解了Tomcat Sidecar模式,通过共享Volume实现在Pod内的容器间同步WAR包,实现应用版本与中间件管理的分离。同时提供了官方示例的详细解析和应用实践。
摘要由CSDN通过智能技术生成

《kubernetes-1.8.0》14-examples-javaweb-tomcat-sidecar

《kubernetes 1.8.0 测试环境安装部署》

时间:2017-12-04

一、tomcat在k8s中的几种部署方式:

一般而言tomcat在k8s中部署应用有以下两种方式:

  • 加载本地宿主机上war包的方式:加载tomcat镜像,并在yaml文件中定义hostPathvolume,在镜像启动时,预先将本地宿主机上的war包加载到容器中的文件系统,后续启动tomcat进程加载该war包。这种方式的几个问题很突出,首先要保证群集中有可能启动该tomcat容器的node节点上都必须存在war包,否则镜像启动加载将找不到对应的war包(可以采用共享文件系统glusterfs,nfs等等,结合上亲和性部署降低负责性),其次更新复杂,一致性维护困难,需要维护多个node上的war包,不能随镜像自动升级。
  • 将war包做到tomcat镜像中去:找一个tomcat版本,写dockerfile,将war包打包进去。但这样做就将中间件和应用打包在一起,导致镜像过大,无法拆分,后续升级不方便的因素。

二、tomcat sidecar mode:

kubernetes官网的example给了一个解决方案叫做 sidecar mode

简单说明一下:

这种模式将中间件版本和war包分离,放在一个pod里的两个不同容器,充分利用pod内container之间的volume及网络的共享实现war包的加载:

As you can see, user can create a sample:v2 container as sidecar to “provide” war file to Tomcat by copying it to the shared emptyDir volume. And Pod will make sure the two containers compose an “atomic” scheduling unit, which is perfect for this case. Thus, your application version management will be totally separated from web server management.

如你所见,用户能够创建一个sample:v2的容器,作为sidecar通过拷贝war包到共享的emptyDir volume方式提供war包给tomcat。pod将确定两个容器分别为原子级别的调度单元,很适合这种场景。因此,你的应用版本管理与web

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值