目录
简述
之前通过docker部署了Javaweb项目,现在将项目移植到k8s平台
**主要分为五个部分
1.要以镜像作为交付对象,不再以jar包、war包形式
2.在docker可以直接上传镜像运行容器,在k8s需要编写yaml文件,通过控制器去管理镜像
3.进行一些数据的挂载
4.部署完成后要将容器或pod暴露出去
5.对应用pod进行一下日志的采集和监控,方便做数据分析、历史资源利用率检查和告警等
**
一、制作镜像(Master节点)
1.概念
主要是基础镜像制作,服务镜像制作,以及项目镜像制作,将制作好的镜像打包发布到仓库中或者留在本地
2.操作
主要使用Dockerfile
之前需准备好打包好的war包,数据库等,放在同一目录下,进行dockerfile
1.vi Dockerfile
FROM tomcat //这里可以使用本地进行镜像或者进行远程仓库拉取
MAINTAINER 作者名
COPY *.war /usr/local/tomcat/webapps //将war包放到tomcat webapps下
2.docker build . //生成镜像
3.docker tag //打标签
4.docker login --username=阿里用户名 registry.cn-beijing.aliyuncs.com
docker tag [ImageId] registry.cn-beijing.aliyuncs.com/空间名/仓库名:[镜像版本号]
docker push registry.cn-beijing.aliyuncs.com/空间名/仓库名:[镜像版本号]
// 发布到远程仓库 这里使用的阿里云进行镜像仓库 也可以使用dockerhub
注意这里可以之间在node节点上拉取所需镜像
图
二、创建控制器管理pod
用k8s控制器去部署,一般选择有
Deployment:无状态部署
StatefulSet:有状态部署
DaemonSet:守护进程部署
Job & CronJob:批处理
这里选择Deployment 无状态部署
1.pod
1.1概念
最小的部署单元
一组容器的集合
一个Pod中的容器共享网络命名空间和存储
Pod是短暂的
1.2作用
两个应用直接发送文件交互
两个应用需要通过127.0.0.1或者socket通信
两个应用需要发生频发的调用
1.3实现机制
共享网络
多个容器在一个网络命名空间里<