Установка брокера сообщений RabbitMQ
Для установки RabbitMQ необходимо определить переменную RABBITMQ_PASSWORD
, содержащую пароль. Также можно настроить размер тома для очереди брокера сообщений.
Добавление чарта и обновление helm репозитория.
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
Создать пространство имён для RabbitMQ.
kubectl create namespace rabbitmq
Установка RabbitMQ может варьироваться от типа установки. Ниже приведены два примера - для облачного провайдера и для установки на тестовой конфигурации.
Установка на облачном хостинге
Нижеприведённый скрипт использует размер очереди 10 Гб.
export RABBITMQ_PASSWORD="<пароль для RabbitMQ>"
cat <<EOF > ./rabbitmq.yaml
rabbitmq:
extraConfiguration: |-
#disk_free_limit.absolute = 10GB
management.path_prefix = /rabbit
#management.load_definitions = /app/load_definition.json
persistence:
enabled: true
storageClass: hcloud-volumes
size: 10Gi
livenessProbe:
commandOverride:
- sh
- -c
- rabbitmq-api-check "http://user:\$RABBITMQ_PASSWORD@127.0.0.1:15672/rabbit/api/healthchecks/node" '{"status":"ok"}'
readinessProbe:
commandOverride:
- sh
- -c
- rabbitmq-api-check "http://user:\$RABBITMQ_PASSWORD@127.0.0.1:15672/rabbit/api/healthchecks/node" '{"status":"ok"}'
EOF
helm upgrade \
--install rabbitmq bitnami/rabbitmq \
--namespace=rabbitmq \
--values ./rabbitmq.yaml
rm ./rabbitmq.yaml
Пример минимальной установки RabbitMQ для разворачивания на тестовом кластере
Нижеприведённая конфигурация использует размер очереди 4 Гб.
Обратите внимание - данный пример является минимальным для запуска МоиОтчеты Корпоративный Сервер и описанная конфигурация томов не является отказоустойчивой.
apiVersion: v1
kind: PersistentVolume
metadata:
namespace: "rabbitmq"
name: pv-for-rmq
labels:
name: mongo-volume-1-0-0
spec:
storageClassName: manual
capacity:
storage: 4Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /devkube/rabbitmq
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: "rabbitmq-pvc"
namespace: "rabbitmq"
spec:
accessModes:
- ReadWriteOnce
storageClassName: manual
resources:
requests:
storage: 4Gi
Выполните kubectl apply -f <имя вышеприведённого yaml>
и собственно скрипт установки RabbitMQ. Обратите внимание, что используется ранее созданный PersistentVolumetClaim.
helm upgrade \
--namespace=rabbitmq \
--install rabbitmq bitnami/rabbitmq \
--set persistence.existingClaim=rabbitmq-pvc \
--set volumePermissions.enabled=true \
--set ingress.tlsSecret="fr-corporate-tls" \
| tee RabitMQ.txt
Добавление конфигурации ingress
Этот пункт необходим если вы хотите получить доступ к контрольной панели сервиса RabbitMQ извне кластера.
export SERVER_DOMAIN_NAME="<доменное имя сервера>"
cat <<EOF | kubectl apply -f -
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: fastreport.cloud-rabbitmq
namespace: rabbitmq
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/rewrite-target: "/\$2"
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite ^(/rabbit)\$ \$1/ redirect;
spec:
tls:
- hosts:
- $SERVER_DOMAIN_NAME
secretName: fr-corporate-tls
rules:
- host: $SERVER_DOMAIN_NAME
http:
paths:
- path: /rabbit
backend:
serviceName: rabbitmq
servicePort: 15672
EOF
Доступ по user
********
.