KuberSphere 实战
# 第一章 多租户系统实战
# 第二章 Kubersphere 中间件部署
应用部署需要关注的信息【应用部署三要素】
1、应用的部署方式
2、应用的数据挂载(数据,配置文件)
3、应用的可访问性
# 2.1 MySQL安装
# 2.1.1 MySQL配置管理



配置信息
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
2
3
4
5
6
7
8
9
10
11
12
13
# 2.1.2 MySQL数据卷管理




# 2.1.3 工作负载
选择有状态副本集
存储卷
配置文件
# 2.1.4 服务配置
# 2.1.4.1 无状态服务(内网域名访问)
使用域名登录MySQL
# 2.1.4.2 有态服务(内网域名访问或者外网访问)
使用Navicat连接
内网连接
也可以想上面集群 内部使用域名访问
# 2.2 部署Redis
redis容器启动
#创建配置文件
## 1、准备redis配置文件内容
mkdir -p /mydata/redis/conf && vim /mydata/redis/conf/redis.conf
##配置示例
appendonly yes
port 6379
bind 0.0.0.0
#docker启动redis
docker run -d -p 6379:6379 --restart=always \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /mydata/redis-01/data:/data \
--name redis-01 redis:6.2.5 \
redis-server /etc/redis/redis.conf
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 2.2.1 创建配置管理
# 2.2.2 创建工作负载
创建存储卷模板
挂在配置文件
# 2.2.3 服务配置
参考MySQL服务配置
# 第三章 应用商店
# 3.1 开启应用商店
如果使用最小化部署是不会安装应用商店,因此需要先开启应用商店功能
第一步
第二步:在搜索栏中输入 clusterconfiguration
第三步:搜寻到 openpitrix,将 enabled 的 false 改为 true
第四步:点击更新,等待几分钟
# 3.2 使用应用商店部署rabitmq
选中rabbitmq点击部署
# 第四章 应用仓库
使用空间管理员添加应用仓库
# 4.1 添加应用
# 第五章 RuoYi-Cloud部署
# 5.1 本地部署
# 5.1.1 克隆RuoYi-Cloud项目
# 5.1.2 Nacos准备
下载Nacos
https://github.com/alibaba/nacos/releases
创建数据库
- ry-config
- ry-cloud
- ry-seata
配置Nacos数据存储方式为MySQL
修改application.properties文件
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=UTC
db.user=root
db.password=zhishun.cai
2
3
4
导入SQL数据
- ry-config
项目中 sql/ry_config.sql
文件
ry-cloud
项目中
sql/ry_cloud.sql
文件
启动nacos
startup.cmd -m standalone
访问
http://localhost:8848/nacos
用户名:nacos
密码:nacos
2
3
4
修改配置文件中MySQL和Redis配置信息
# 5.1.3 前端工程启动
ruoyi-ui
npm install
npm run dev
2
3
# 5.1.3 启动项目
- Gateway
- Auth
- System
# 5.2 上云部署
# 5.2.1 MySQL准备
按照上面搭建mysql服务,并将本地部署的sql文件上传
# 5.2.2 Redis准备
按照上面部署Redis
# 5.2.3 Nacos集群部署
创建有状态服务
创建配置文件
application.properties文件创建
cluster.conf文件创建
服务创建 服务 - 创建 - 有状态服务
Tip:由于Nacos如果在MySQL未启动时会出现启动失败问题,这里采用探针,如果Nacos不能成功访问,就让K8s重启Nacos
添加配置文件
# 5.2.4 创建Dockerfile,打包上传服务器
这里以Gateway举例
Dockerfile
FROM openjdk:8-jdk LABEL maintainer=zhishun.cai #docker run -e PARAMS="--server.port 9090" ENV PARAMS="--server.port=8080 --spring.profiles.active=prod --spring.cloud.nacos.discovery.server-addr=nacos.ruoyi:8848 --spring.cloud.nacos.config.server-addr=nacos.ruoyi:8848 --spring.cloud.nacos.config.namespace=prod --spring.cloud.nacos.discovery.namespace=prod --spring.cloud.nacos.config.file-extension=yml" RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone COPY *.jar /app.jar EXPOSE 8080 # ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"]
1
2
3
4
5
6
7
8
9
10
11
12
13将项目打包编译
创建文件夹
ruoyi-gateway
,并将jar包和Dockerfile放入其中[root@ha01 ruoyi-gateway]# pwd /opt/k8s/ruoyi-gateway [root@ha01 ruoyi-gateway]# ll 总用量 95908 -rw-r--r-- 1 root root 617 10月 21 09:53 Dockerfile -rw-r--r-- 1 root root 98205159 10月 21 09:48 ruoyi-gateway.jar
1
2
3
4
5
6
# 5.2.5 构建镜像并推送至阿里云仓库
构建镜像
docker build -t ruoyi-gateway:v1.0 -f Dockerfile .
推送至阿里云仓库
阿里云上创建命名空间
登录镜像仓库
[root@ha01 ruoyi-gateway]# docker login --username=782099197@qq.com registry.cn-hangzhou.aliyuncs.com Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
1
2
3
4
5
6
7按照阿里云规则给镜像打标签
docker tag ebc1a6d4e55d registry.cn-hangzhou.aliyuncs.com/ximen/ruoyi-gateway:v1.0
1上传镜像
docker push registry.cn-hangzhou.aliyuncs.com/ximen/ruoyi-gateway:v1.0
1
# 5.2.6 后端项目部署
选择服务 - 无状态部署
# 5.2.7 前端项目部署
前端工程打包
npm run build
创建Dockerfile
# 基础镜像
FROM nginx
# author
MAINTAINER ruoyi
# 挂载目录
VOLUME /home/ruoyi/projects/ruoyi-ui
# 创建目录
RUN mkdir -p /home/ruoyi/projects/ruoyi-ui
# 指定路径
WORKDIR /home/ruoyi/projects/ruoyi-ui
# 复制conf文件到路径
COPY ./nginx.conf /etc/nginx/nginx.conf
# 复制html文件到路径
COPY ./dist /home/ruoyi/projects/ruoyi-ui
2
3
4
5
6
7
8
9
10
11
12
13
14
15
nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name _;
location / {
root /home/ruoyi/projects/ruoyi-ui;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/{
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://ruoyi-gateway:8080/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}# requirepass 123456
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
上传服务器
创建ruoyi-web
文件夹
将上面前端打包工程、Dockerfile和nginx配置文件放入其中
打包
docker build -t ruoyi-web:v1.0 -f Dockerfile .
按照阿里云规则给镜像打标签
docker tag ebc1a6d4e55d registry.cn-hangzhou.aliyuncs.com/ximen/ruoyi-web:v1.0
上传镜像
docker push registry.cn-hangzhou.aliyuncs.com/ximen/ruoyi-web:v1.0
部署项目
服务 - 无状态