写在最前

我的环境是纯内网,同时连带练习下 Helm 的离线导入与导出功能。使用 Helm 完成部署安装前,需要提前规划好,并将后续会用到的镜像提前推送到私有仓库。

1. 操作流程

https://github.com/OT-CONTAINER-KIT/redis-operator

1.1 离线下载

下载operator的helm资源包,然后打包上传到离线环境

helm pull ot-container-kit/redis-operator --version 0.22.0 --untar --destination ./redis-operator

1.2 离线导入

需要提前使用 tar -xf 解压文件,并根据实际情况修改 Operator 和 CRD 的 YAML 文件中指定的命名空间。

# 部署operator
[root@hybxvdka01 redis-operator]# helm install redis-operator ./redis-operator --create-namespace --namespace test
NAME: redis-operator
LAST DEPLOYED: Thu Sep 11 19:21:17 2025
NAMESPACE: test
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Thank you for installing redis-operator.

Your release is named redis-operator.

To learn more about the release, try:

  $ helm status redis-operator
  $ helm get all redis-operator

1.3 创建集群

在执行 kubectl create -f cluster.yaml 前,需要先创建名为 redis-cluster-secret 的 Secret,其中 keypassword,值为 Redis 集群的实际密码。

apiVersion: redis.redis.opstreelabs.in/v1beta2
kind: RedisCluster
metadata:
  name: redis-cluster
  namespace: test
spec:
  clusterSize: 3
  clusterVersion: v6
  podSecurityContext:
    runAsUser: 1000
    fsGroup: 1000
  persistenceEnabled: true
  kubernetesConfig:
    image: opstree/redis:v6.2.19
    imagePullPolicy: IfNotPresent
    redisSecret:
      name: redis-cluster-secret
      key: password
  redisExporter:
    enabled: false
    image: opstree/redis-exporter:v1.45.0
  storage:
    volumeClaimTemplate:
      spec:
        # storageClassName: standard
        accessModes: ["ReadWriteOnce"]
        resources:
          requests:
            storage: 2Gi
    nodeConfVolumeClaimTemplate:
      spec:
        accessModes: ["ReadWriteOnce"]
        resources:
          requests:
            storage: 2Gi