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 createdsecret/fgedu-mysql-secret createdconfigmap/fgedu-mysql-config createdpersistentvolumeclaim/fgedu-mysql-pvc createddeployment.apps/fgedu-mysql createdservice/fgedu-mysql createdNAME READY STATUS RESTARTS AGE fgedu-mysql-5d4f8b6c6-abc12 1/1 Running 0 2mfrom Rancher视频:www.itpux.com
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE fgedu-mysql ClusterIP 10.43.234.1003306/TCP 3m 3.2 Redis容器化部署
在Rancher集群中部署Redis缓存。
secret/fgedu-redis-secret createdconfigmap/fgedu-redis-config createdpersistentvolumeclaim/fgedu-redis-pvc createddeployment.apps/fgedu-redis createdservice/fgedu-redis createdNAME READY STATUS RESTARTS AGE fgedu-redis-7g8h9i0j1-abc12 1/1 Running 0 2m3.3 RabbitMQ容器化部署
在Rancher集群中部署RabbitMQ消息队列。
secret/fgedu-rabbitmq-secret createdconfigmap/fgedu-rabbitmq-config createdpersistentvolumeclaim/fgedu-rabbitmq-pvc createddeployment.apps/fgedu-rabbitmq createdservice/fgedu-rabbitmq createdNAME READY STATUS RESTARTS AGE fgedu-rabbitmq-9k0l1m2n3-abc12 1/1 Running 0 2mPart04-生产案例与实战讲解
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) 35991) "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.conf4.3 RabbitMQ消息队列实战操作
连接RabbitMQ并执行消息操作。
ingress.networking.k8s.io/fgedu-rabbitmq-ingress createdNAME CLASS HOSTS ADDRESS PORTS AGE fgedu-rabbitmq-ingress nginx rabbitmq.fgedu.net.cn 192.168.1.203 80 1mroot@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 declaredMessage 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
