Browse Source

xx

dev-lhz
somunslotus 1 year ago
parent
commit
9050a65e02
15 changed files with 647 additions and 0 deletions
  1. +0
    -0
      k8s/build-java.sh
  2. +25
    -0
      k8s/build-java.sh.bak
  3. +0
    -0
      k8s/build-node.sh
  4. +21
    -0
      k8s/build-node.sh.bak
  5. +0
    -0
      k8s/build.sh
  6. +0
    -0
      k8s/build_and_deploy.sh
  7. +74
    -0
      k8s/build_and_deploy.sh.bak
  8. +0
    -0
      k8s/deploy.sh
  9. +162
    -0
      k8s/deploy.sh.bak
  10. +64
    -0
      k8s/dockerfiles/conf/nginx.conf.20240705
  11. +131
    -0
      k8s/dockerfiles/conf/nginx.conf.20240909
  12. +60
    -0
      k8s/dockerfiles/conf/nginx.conf.bak
  13. +110
    -0
      k8s/dockerfiles/conf/nginx.conf.bak0719
  14. BIN
      k8s/redis.tgz
  15. +0
    -0
      k8s/vim

+ 0
- 0
k8s/build-java.sh View File


+ 25
- 0
k8s/build-java.sh.bak View File

@@ -0,0 +1,25 @@
#!/bin/bash

baseDir="/home/somuns/ci4s"
#判断$1是否为all,如果是,则编译所有模块,否则只编译management-platform模块
if [ "$1" == "all" ]; then
buildDir=$baseDir
else
buildDir="$baseDir/ruoyi-modules/management-platform"
fi

echo "Building $buildDir"
cd $buildDir && mvn clean install

if [ $? -ne 0 ]; then
echo "Failed to build ruoyi-modules"
exit 1
fi









+ 0
- 0
k8s/build-node.sh View File


+ 21
- 0
k8s/build-node.sh.bak View File

@@ -0,0 +1,21 @@
#!/bin/bash

baseDir="/home/somuns/ci4s"
cd ${baseDir}/react-ui

npm install

if [ $? -ne 0 ]; then
echo "Failed to install npm depend package"
exit 1
fi


npm run build
if [ $? -ne 0 ]; then
echo "Failed to build react-ui"
exit 1
fi




+ 0
- 0
k8s/build.sh View File


+ 0
- 0
k8s/build_and_deploy.sh View File


+ 74
- 0
k8s/build_and_deploy.sh.bak View File

@@ -0,0 +1,74 @@
#!/bin/bash

#记录开始时间
startTime=$(date +%s)

# 登录到目标环境
baseDir="/home/somuns/ci4s"
cd ${baseDir}


#build
# 默认参数
branch="master"
service="manage-front"
env="dev"

#
show_help() {
echo "Usage: $0 [-b branch] [-s service] [-e environment]"
echo
echo "Options:"
echo " -b Branch to deploy, default: master"
echo " -s Service to deploy (manage-front, manage, front, all, default: manage-front)"
echo " -e Environment (e.g., dev, test, default: dev)"
echo " -h Show this help message"
}

# 解析命令行选项
while getopts "b:s:e:h" opt; do
case $opt in
b) branch=$OPTARG ;;
s) service=$OPTARG ;;
e) env=$OPTARG ;;
h) show_help; exit 0 ;;
\?) echo "Invalid option -$OPTARG" >&2; show_help; exit 1 ;;
esac
done

valid_services=("manage-front" "manage" "front" "all")
if [[ ! " ${valid_services[@]} " =~ " $service " ]]; then
echo "Invalid service name: $service" >&2
echo "Valid services are: ${valid_services[*]}"
exit 1
fi

valid_envs=("dev" "test")
if [[ ! " ${valid_envs[@]} " =~ " $env " ]]; then
echo "Invalid environment: $env" >&2
echo "Valid environments are: ${valid_envs[*]}"
exit 1
fi

echo "start build"
sh ${baseDir}/k8s/build.sh -b ${branch} -s ${service}
if [ $? -ne 0 ]; then
echo "Build failed"
exit 1
fi
echo "build success"

# 部署
echo "start deploy"
sh ${baseDir}/k8s/deploy.sh -s ${service} -e ${env}
if [ $? -ne 0 ]; then
echo "Deploy failed"
exit 1
fi
echo "deploy success"

# 记录结束时间
endTime=$(date +%s)
# 计算运行时间
duration=$(( $endTime - $startTime ))
echo "编译发布总耗时: $duration 秒"

+ 0
- 0
k8s/deploy.sh View File


+ 162
- 0
k8s/deploy.sh.bak View File

@@ -0,0 +1,162 @@
#!/bin/bash

# 记录开始时间
start=$(date +%s)
# 默认参数
service="manage-front"
env="dev"

show_help() {
echo "Usage: $0 [-s service] [-e environment]"
echo
echo "Options:"
echo " -s Service to deploy (manage-front, manage, front, all default: manage-front)"
echo " -e Environment (e.g., dev, test, default: dev)"
echo " -h Show this help message"
}

# 解析命令行参数
while getopts "s:e:h" opt; do
case $opt in
s) service=$OPTARG ;;
e) env=$OPTARG ;;
h) show_help; exit 0 ;;
\?) echo "Invalid option -$OPTARG" >&2; exit 1 ;;
esac
done

echo "Deploy service: $service, environment: $env"

valid_services=("manage-front" "manage" "front" "all")
if [[ ! " ${valid_services[@]} " =~ " $service " ]]; then
echo "Invalid service name: $service" >&2
echo "Valid services are: ${valid_services[*]}"
exit 1
fi

valid_envs=("dev" "test")
if [[ ! " ${valid_envs[@]} " =~ " $env " ]]; then
echo "Invalid environment: $env" >&2
echo "Valid environments are: ${valid_envs[*]}"
exit 1
fi

# 根据环境设置 IP 地址
if [ "$env" == "dev" ]; then
remote_ip="172.20.32.181"
elif [ "$env" == "test" ]; then
remote_ip="172.20.32.185"
else
echo "Invalid environment - $env"
exit 1
fi

baseDir=/home/somuns/ci4s
tag=$(date +'%Y%m%d%H%M')
remote_deploy_dir=/home/deploy/manage-platform

# 构建镜像函数
build_image() {
local dockerfile=$1
local image=$2
cd ${baseDir}/k8s/dockerfiles
docker build -t ${image} -f ${dockerfile} .
if [ $? -ne 0 ]; then
echo "Build ${image} image fail"
exit 1
fi
docker push ${image}
}

# 复制和替换 YAML 文件函数
prepare_yaml() {
local yaml_file=$1
local image=$2

placeholder="\${${yaml_file%.yaml}-image}"
cd ${baseDir}/k8s/template-yaml
cp -rf ${yaml_file} deploy/
cd deploy/
sed -i "s|${placeholder}|${image}|g" ${yaml_file}
if [ $? -ne 0 ]; then
echo "Replace ${image} image fail"
exit 1
fi

# 建立远程目录并备份文件
ssh root@$remote_ip "mkdir -p ${remote_deploy_dir} && if [ -f ${remote_deploy_dir}/${yaml_file} ]; then mv ${remote_deploy_dir}/${yaml_file} ${remote_deploy_dir}/${yaml_file}.bak; fi"
if [ $? -ne 0 ]; then
echo "Failed to create remote directory or backup ${yaml_file}"
exit 1
else
echo "Successfully created remote directory and backup ${yaml_file}"
fi

scp ${baseDir}/k8s/template-yaml/deploy/${yaml_file} root@$remote_ip:${remote_deploy_dir}/${yaml_file}
if [ $? -ne 0 ]; then
echo "Failed to copy ${yaml_file}"
exit 1
else
echo "Successfully copied ${yaml_file}"
fi
}

# 部署服务函数
deploy_service() {
local yaml_file=$1
ssh root@$remote_ip "kubectl apply -n argo -f ${remote_deploy_dir}/${yaml_file}"
if [ $? -ne 0 ]; then
echo "Failed to deploy ${yaml_file}"
exit 1
else
echo "Successfully deployed ${yaml_file}"
fi
}

deploy_nacos() {
local yaml_file=$1
scp ${baseDir}/k8s/${yaml_file} root@$remote_ip:${remote_deploy_dir}/${yaml_file}
deploy_service ${yaml_file}
}

build_and_deploy() {
local dockerfile=$1
local image=$2
local yaml_file=$3

build_image ${dockerfile} ${image}
prepare_yaml ${yaml_file} ${image}
deploy_service ${yaml_file}
}

# 构建和部署 manage 服务
if [ "$service" == "manage-front" ] || [ "$service" == "manage" ]; then
build_and_deploy "managent-dockerfile" "172.20.32.187/ci4s/ci4s-managent:${tag}" "k8s-7management.yaml"
fi


# 构建和部署 front 服务
if [ "$service" == "manage-front" ] || [ "$service" == "front" ]; then
build_and_deploy "nginx-dockerfile" "172.20.32.187/ci4s/ci4s-front:${tag}" "k8s-12front.yaml"
fi


if [ "$service" == "all" ]; then
#部署前端
build_and_deploy "nginx-dockerfile" "172.20.32.187/ci4s/ci4s-front:${tag}" "k8s-12front.yaml"
#部署管理平台
build_and_deploy "managent-dockerfile" "172.20.32.187/ci4s/ci4s-managent:${tag}" "k8s-7management.yaml"
#部署认证中心
build_and_deploy "auth-dockerfile" "172.20.32.187/ci4s/ci4s-auth:${tag}" "k8s-5auth.yaml"
#部署网关
build_and_deploy "gateway-dockerfile" "172.20.32.187/ci4s/ci4s-gateway:${tag}" "k8s-4gateway.yaml"
#部署系统服务
build_and_deploy "system-dockerfile" "172.20.32.187/ci4s/ci4s-system:${tag}" "k8s-6system.yaml"
#部署配置中心
deploy_nacos "k8s-3nacos.yaml"
fi


# 记录结束时间
end=$(date +%s)
echo "部署成功, 耗时: $((end-start))秒"

+ 64
- 0
k8s/dockerfiles/conf/nginx.conf.20240705 View File

@@ -0,0 +1,64 @@
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 20480m;
server {
listen 8000;
server_name localhost;
location /api/{
# rewrite ^/prod-api/(.*)$ /$1 break;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ci4s-gateway-service.argo.svc:8082/;
proxy_connect_timeout 500s; # 设置连接超时时间为 120 秒
proxy_read_timeout 500s; # 设置读取超时时间为 120 秒
proxy_send_timeout 500s; # 设置发送超时时间为 120 秒
}
location /label-studio/ {
# rewrite ^/label-studio/(.*)$ /$1 break;
proxy_pass http://label-studio-service.argo.svc:8080/projects/;
proxy_hide_header X-Frame-Options;
add_header X-Frame-Options ALLOWALL;
}
location / {
rewrite ^/prod-api/(.*)$ /$1 break;
root /home/ruoyi/projects/ruoyi-ui;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /api/v1/model/ {
proxy_pass http://pipeline-convert-service.argo.svc:80;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location @router {
rewrite ^.*$ /index.html last;
}
# 避免actuator暴露
if ($request_uri ~ "/actuator") {
return 403;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

+ 131
- 0
k8s/dockerfiles/conf/nginx.conf.20240909 View File

@@ -0,0 +1,131 @@
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 20480m;
error_log /var/log/nginx/error.log debug;
server {
listen 8000;
server_name localhost;
location /api/{
# rewrite ^/prod-api/(.*)$ /$1 break;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ci4s-gateway-service.argo.svc:8082/;
proxy_connect_timeout 500s; # 设置连接超时时间为 120 秒
proxy_read_timeout 500s; # 设置读取超时时间为 120 秒
proxy_send_timeout 500s; # 设置发送超时时间为 120 秒
}
location /label-studio/ {
# rewrite ^/label-studio/(.*)$ /$1 break;
proxy_pass http://label-studio-service.argo.svc:8080/projects/;
proxy_hide_header X-Frame-Options;
add_header X-Frame-Options ALLOWALL;
}
location / {
rewrite ^/prod-api/(.*)$ /$1 break;
root /home/ruoyi/projects/ruoyi-ui;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /api/v1/model/ {
proxy_pass http://pipeline-convert-service.argo.svc:80;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# location /api/v1/realtimeStatus {
# proxy_pass http://argo-server.argo.svc:2746/api/v1/workflow-events/argo;
# proxy_set_header REMOTE-HOST $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# }
location /api/v1/tensorboard/show {
# 提取查询参数中的 `svc` 值
set $svc "";
if ($arg_svc) {
set $svc $arg_svc;
}
# 将请求转发到动态生成的内部服务地址
proxy_pass http://$svc.argo.svc:6006;
# 传递必要的头信息
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 对于 WebSocket 应用很重要
proxy_buffering off;
}
location /api/v1/realtimeStatus {
rewrite ^/api/v1/realtimeStatus(.*)$ /api/v1/workflow-events/argo$1 break;
proxy_pass https://argo-server.argo.svc:2746;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 保留查询参数
proxy_set_header X-Original-URI $request_uri;
# 禁用缓冲
proxy_buffering off;
# 增加超时时间
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 60s;
# 设置传递的请求头
# proxy_set_header Connection '';
# chunked_transfer_encoding off;
# 如果需要保留自定义头部
proxy_set_header Accept 'text/event-stream';
}
location /newlog/realtimeLog {
proxy_pass http://loki.loki-log.svc:3100/loki/api/v1/tail;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location @router {
rewrite ^.*$ /index.html last;
}
# 避免actuator暴露
if ($request_uri ~ "/actuator") {
return 403;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

+ 60
- 0
k8s/dockerfiles/conf/nginx.conf.bak View File

@@ -0,0 +1,60 @@
worker_processes 1;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;

server {
listen 8000;
server_name localhost;

location /api/{
rewrite ^/prod-api/(.*)$ /$1 break;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ci4s-gateway-service.argo.svc:8082/;
}
location /label-studio {
rewrite ^/prod-api/(.*)$ /$1 break;
proxy_pass http://label-studio-ls-app.label-data.svc:80/;
proxy_hide_header X-Frame-Options;
add_header X-Frame-Options "ALLOW-FROM http://label-studio-ls-app.label-data.svc:80/";
}

location /api/v1/model/ {
proxy_pass http://pipeline-convert-service.argo.svc:80;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location / {
rewrite ^/prod-api/(.*)$ /$1 break;
root /home/ruoyi/projects/ruoyi-ui;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}

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

# 避免actuator暴露
if ($request_uri ~ "/actuator") {
return 403;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

+ 110
- 0
k8s/dockerfiles/conf/nginx.conf.bak0719 View File

@@ -0,0 +1,110 @@
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 20480m;
error_log /var/log/nginx/error.log debug;
server {
listen 8000;
server_name localhost;
location /api/{
# rewrite ^/prod-api/(.*)$ /$1 break;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ci4s-gateway-service.argo.svc:8082/;
proxy_connect_timeout 500s; # 设置连接超时时间为 120 秒
proxy_read_timeout 500s; # 设置读取超时时间为 120 秒
proxy_send_timeout 500s; # 设置发送超时时间为 120 秒
}
location /label-studio/ {
# rewrite ^/label-studio/(.*)$ /$1 break;
proxy_pass http://label-studio-service.argo.svc:8080/projects/;
proxy_hide_header X-Frame-Options;
add_header X-Frame-Options ALLOWALL;
}
location / {
rewrite ^/prod-api/(.*)$ /$1 break;
root /home/ruoyi/projects/ruoyi-ui;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /api/v1/model/ {
proxy_pass http://pipeline-convert-service.argo.svc:80;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# location /api/v1/realtimeStatus {
# proxy_pass http://argo-server.argo.svc:2746/api/v1/workflow-events/argo;
# proxy_set_header REMOTE-HOST $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# }
location /api/v1/realtimeStatus {
rewrite ^/api/v1/realtimeStatus(.*)$ /api/v1/workflow-events/argo$1 break;
proxy_pass https://argo-server.argo.svc:2746;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 保留查询参数
proxy_set_header X-Original-URI $request_uri;
# 禁用缓冲
proxy_buffering off;
# 增加超时时间
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 60s;
# 设置传递的请求头
# proxy_set_header Connection '';
# chunked_transfer_encoding off;
# 如果需要保留自定义头部
proxy_set_header Accept 'text/event-stream';
}
location /newlog/realtimeLog {
proxy_pass http://loki.loki-log.svc:3100/loki/api/v1/tail;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location @router {
rewrite ^.*$ /index.html last;
}
# 避免actuator暴露
if ($request_uri ~ "/actuator") {
return 403;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

BIN
k8s/redis.tgz View File


+ 0
- 0
k8s/vim View File


Loading…
Cancel
Save