目录
环境准备
1、k8s集群
2、harbor远程仓库
部署前后端分离项目
生成vue镜像(所有子节点都需要操作)
1、将前端vue项目打包得到dist.zip
2、创建nginx的配置文件default.conf
3、创建Dockerfile文件
4、生成vue镜像
5、打标签
6、推到harbor仓库
7、查看生成的镜像
生成jar包镜像(所有子节点都需要操作)
1、获得jar包
2、创建Dockerfile
3、生成jar包镜像
4、打标签
5、推到harbor仓库
6、查看生成的镜像
k8s容器部署前后端项目(主节点操作)
1、选择合适位置创建java-vue.yaml文件
2、查看pod
3、查看deployment
4、查看service
5、查看部署好的页面
可能遇到的命令
镜像相关
pod相关
查看pod日志
可能遇到的问题
1、删除镜像时,重复镜像ID的镜像删除
2、"worker_processes" directive is not allowed here
3、本地登录验证码测试正常,使用docker上线后报空指针问题
主节点master:192.168.3.200
子节点node1:192.168.3.201
子节点node2:192.168.3.202
安装方式略。
http://192.168.3.200,输入用户名密码登录,初始用户名为admin,密码配置在【harbor.cfg】配置文件中的【harbor_admin_password】属性。
部署在主节点上,需要在harbor目录下输入命令,常用命令如下:
docker和harbor之间交互的基本使用
配置http镜像仓库可信任(docker默认是通过https访问harbor的,但是私有仓库是在公司内网的话,没有必要配置https, 所以我们要在daemon.json配置harbor服务器地址被docker认为是可信任的站点;如果docker通过https访问harbor,就不需要进行如下设置)。
我的daemon.json位置在:/etc/docker/daemon.json
配置内容如下:
修改完后需要重启docker,因为harbor也是运行在docker容器里的。
我这里的项目是由Spring Boot+vue组成。
1、将前端vue项目打包得到dist.zip
上传到服务器中合适的位置,上传完成后解压:unzip dist.zip
2、创建nginx的配置文件default.conf
在dist同级目录创建default.conf文件:sudo vim default.conf
这里以我的项目为例:
3、创建Dockerfile文件
同级目录下创建Dockerfile文件:sudo vim Dockerfile
4、生成vue镜像
执行docker build -f Dockerfile -t web-todo .
最后的.表示Dockerfile在当前目录,-t设置生成的镜像名称。
当只有一个Dockerfile的时候,可以省略-f,即:
看到Successfully则表示成功,执行成功后可以通过docker images |grep web-todo查看已生成的镜像。
5、打标签
6、推到harbor仓库
注意:第一次需要登录harbor:docker login 192.168.3.200,输入用户名密码即可推送成功。
7、查看生成的镜像
docker images
1、获得jar包
通过编译器打包获得对应的后端jar包,然后上传到服务器对应位置
2、创建Dockerfile
jar包同级目录下创建:sudo vim Dockerfile
由于我的是两个jar包,所以需要创建两个Dockerfile,分别为:
DockerfileDsm
DockerfileNote
3、生成jar包镜像
4、打标签
5、推到harbor仓库
6、查看生成的镜像
docker images
1、选择合适位置创建java-vue.yaml文件
k8s管理项目主要是靠yaml,这次部署的java-vue.yaml如下
执行命令:
2、查看pod
如果pod都在running状态,表示项目就都起好了。
3、查看deployment
4、查看service
5、查看部署好的页面
删除时带上版本号即可针对性删除。
查看pod日志时发现报了这个错,原因是:
完整的nginx.conf是放在/etc/nginx/nginx.conf中,我们这里是文件复制到/etc/nginx/conf.d/default.conf中,所以只需要保留ngnix.conf中的server部分。
查看pod日志时报了下列错误
发现是jdk的锅。 我一开始的时候,jar包的Dockerfile使用的是
FROM openjdk:8-jdk-alpine
最后发现,openjdk镜像中对于一些jdk底层jar包并不支持,后来使用
FROM frolvlad/alpine-oraclejdk8:slim