KubeSphere_3.1.1 --- 使用 KubeSphere 部署流程
1. 注意项
- 应用部署的基础是镜像,在Docker Hub 中对应的文档中能找到该镜像的部署方式
- 镜像的配置文件
 - 镜像的启动方式
 - 等等
 
 - 应用的部署方式
 - 应用的数据挂载(数据,配置文件)
 - 应用的可访问性(服务)
 
2. 应用部署分类


3. 中间件部署
1. 部署 MySQL( PV 静态供应)
这种提前创建存储卷的方式,如果启动三个副本,每个副本的存储卷都是一样的
0. 部署流程图

0. Docker 部署 MySQL 示例
docker run -p 3306:3306 --name mysql-01 \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
--restart=always \
-d mysql:5.7 
1. 配置文件挂载 (ConfigMap)
1. 点击创建配置

2. 填写配置表单

3. 点击下一步填写配置信息
[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. Data 数据卷挂载(PVC)
1. 点击创建存储卷

2. 填写存储卷表单

3. 点击下一步,填写存储卷设置

4. 点击创建

3. 创建 MySQL 有状态副本集

1. 填写基本信息

2. 设置容器镜像




4. 设置挂载数据目录


5. 挂载配置文件


6. 开始创建 MySQL 有状态副本集

7. 创建服务,让集群外部可以访问,默认是集群内可以通过 [服务名.项目名] 可以访问
1. 点击创建服务

2. 觉得默认创建的这个哪里不合适,也可以删除服务,重新配置

3. 创建服务,选择指定工作负载

4. 填写基本信息

5. 配置服务设置



如果是创建的内网访问,不要勾选外网访问选项,否则会报错


2. 部署 Redis( PV 动态供应--有状态副本集的推荐方式)
这种动态创建存储卷的方式,如果启动三个副本,每个副本的存储卷都是不同的,隔离的

0. 流程部署图

0. Docker 部署 Redis 示例
#创建配置文件
## 1、准备redis配置文件内容
mkdir -p /app/redis/conf && vim /app/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
1. 挂载 Redis 配置



2. 部署 Redis 有状态副本集




添加启动命令

勾选同步主机时区

点击添加存储卷模版


挂载配置文件


创建 Redis

如果嫌自动创建的服务名字不够有意义,可以将服务删掉后重新创建集群内访问服务




如果想外网能访问到 Redis 可以创建外网访问服务


创建好后的服务列表

自动创建了存储卷

3. 部署 ES ( PV 动态供应)
0. 流程部署图

0. Docker 部署 ES
# 创建数据目录
mkdir -p /mydata/es-01 
chmod 777 -R /mydata
chmod 777 -R /mydata/es-01
# 容器启动
# es-config: 具名挂载,如果/usr/share/elasticsearch/config有文件,会先将文件在宿主机拷贝一份
# /mydata/es-01/data:/usr/share/elasticsearch/data 是直接覆盖文件夹
docker run --restart=always -d -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-v es-config:/usr/share/elasticsearch/config \
-v /mydata/es-01/data:/usr/share/elasticsearch/data \
--name es-01 \
elasticsearch:7.13.4
1. 配置挂载

挂载 elasticsearch.yml

挂载 jvm.options

2. 创建有状态副本集


对 CPU和内存 进行限制

添加环境变量和同步主机时区

数据挂载


配置文件挂载


指定特定的键和路径

同样的方式添加另一个配置文件挂载

点击下一步,创建即可
配置服务

4. 一键部署中间件
1. 进入应用商城




点击下一步


在应用商城创建的,在应用菜单查找

4. 应用仓库
0. k8s 仓库地址
https://artifacthub.io/
1. 添加应用仓库到 KubeSphere 流程
1. 登录企业空间管理员账号

2. 添加 Bitnami 公司的应用仓库
https://charts.bitnami.com/bitnami



2. 使用应用仓库部署应用
用可以部署应用的账号登录,就可以在部署应用的时候使用 Bitnami 公司的应用仓库部署



5. Java 微服务项目部署实战
1. 地址
https://gitee.com/y_project/RuoYi-Cloud
2. 架构
目录结构
com.ruoyi     
├── ruoyi-ui              // 前端框架 [80]
├── ruoyi-gateway         // 网关模块 [8080]
├── ruoyi-auth            // 认证中心 [9200]
├── ruoyi-api             // 接口模块
│       └── ruoyi-api-system                          // 系统接口
├── ruoyi-common          // 通用模块
│       └── ruoyi-common-core                         // 核心模块
│       └── ruoyi-common-datascope                    // 权限范围
│       └── ruoyi-common-datasource                   // 多数据源
│       └── ruoyi-common-log                          // 日志记录
│       └── ruoyi-common-redis                        // 缓存服务
│       └── ruoyi-common-seata                        // 分布式事务
│       └── ruoyi-common-security                     // 安全模块
│       └── ruoyi-common-swagger                      // 系统接口
├── ruoyi-modules         // 业务模块
│       └── ruoyi-system                              // 系统模块 [9201]
│       └── ruoyi-gen                                 // 代码生成 [9202]
│       └── ruoyi-job                                 // 定时任务 [9203]
│       └── ruoyi-file                                // 文件服务 [9300]
├── ruoyi-visual          // 图形化管理模块
│       └── ruoyi-visual-monitor                      // 监控中心 [9100]
├──pom.xml                // 公共依赖
项目架构

3. 云上部署
1. 项目布局

2. 注意项
- 容器默认以
8080端口启动 nacos集群内地址为his-nacos.his:8848- 项目默认运行 
dev环境,上云不是时通过命令行指定prod环境,自动在nacos中查询服务名-激活的环境.yml 
3. 部署配置中心 -- nacos
4. Dockerfile
FROM openjdk:8-jdk
LABEL maintainer=leifengyang
#docker run -e PARAMS="--server.port 9090"
ENV PARAMS="--server.port=8080 --spring.profiles.active=prod --spring.cloud.nacos.discovery.server-addr=his-nacos.his:8848 --spring.cloud.nacos.config.server-addr=his-nacos.his:8848 --spring.cloud.nacos.config.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 target/*.jar /app.jar
EXPOSE 8080
ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"]

                
            
        
浙公网安备 33010602011771号