KubeSphere_3.1.1 --- 使用 KubeSphere 部署流程

1. 注意项

  1. 应用部署的基础是镜像,在Docker Hub 中对应的文档中能找到该镜像的部署方式
    1. 镜像的配置文件
    2. 镜像的启动方式
    3. 等等
  2. 应用的部署方式
  3. 应用的数据挂载(数据,配置文件)
  4. 应用的可访问性(服务)

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. 注意项

  1. 容器默认以8080端口启动
  2. nacos集群内地址为 his-nacos.his:8848
  3. 项目默认运行 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}"]
posted @ 2024-02-29 14:52  河图s  阅读(74)  评论(0)    收藏  举报