1. 首页 > Rancher教程 > 正文

Rancher教程FG022-Rancher中间件(MySQL/Redis/MQ)容器化部署

本篇文章详细介绍Rancher中间件容器化部署,包括MySQL数据库、Redis缓存、RabbitMQ消息队列的部署配置、高可用架构、备份恢复等实战内容。风哥教程参考Rancher官方文档应用部署与存储管理相关章节。

目录大纲

Part01-基础概念与理论知识

1.1 容器化中间件架构优势

容器化中间件提供快速部署、弹性伸缩、环境一致性等优势。MySQL作为关系型数据库,支持事务、ACID特性。Redis作为内存缓存,提供高性能读写。RabbitMQ作为消息队列,实现异步通信和解耦。Rancher通过StorageClass实现持久化存储,确保数据安全。更多视频教程www.fgedu.net.cn

1.2 持久化存储与数据管理

Kubernetes通过PV(PersistentVolume)和PVC(PersistentVolumeClaim)实现持久化存储。StorageClass定义存储类型和参数,支持动态创建PV。常用存储类型包括NFS、Ceph、Local Path等。数据备份策略包括全量备份、增量备份、日志备份。学习交流加群风哥微信: itpux-com

Part02-生产环境规划与建议

2.1 中间件资源规划

MySQL生产环境建议配置:8核CPU、32GB内存、500GB SSD存储。Redis建议配置:4核CPU、16GB内存、100GB SSD存储。RabbitMQ建议配置:4核CPU、8GB内存、200GB SSD存储。存储性能要求:IOPS>5000,吞吐量>100MB/s。学习交流加群风哥QQ113257174

2.2 高可用架构设计

MySQL采用主从复制或MGR集群,实现读写分离和故障切换。Redis采用哨兵模式或集群模式,提供高可用和分片能力。RabbitMQ采用镜像队列,实现队列复制和故障转移。配置健康检查和自动重启,确保服务稳定性。更多学习教程公众号风哥教程itpux_com

Part03-生产环境项目实施方案

3.1 MySQL容器化部署

在Rancher集群中部署MySQL数据库。

namespace/fgedu-middleware created
secret/fgedu-mysql-secret created
configmap/fgedu-mysql-config created
persistentvolumeclaim/fgedu-mysql-pvc created
deployment.apps/fgedu-mysql created
service/fgedu-mysql created
NAME                          READY   STATUS    RESTARTS   AGE
fgedu-mysql-5d4f8b6c6-abc12   1/1     Running   0          2m

from Rancher视频:www.itpux.com

NAME          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
fgedu-mysql   ClusterIP   10.43.234.100           3306/TCP   3m

3.2 Redis容器化部署

在Rancher集群中部署Redis缓存。

secret/fgedu-redis-secret created
configmap/fgedu-redis-config created
persistentvolumeclaim/fgedu-redis-pvc created
deployment.apps/fgedu-redis created
service/fgedu-redis created
NAME                         READY   STATUS    RESTARTS   AGE
fgedu-redis-7g8h9i0j1-abc12   1/1     Running   0          2m

3.3 RabbitMQ容器化部署

在Rancher集群中部署RabbitMQ消息队列。

secret/fgedu-rabbitmq-secret created
configmap/fgedu-rabbitmq-config created
persistentvolumeclaim/fgedu-rabbitmq-pvc created
deployment.apps/fgedu-rabbitmq created
service/fgedu-rabbitmq created
NAME                             READY   STATUS    RESTARTS   AGE
fgedu-rabbitmq-9k0l1m2n3-abc12   1/1     Running   0          2m

Part04-生产案例与实战讲解

4.1 MySQL数据库实战操作

连接MySQL数据库并执行SQL操作。

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.35 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
Query OK, 0 rows affected (0.05 sec)
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0
+----+----------+----------------------+---------------------+
| id | username | email                | created_at          |
+----+----------+----------------------+---------------------+
|  1 | fgedu01  | fgedu01@fgedu.net.cn | 2026-04-10 13:00:00 |
|  2 | fgedu02  | fgedu02@fgedu.net.cn | 2026-04-10 13:00:00 |
|  3 | fgedu03  | fgedu03@fgedu.net.cn | 2026-04-10 13:00:00 |
+----+----------+----------------------+---------------------+
3 rows in set (0.01 sec)
+-----------+-----------+
| Database  | Size (MB) |
+-----------+-----------+
| fgedudb   |      0.16 |
+-----------+-----------+
1 row in set (0.01 sec)

4.2 Redis缓存实战操作

连接Redis并执行缓存操作。

Warning: Using a password with '-a' or '-u' option on the command line interface may not be secure.
fgedu-redis.fgedu-middleware.svc.cluster.local:6379>
OK
{"id":1,"name":"fgedu01","email":"fgedu01@fgedu.net.cn"}
OK
(integer) 3599
1) "fgedu:user:001"
2) "fgedu:session:abc123"
# Server
redis_version:7.2.3
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:abc123def456
redis_mode:standalone
os:Linux 5.15.0-100-generic x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:12.2.0
process_id:1
process_supervised:no
run_id:1234567890abcdef
tcp_port:6379
uptime_in_seconds:3600
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:12345678
executable:/data/redis-server
config_file:/etc/redis/redis.conf

4.3 RabbitMQ消息队列实战操作

连接RabbitMQ并执行消息操作。

ingress.networking.k8s.io/fgedu-rabbitmq-ingress created
NAME                       CLASS   HOSTS                    ADDRESS         PORTS   AGE
fgedu-rabbitmq-ingress   nginx   rabbitmq.fgedu.net.cn   192.168.1.203   80      1m
root@rabbitmq-client:/#
Enabling plugins on node rabbit@fgedu-rabbitmq-9k0l1m2n3-abc12:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@fgedu-rabbitmq-9k0l1m2n3-abc12...
Plugin configuration unchanged.
queue declared
Message published
+-------------+----------+---------------+---------------------------------------------+
| routing_key | exchange | message_count |   payload                                   |
+-------------+----------+---------------+---------------------------------------------+
| fgedu-queue |          | 0             | {"message":"Hello from fgedu","timestamp":"2026-04-10T13:00:00Z"} |
+-------------+----------+---------------+---------------------------------------------+
+-------------+----------+------------+
|    name     | messages | consumers  |
+-------------+----------+------------+
| fgedu-queue | 0        | 0          |
+-------------+----------+------------+

Part05-风哥经验总结与分享

5.1 生产环境最佳实践

1. 使用持久化存储确保数据安全
2. 配置资源限制防止资源耗尽
3. 定期备份数据库和缓存数据
4. 监控中间件性能指标
5. 配置自动重启和故障恢复
6. 使用Secret管理敏感信息
7. 实施日志收集和分析
8. 定期进行性能测试和优化

5.2 常见问题与解决方案

1. MySQL连接失败:检查密码、网络连通性、资源限制
2. Redis内存不足:调整maxmemory配置、清理过期键
3. RabbitMQ队列积压:增加消费者、优化消息处理
4. 数据丢失:配置持久化、启用AOF/RDB
5. 性能下降:优化查询、增加资源、调整配置
6. 备份失败:检查存储空间、权限配置
7. 恢复失败:验证备份文件、检查版本兼容性
8. 监控告警:配置Prometheus、Grafana监控

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息