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

    RabbitMQ - это популярное программное обеспечение для обмена сообщениями, которое имеет эффективный и надежный механизм асинхронной доставки сообщений. Он в основном используется для обмена данными и передачи информации между различными системами и имеет широкий спектр применения в таких областях, как корпоративные решения, финансовые платежи, телекоммуникации, электронная коммерция, социальные сети, мгновенные сообщения, видео, Интернет вещей и сетевые технологии.

    В текущей версии поддерживаются следующие версии RabbitMQ: 3.8.16 и 3.12. При создании экземпляра можно выбрать только эти две версии. Процесс создания экземпляра будет использовать 3.12 в качестве примера.

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

    При выборе версии рекомендуется выбирать последнюю поддерживаемую версию. У 3.12 есть следующие преимущества:

    1. 3.12 поддерживает очереди с кворумом, готовыми к производству; кроме того, сообщество устранило множество ошибок, а производительность значительно улучшилась в 3.12.
    2. 3.8.x будет постепенно выводиться из эксплуатации. Если вы в данный момент используете серию 3.8.x и позже потребуется обновление версии, это может повлиять на бизнес-процессы.

    Содержание

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

    Необходимые предварительные условия

    • Пожалуйста, убедитесь, что в текущем кластере есть доступный класс хранения и достаточно свободного места.

    Процедура

    CLI
    Веб-консоль

    Создайте экземпляр RabbitMQ через CLI:

    $ cat << EOF | kubectl -n default create -f -
    apiVersion: rabbitmq.com/v1beta1
    kind: RabbitmqCluster
    metadata:
      name: rrrr
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchLabels:
                  app.kubernetes.io/name: cluster-in
              topologyKey: kubernetes.io/hostname
      persistence:
        storage: 1Gi
        storageClassName: sc-topolvm
      rabbitmq:
        additionalConfig: |-
          channel_max=1000
          cluster_keepalive_interval=10000
          collect_statistics=none
          collect_statistics_interval=5000
          default_vhost=/
          delegate_count=16
          disk_free_limit.absolute=50MB
          handshake_timeout=10000
          heartbeat=60
          max_message_size=134217728
          mirroring_sync_batch_size=4096
          mnesia_table_loading_retry_limit=10
          mnesia_table_loading_retry_timeout=30000
          num_acceptors.tcp=10
          queue_index_embed_msgs_below=4096
          raft.wal_max_size_bytes=64000000
          vm_memory_calculation_strategy=allocated
          vm_memory_high_watermark.relative=0.4
          vm_memory_high_watermark_paging_ratio=0.5
      replicas: 3
      resources:
        limits:
          cpu: 1
          memory: 2Gi
        requests:
          cpu: 1
          memory: 2Gi
      service:
        type: ClusterIP
      upgradeOption:
        autoUpgrade: false
      version: "3.12"
    EOF

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

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

    $ kubectl -n default get rabbitmqclusters
    NAME   AGE
    rrrr   74s

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

    $ kubectl -n default get rabbitmqclusters rrrr -o custom-columns='NAME:.metadata.name,PHASE:.status.phase,USER SECRET:.status.defaultUser.secretReference.name'
    NAME   PHASE    USER SECRET
    rrrr   Active   rrrr-default-user

    Значение полей выходной таблицы следующее:

    ПолеОписание
    NAMEИмя экземпляра
    PHASEСтатус экземпляра, который может находиться в следующих состояниях:
    • Создание: Экземпляр создает ресурсы и инициализирует кластер
    • Обновление: Конфигурация экземпляра обновляется
    • Активный: Экземпляр находится в рабочем состоянии
    • Ошибка: Экземпляр столкнулся с ошибкой во время инициализации или обновления
    • Неизвестно: Экземпляр находится в нераспознанном состоянии
    • Приостановлен: Экземпляр приостановлен, и связанные Pods были выключены
    USER SECRETСекрет, который хранит информацию о учетной записи по умолчанию
    Совет

    Для методов подключения бизнес-приложений к экземплярам RabbitMQ, пожалуйста, обратитесь к Выбор адреса подключения и настройка способа подключения.