OT-CONTAINER-KIT/redis-operator
OT-CONTAINER-KIT/redis-operator是由 OT-Container-Kit团队开发的 Kubernetes Operator,用于在 Kubernetes 环境中简化和自动化 Redis 集群的部署与管理。
github地址:https://github.com/OT-CONTAINER-KIT/redis-operator
官网地址:https://redis-operator.opstree.dev/docs/
今天,我们一起来利用它来部署一个简易的单节点Redis。
部署redis-operator
Helm在线部署
# 添加源
helm repo add ot-helm https://ot-container-kit.github.io/helm-charts/
# 安装
helm upgrade redis-operator ot-helm/redis-operator \
--install --create-namespace --namespace redis-operator-system
kubectl get pod -n redis-operator-system
Helm离线部署
查看Release列表:https://github.com/OT-CONTAINER-KIT/helm-charts/releases
wget https://github.com/OT-CONTAINER-KIT/helm-charts/releases/download/redis-operator-0.22.1/redis-operator-0.22.1.tgz
helm upgrade redis-operator ./redis-operator-0.22.1.tgz \
--install --create-namespace --namespace redis-operator-system
kubectl get pod -n redis-operator-system

注:不同版本的 Operator 兼容的Redis版本不同,请参考官方兼容表。

部署Redis单节点
我们可以从官方GitHub仓库的example/v1bete2目录下找到密码安全版本的单节点部署YAML文件: https://github.com/OT-CONTAINER-KIT/redis-operator/blob/main/example/v1beta2/password_protected/standalone.yaml
以下是单节点Redis配置示例(含注释说明):
---
apiVersion: redis.redis.opstreelabs.in/v1beta2 # 使用 OpstreeLabs Redis Operator 的 API 版本
kind: Redis # 自定义资源类型:Redis
metadata:
name: redis-standalone # Redis 实例名称(用于生成 Pod、Service 等资源名)
namespace:redis-operator-system
spec:
kubernetesConfig: # 与 Kubernetes 相关的配置
image: quay.io/opstree/redis:v7.0.12 # Redis 镜像地址(Opstree 官方提供的版本)
imagePullPolicy: IfNotPresent # 镜像拉取策略:本地没有才拉取
redisSecret: # Redis 密码从 Secret 中读取
name: redis-secret # Secret 名称
key: password # Secret 中存放密码的键(key)
storage: # Redis 持久化存储配置(用于保存数据)
volumeClaimTemplate: # PVC 模板(Operator 自动创建 PVC)
spec:
# storageClassName: standard # (可选)指定存储类,不写则使用默认 StorageClass
accessModes: ["ReadWriteOnce"] # 访问模式:单节点可读写
resources:
requests:
storage: 1Gi # 申请 1Gi 的持久化存储空间
redisExporter: # Redis Exporter(用于 Prometheus 监控)
enabled: false # 是否启用监控容器,这里禁用
image: quay.io/opstree/redis-exporter:v1.44.0 # Exporter 镜像(即使禁用也可保留)
podSecurityContext: # Pod 的安全上下文配置
runAsUser: 1000 # 以 UID=1000 的非 root 用户运行 Redis 进程
fsGroup: 1000 # 共享卷的文件属组设为 GID=1000
创建Secret
在创建Redis实例之前,我们首先创建一个Secret(用于存储Redis密码)。
kubectl create secret generic redis-secret \
--from-literal=password='MyPassword' \
-n redis-operator-system
什么是Secret?
Kubernetes 中的配置文件(如 Deployment、Pod、CRD)一般都是明文存放的,这会造成一定的安全风险。Secret的作用就是将密码从配置中分离出来,安全地保存,然后通过挂载或环境变量的方式注入到Pod里。
部署Redis实例
kubectl apply -f standalone.yaml
kubectl get pods -n redis-operator-system
kubectl get svc -n redis-operator-system
默认Redis的service类型是ClusterIP,如果我们想外部访问,可以改成NodePort或LoadBalancer。
使用Port Forward临时访问
kubectl port-forward svc/redis-standalone 6379:6379 -n redis-operator-system
Port Forward是K8s中一种临时访问Pod或Service的方式,意思是将你本地的某个端口,临时映射到 Kubernetes 集群中某个 Pod 或 Service 的端口上。这样我们就可以在本地访问集群中的端口。

另起一个终端访问Redis。
redis-cli -h 127.0.0.1 -p 6379 -a MyPassword

小结
除了单节点,OT-CONTAINER-KIT/redis-operator还支持部署RedisCluster、RedisReplication、RedisSentinel,感兴趣的小伙伴可参考官方文档继续探索。
推荐阅读:
✪ ~本文是小编的第183篇文章,目标是累计输出 1000 篇优质内容,也始终提醒自己:保持学习、保持记录、保持分享,希望以上内容能给你带来一点帮助~

点个“赞 or 在看” 你最好看!
👇👇👇 谢谢各位老板啦!




