• Русский
  • Как инициализировать слоты шардирования кластера

    По умолчанию созданный экземпляр Redis кластера равномерно распределяет все 16384 хэш-слота между всеми шардов. Однако в некоторых сценариях, таких как аварийное восстановление, часто требуется более гибкая схема распределения слотов. Для этого мы поддерживаем возможность предоставления пользовательского плана распределения слотов при создании экземпляра, чтобы удовлетворить такие продвинутые требования.

    CLI
    cat << EOF | kubectl -n default create -f -
    apiVersion: middleware.alauda.io/v1
    kind: Redis
    metadata:
      name: c6
    spec:
      activeRedis:
        proxy:
          replicas: 1
          resources:
            limits:
              cpu: "1"
              memory: 1Gi
            requests:
              cpu: "1"
              memory: 1Gi
          service:
            type: LoadBalancer
        serviceID: 0
      affinityPolicy: AntiAffinityInSharding
      arch: cluster
      customConfig:
        save: 60 10000 300 100 600 1
      passwordSecret: redis-c6-password
      persistent:
        storageClassName: sc-topolvm
      persistentSize: 1Gi
      replicas:
        cluster:
          shard: 3
          slave: 1
          shards:
          - slots: 0-5460
          - slots: 5461-10922
          - slots: 10923-16383
      resources:
        limits:
          cpu: 1
          memory: 1Gi
        requests:
          cpu: 1
          memory: 1Gi
      version: "6.0"
    EOF

    Основным настраиваемым полем здесь является spec.replicas.cluster.shards. Количество элементов должно совпадать со значением в spec.replicas.cluster.shard. Поле spec.replicas.cluster.shards[].slots поддерживает следующие форматы: 0-5460, 5461-10922, 10923-16383, отдельные слоты, например 5461, а также смешанные списки, например 0-1000, 1001, 1002-5461.

    Для конкретного значения других полей, пожалуйста, обратитесь к API документации.