type
status
date
slug
summary
tags
category
icon
password
文档说明
本文档详细记录了在 openEuler 22.03 (LTS-SP4) 系统上,基于 Kubernetes 1.25.1 和 Docker 环境部署 Redis 服务及 RedisInsight 可视化管理工具的完整流程。精准整合配置管理与可视化监控,确保生产环境部署可靠性。
一、环境概览
组件 | 版本/配置 | 说明 |
操作系统 | openEuler 22.03 (LTS-SP4) | 生产环境推荐版本 |
Kubernetes | v1.25.1 | 集群节点 IP:11.0.1.80 |
容器运行时 | Docker | 默认运行时环境 |
Redis 镜像 | swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:7.4.5-alpine | 官方 Alpine 基础镜像 |
RedisInsight | swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redislabs/redisinsight:2.56 | 可视化管理工具 |
命名空间 | middleware | 专用中间件命名空间 |
存储类 | pixiu-localstorage | 本地存储类(需提前配置) |
Redis 端口 | NodePort 30030 | 外部访问端口 |
RedisInsight | Ingress redisinsight.k8s.cn | 可视化管理入口 |
二、部署前准备
2.1 验证基础环境
✅ 成功标志:
- 返回存储类定义,包含
volumeBindingMode: WaitForFirstConsumer
2.2 创建专用命名空间
三、Redis 服务部署
3.1 部署持久化存储 (PVC)
redis-pvc.yaml:
部署命令:
验证 PVC 状态:
✅ 正确状态变化流程:
- 创建后立即查看:
STATUS为Pending
- 无需等待,继续下一步部署
- 当 Pod 进入
ContainerCreating状态时:STATUS自动变为Bound
- 最终 Pod 进入
Running状态
⚠️ 关键说明:
- PVC 不会立即变为 Bound,必须等待 Pod 调度(这是
WaitForFirstConsumer模式的核心特性)
- 验证时机:在创建 Deployment 后,当 Pod 状态为
ContainerCreating时检查 PVC
- 使用以下命令监控状态变化:
3.2 部署 Redis 服务(含配置管理)
3.2.1 创建 Redis 配置 ConfigMap
redis-config.yaml:
部署命令:
3.2.2 部署 Redis 服务
redis-deploy.yaml:
部署命令:
3.3 创建 Redis 服务暴露端点
redis-svc.yaml:
部署命令:
四、RedisInsight 部署(可视化管理工具)
4.1 部署 RedisInsight 持久化存储
redisinsight-pvc.yaml:
部署命令:
✅ 验证状态:
4.2 部署 RedisInsight 服务
redisinsight-deploy.yaml:
部署命令:
✅ 验证状态:
4.3 创建 RedisInsight 服务
redisinsight-svc.yaml:
部署命令:
4.4 配置 Ingress 暴露访问
redisinsight-ingress.yaml:
部署命令:
✅ 验证 Ingress:
⚠️ 关键配置说明:
runAsUser: 0:RedisInsight 需要 root 权限访问存储
- Ingress 需要提前配置好
nginxingress controller
- 访问前需在 hosts 文件添加:
11.0.1.80 redisinsight.k8s.cn
五、服务验证
5.1 Redis 服务验证
5.2 RedisInsight 服务验证
5.2.1 基础连通性测试
5.2.2 可视化访问验证
- 在本地 hosts 添加:
- 浏览器访问:
http://redisinsight.k8s.cn
- 首次启动需等待 2-3 分钟初始化
5.2.3 连接 Redis 服务
- 登录 RedisInsight 后点击 "Add Redis Database"
- 配置参数:
- Name:
k8s-redis - Host:
redis-svc.middleware.svc.cluster.local - Port:
6379 - Password:
your_strong_password
- 点击 "Add Redis Database" 完成连接
✅ 成功标志:
- 在 RedisInsight 界面看到连接状态为 "Connected"
- 可查看 Key 数量、内存使用等监控指标
- 可执行命令操作 Redis 数据


六、关键运维操作
6.1 PVC 状态验证流程(核心修正)
状态验证流程图(含 RedisInsight)
验证步骤(实操指南)
- 监控 Redis 和 RedisInsight 的 PVC 状态:
- 关键观察点:
✅ 精准成功标志:
- RedisInsight PVC 在 Pod 进入
ContainerCreating时变为Bound
- RedisInsight Pod 进入 Running 状态后可通过 Ingress 访问
6.2 RedisInsight 连接配置最佳实践
重要提示:RedisInsight 需要正确配置 Redis 服务地址才能管理 Redis 实例:
服务发现配置
配置项 | 生产环境值 | 说明 |
Host | redis-svc.middleware.svc.cluster.local | Kubernetes 内部 DNS 地址 |
Port | 6379 | Redis 服务端口 |
TLS | Disabled | 根据安全需求配置 |
Password | your_strong_password | 与 redis.conf 一致 |
连接测试命令
七、故障排查指南
RedisInsight 问题排查表
问题现象 | 原因 | 解决方案 |
Ingress 无法访问 | DNS 未配置或 Ingress 未生效 | 1. 检查 hosts 文件<br>2. kubectl describe ingress redisinsight |
RedisInsight 启动失败 | PVC 权限问题 | 添加 fsGroup: 0 到 Deployment spec |
无法连接 Redis | 网络策略限制 | 1. 检查 NetworkPolicy<br>2. 验证 DNS 解析 |
数据加载缓慢 | 资源限制过低 | 调整 resources.limits 内存至 2Gi |
诊断命令集(增强版)
八、附录
附录 A:RedisInsight 安全加固建议
附录 B:生产环境检查清单
项目 | 检查命令 | 预期结果 |
Redis PVC 状态 | kubectl -n middleware get pvc redis-pvc | STATUS=Bound |
RedisInsight PVC 状态 | kubectl -n middleware get pvc redisinsight-pvc | STATUS=Bound |
Redis 服务可用 | kubectl -n middleware exec -it redis-xxx -- redis-cli ping | PONG |
RedisInsight 健康检查 | curl <http://redisinsight:5540/health> | {"status":"UP"} |
Ingress 可访问性 | curl -H "Host: redisinsight.k8s.cn" <http://11.0.1.80> | HTTP 200 |
运维关键提示:
- RedisInsight 连接关键:
- 使用 Kubernetes 内部 DNS 地址
redis-svc.middleware.svc.cluster.local
- 不要使用 NodePort 地址(可能导致连接问题)
- PVC 状态验证核心原则:
- 当 Pod 进入
ContainerCreating时,PVC 应已变为Bound
- 生产环境建议:
- 为 RedisInsight 配置 TLS 加密
- 添加资源限制防止资源耗尽
- 设置自动备份策略
- 作者:NotionNext
- 链接:https://tangly1024.com/article/270db897-8f81-80ef-aff3-ddc15e1f1baf
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。








