• Русский
  • Создание экземпляра

    Полностью поддерживаются следующие версии Redis: 5.0, 6.0, 7.2; другие версии по умолчанию не поддерживаются.

    Рекомендации по версиям

    При использовании в производственной среде рекомендуется отдавать приоритет версии 7.2, затем 6.0.

    1. 7.2 — версия, которая всё ещё поддерживается сообществом и исправляет известные проблемы в 6.0 и 5.0. Версии 6.0 и 5.0 больше не поддерживаются сообществом.
    2. 7.2 полностью совместима с 6.0 и 5.0.
    3. В 7.2 дополнительно улучшены возможности ACL.
    4. Использование 5.0 не рекомендуется, так как она не поддерживает расширенные функции, такие как ACL, и не имеет возможности управления пользователями; все бизнес-процессы будут использовать один общий пароль, что представляет потенциальные риски безопасности; кроме того, смена пароля требует перезапуска всех узлов.
    Рекомендации по архитектуре

    Архитектура с одним узлом не имеет реплик и не поддерживает отказоустойчивость, поэтому её следует использовать только в средах разработки и тестирования. Вы можете выбрать между Sentinel архитектурой и Cluster архитектурой в зависимости от требований вашего бизнеса к данным и параллелизму.

    Создание экземпляра Redis

    Процедура

    Sentinel CLI
    Cluster CLI
    Standalone CLI
    Web Console

    Создание экземпляра Redis 6.0 в режиме Sentinel с помощью CLI:

    $ cat << EOF | kubectl -n default create -f -
    apiVersion: middleware.alauda.io/v1
    kind: Redis
    metadata:
      name: s6
    spec:
      arch: sentinel
      customConfig:
        databases: "16"
        hz: "10"
        save: 60 10000 300 100 600 1
        timeout: "0"
      exporter:
        enabled: true
        resources:
          limits:
            cpu: 100m
            memory: 384Mi
          requests:
            cpu: 50m
            memory: 128Mi
      replicas:
        sentinel:
          master: 1
          slave: 1
      resources:
        limits:
          cpu: "1"
          memory: 2Gi
        requests:
          cpu: "1"
          memory: 2Gi
      sentinel:
        monitorConfig:
          down-after-milliseconds: "30000"
          failover-timeout: "180000"
          parallel-syncs: "1"
        replicas: 3
        resources:
          limits:
            cpu: 100m
            memory: 128Mi
          requests:
            cpu: 100m
            memory: 128Mi
      version: "6.0"
    EOF

    Для описания полей смотрите документацию Redis API.

    После создания экземпляра вы можете использовать следующую команду для проверки статуса экземпляра:

    $ kubectl -n default get redis
    NAME         ARCH         VERSION   ACCESS     STATUS         MESSAGE   BUNDLE VERSION   AUTOUPGRADE   AGE
    c5           cluster      5.0       NodePort   Ready                    4.0.1                         2m46s
    c6           cluster      6.0                  Initializing             4.0.1                         3m26s
    c7           cluster      7.2       NodePort   Initializing             4.0.1                         98s
    s5           sentinel     5.0                  Ready                    4.0.1                         3m10s
    s6           sentinel     6.0                  Ready                    4.0.1                         25m
    s7           sentinel     7.2       NodePort   Ready                    4.0.1                         2m15s
    standalone   standalone   6.0                  Initializing             4.0.1                         6s

    Значения полей таблицы вывода:

    ПолеОписание
    NAMEИмя экземпляра
    ARCHЗначение соответствует архитектуре Redis.
    • cluster: режим Cluster
    • sentinel: режим Sentinel
    • standalone: однозвенный Redis
    Это поле указывает, управляет ли данный CR ресурс экземпляром Redis в режиме standalone, Sentinel или Cluster.
    VERSIONВ настоящее время поддерживаются только 3 версии: 5.0, 6.0, 7.2
    ACCESSМетоды доступа, поддерживаемые экземпляром.
    • : экземпляр предоставляет сервисы через ClusterIP
    • NodePort: экземпляр предоставляет сервисы через NodePort
    • LoadBalancer: экземпляр предоставляет сервисы через LoadBalancer
    STATUSТекущий статус экземпляра, может включать следующие состояния:
    • Initializing: экземпляр инициализируется или обновляется
    • Rebalancing: кластерный экземпляр масштабируется вверх или вниз
    • Error: экземпляр столкнулся с неисправимой ошибкой
    • Paused: экземпляр был вручную приостановлен
    • Ready: экземпляр готов к работе
    MESSAGEПричина текущего статуса экземпляра
    BUNDLE VERSIONВерсия оператора, управляющего экземпляром
    AUTOUPGRADEВключено ли автоматическое обновление экземпляра
    AGEВремя с момента создания экземпляра