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

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

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

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

    При выборе версии по возможности используйте последнюю поддерживаемую версию. Для новых развертываний рекомендуется 4.2:

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

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

    Предварительные требования

    • Убедитесь, что в текущем кластере доступен storage class и имеется достаточный объем свободного пространства.

    Порядок действий

    CLI
    Web Console

    Создайте экземпляр 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: "4.2"
    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Состояние экземпляра, которое может принимать следующие значения:
    • Creating: экземпляр создает ресурсы и инициализирует кластер
    • Updating: выполняется обновление конфигурации экземпляра
    • Active: экземпляр находится в рабочем состоянии
    • Failed: при инициализации или обновлении экземпляра произошла ошибка
    • Unknown: состояние экземпляра не распознано
    • Paused: экземпляр приостановлен, связанные Pods остановлены
    USER SECRETSecret, в котором хранится информация об учетной записи пользователя по умолчанию
    Подсказка

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