使用kubesphere部署vue+java的前后端应用

122 阅读2分钟

一、集群信息

  • OS: ubuntu 22.04
  • 集群主机:2台
  • kubesphere:3.4
  • kubenetes: v1.22.12
  • 容器服务:docker

二、前提环境

  • 搭建nfs
  • 可以使用docker命令
  • 私人镜像仓库,我用的是nexus3

三、前端部署

(1)打包docker

# 使用官方的Nginx镜像作为基础镜像
FROM {docker仓库}/nginx:alpine

# 删除默认的Nginx配置文件
RUN rm -rf /usr/share/nginx/html/*

# 将构建的静态文件复制到Nginx的html目录
COPY dist /usr/share/nginx/html

# 复制自定义的Nginx配置文件, 
# 使用配置字典
# COPY nginx.conf /etc/nginx/nginx.conf

# 暴露Nginx的默认端口
EXPOSE 3000

# 启动Nginx
CMD ["nginx", "-g", "daemon off;"]

(2)推送镜像

# 打包
docker build -t frontend .
# 查看镜像id
docker images
# 修改标签
docker tag 40064903f520 {docker仓库}/frontend:1.0 
# 推送到nexus仓库
docker push 92.168.18.101:32490/frontend:1.0 

(3)配置字典 nginx.conf


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       3000;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

  
 
      location @router {
          rewrite ^.*$ /index.html last;
       }

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
            try_files $uri $uri/ @router; # 解决刷新404问题
        }

       location /api/ {

               proxy_pass http://{主机ip:端口}/; 
                #proxy_pass http://baidu.com;
               # rewrite "^/board/(.*)$"  /$1 break;

	}
    }
}

(4)挂载配置文件

将dist包上传至nfs共享目录,挂载至/etc/nginx/nginx.conf

image.png

四、后端部署 后端程序必须安装java17和python3的运行环境,此处创建了一个包含java17和python3的镜像,部署如下:

(1)制作包含jdk17和python3的镜像

# 使用 Java 17 官方镜像作为基础镜像
FROM {docker仓库}/openjdk:17-jdk-slim

# 更改源地址,否则apt-get无法下载
RUN  sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
RUN  apt-get clean

# 更新系统并安装 Python 3 和必要工具
RUN apt-get update && apt-get install -y --no-install-recommends \
  python3 \
  python3-pip \
  python3-venv \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*

# 验证 Java 和 Python 安装版本(可选)
RUN java -version && python3 --version

(2)打包后端jar包的镜像

# 使用 Java 17 官方镜像作为基础镜像
FROM {docker仓库}/java17_python3:1.0

# 设置工作目录
WORKDIR /app

# 将应用程序代码拷贝到镜像中
COPY target/*.jar /app/backend.jar

# 安装 Python 项目依赖(如果有 requirements.txt 文件)
RUN if [ -f "requirements.txt" ]; then pip3 install -r requirements.txt; fi

# 默认运行命令
ENTRYPOINT ["java","-jar","/app/backend.jar"]

EXPOSE 8088

(3)挂载jar包目录 将jar包上传至nfs目录下,创建hostpath卷进行挂载

image.png