推广 热搜: 跳转  查询  智能  关键词  分析  网站  下载  链接  互联  谷歌 

k8s+docker部署前后端分离项目

   日期:2024-12-27     作者:czq60    caijiyuan  
核心提示:目录环境准备 1、k8s集群 2、harbor远程仓库 部署前后端分离项目 生成vue镜像(所有子节点都需要操作) 1、将前端vu

目录

环境准备

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

k8s+docker部署前后端分离项目

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仓库

 
 

注意:第一次需要登录harbordocker 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

本文地址:https://sicmodule.kub2b.com/tnews/5431.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类生活信息

文章列表
相关文章
最新动态
推荐图文
生活信息
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号