RabbitMQ ืืื ืืชืืื ืืืืขืืช ืฉื ืืชื ื-Erlang ืืืืคืฉืจ ืื ืืืจืื ืืฉืืื ืืฉื ืขื ืฉืืคืื ื ืชืื ืื ืืื ืขื ืคื ื ืืกืคืจ ืฆืืชืื, ืืืฉืจ ืื ืฆืืืช ืืืื ืืชืช ืฉืืจืืช ืืืงืฉืืช ืงืจืืื ืืืชืืื. ืขื ืืจืื ืืฉืืืืืช Kubernetes ืืคืขืืืช ืืืืฆืืจ, ืื ื ืชืืืืื ืืืกืคืจ ืจื ืฉื ืืชืงื ืืช RabbitMQ ืืืชืืืืื ื ืขื ืืฆืืจื ืืืขืืืจ ื ืชืื ืื ืืืฉืืื ืืื ืืืืจ ืืื ืืื ืืฉืืชื.
ืืืื ื ืฆืจืืืื ืืช ืืคืขืืื ืืื ืืคืืืช ืืฉื ื ืืงืจืื:
- ืืขืืจืช ื ืชืื ืื ืืืฉืืื RabbitMQ ืฉืืื ื ืืืืงื ื-Kubernetes ืืืฉืืื ืืืฉ - ืฉืืืจ "ืงืืืจื ืืื" (ืืืืืจ ืคืืขื ื-K8s pods).
- ืืืืจื ืฉื RabbitMQ ืืชืื Kubernetes ืืืจืื ืฉืืืช ืืื ืืืืจ (ืืืืืื, ืื ืืขืืืื ืืืคืจืืื ืขื ืืื ืืจืืื ืฉืืืช, ืื ืืื ืืืขืืืจ ืชืฉืชืืช ืืืขืื ืืื ืืืฉื ืื).
ืืืชืืื ืืืืฆืข ืืืืืจ ืืชืืงื ืืืฆืืื (ืื ืืื ื ืืืืื ืืืืื ืืื) ืฉืืื ืืฉ ืืฉืืื RabbitMQ ืืฉื (ืืืืืื, ืฉื 3 ืฆืืชืื), ืฉื ืืฆื ืืืจ ื-K8s ืื ืืฉืจืชืื ืืฉื ืื ืืกืืืืื. ืืคืืืงืฆืื ืฉืืชืืจืืช ื-Kubernetes (ืืืจ ืฉื ืื ืืขืชืื) ืขืืืืช ืืืชื:
... ืืื ื ืขืืืืื ืืคื ื ืืืฉืืื ืืืขืืืจ ืืืชื ืืืืฆืืจ ืืืืฉ ื-Kubernetes.
ืจืืฉืืช, ืชืชืืืจ ืืืืฉื ืืืืืืช ืืืืืจื ืขืฆืื, ืืืืืจืื ืืชืืืจื ืืคืจืืื ืืืื ืืื ืฉื ืืืฉืืื.
ืืืืืจืืชื ืืืืจื
ืืฉืื ืืจืืฉืื, ืืืงืืื, ืืคื ื ืื ืคืขืืื ืืื ืืืืืง ืฉืืฆื ืืืื ืืช ืืืืื ืืืคืขื ืืืชืงื ื ืืืฉื ื ืฉื RabbitMQ (ha-mode: all
:
ืืฉืื ืืื ืืื ืืืขืืืช ืืฉืืื RabbitMQ ืืืฉ ืืชืจืืืืื ืฉื Kubernetes (ืืืงืจื ืฉืื ื, ืืืฉื, ืืืจืื ื-3 ืฆืืชืื, ืืื ืืกืคืจื ืขืฉืื ืืืืืช ืฉืื ื).
ืืืืจ ืืื, ืื ื ืืืืืื ืืช ืืฉืืืืืช RabbitMQ ืืืฉื ืื ืืืืืฉืื, ืืืฉืืืื ืืฉืืื ืืืื (ืฉื 6 ืฆืืชืื):
ืืชืืื ืชืืืื ืกืื ืืจืื ืื ืชืื ืื ืืื ืืฉืืืืืช RabbitMQ ืืืฉื ืื ืืืืืฉืื. ืืจืืข ืฉืื ืื ืชืื ืื ืืกืื ืืจื ืื ืืื ืื ืืฆืืชืื ืืืฉืืื, ื ืืื ืืืืืืฃ ืืช ืืืคืืืงืฆืื ืืฉืืืืฉ ืืืฉืืื ืืืืฉ:
ืืืืจ ืคืขืืืืช ืืื, ืืกืคืืง ืืืกืืจ ืืช ืืฆืืชืื ืืืฉื ืื ืืืฉืืื RabbitMQ, ืืืืืื ืืืื ืืืืืฉื ืืืืฉืื:
ืืฉืชืืฉื ื ืืชืืื ืืช ืื ืคืขืืื ืจืืืช ืืืืฆืืจ. ืขื ืืืช, ืื ืืืืืชื ื, ืืืืขื ื ืืช ืื ืืชืื ืืขืจืืช ืืืขืืืืช ืฉืืคืืฆื ืชืฆืืจืืช RMQ ืกืื ืืจืืืืช ืขื ืคื ื ืืฉืืืืืช ืืจืืืื ืฉื Kubernetes (ืืื ืฉืกืงืจื: ืื ืื ื ืืืืจืื ืขื
ืืืื ื ื ืกื ืืช ืื ืืคืืขื
ืืจืืฉืืช
ืืคืจืืื ืืืื ืคืฉืืืื:
- ืืฉืืื Kubernetes (ืืื ืืงืื ืืขืืื ืื);
- ืืฉืืื RabbitMQ (ื ืืชื ืืคืจืืก ืขื ืืชืืช ืืฉืืคื, ืืืืฆืืจ ืืื ืืฉืืื ืจืืื ื-Kubernetes ืืชืจืฉืื Helm ืืจืฉืื).
ืขืืืจ ืืืืืื ืืืื, ืคืจืกืชื ืืช RMQ ื-Kubernetes ืืงืจืืชื ืืื rmq-old
.
ืืื ืช ืืืื
1. ืืืจื ืืช ืชืจืฉืื ืืืื ืืขืจืื ืืืชื ืืขื:
helm fetch --untar stable/rabbitmq-ha
ืืืขืื ื ืืืืช, ืืืืจื ื ืกืืกืื, ErlangCookie
ืืืขืฉืืช ืคืืืืืืงื ha-all
ืื ืฉืืืจืืจืช ืืืื ืืชืืจืื ืืกืื ืืจื ืื ืืื ืื ืืฆืืชืื ืฉื ืืฉืืื RMQ:
rabbitmqPassword: guest
rabbitmqErlangCookie: mae9joopaol7aiVu3eechei2waiGa2we
definitions:
policies: |-
{
"name": "ha-all",
"pattern": ".*",
"vhost": "/",
"definition": {
"ha-mode": "all",
"ha-sync-mode": "automatic",
"ha-sync-batch-size": 81920
}
}
2. ืืชืงื ืืช ืืชืจืฉืื:
helm install . --name rmq-old --namespace rmq-old
3. ืขืืืจ ืืคืื ื ืื ืืืื ืฉื RabbitMQ, ืฆืืจ ืชืืจ ืืืฉ ืืืืกืฃ ืืกืคืจ ืืืืขืืช. ืื ืืืื ื ืืืฆืื ืืื ืฉืืืจื ืืืืืจื ื ืืื ืืืืื ืฉืื ืื ืชืื ืื ื ืฉืืจืื ืืฉืื ืืืืื ื ืืืจ:
ืกืคืกื ืืืืืงื ืืืื: ืืฉ ืื ื ืืช RabbitMQ "ืืืฉื" ืขื ื ืชืื ืื ืฉืฆืจืื ืืืขืืืจ.
ืืขืืจืช ืืฉืืื RabbitMQ
1. ืจืืฉืืช, ืืืื ื ืคืจืืก ืืช RabbitMQ ืืืืฉ ื ะดััะณะพะผ ืืจืื ืฉืืืช ืขื ืืืชื ErlangCookie
ืืกืืกืื ืืืฉืชืืฉ. ืืฉื ืื, ื ืืฆืข ืืช ืืคืขืืืืช ืืืชืืืจืืช ืืขืื, ืื ืฉื ื ืืช ืืคืงืืื ืืกืืคืืช ืืืชืงื ืช RMQ ืืคืงืืื ืืืื:
helm install . --name rmq-new --namespace rmq-new
2. ืืขืช ืขืืื ืืืื ืืช ืืืฉืืื ืืืืฉ ืขื ืืืฉื. ืืฉื ืื, ืขืืืจ ืื ืื ืืื ืืืชืจืืืืื ืืืฉ RabbitMQ ืืืฆืข ืืช ืืคืงืืืืช:
export OLD_RMQ=rabbit@rmq-old-rabbitmq-ha-0.rmq-old-rabbitmq-ha-discovery.rmq-old.svc.cluster.local &&
rabbitmqctl stop_app &&
rabbitmqctl join_cluster $OLD_RMQ &&
rabbitmqctl start_app
ืืืฉืชื ื OLD_RMQ
ื ืืฆืื ืืืชืืืช ืฉื ืืื ืืฆืืชืื ืืงื ืืฉืืื RMQ.
ืคืงืืืืช ืืื ืืขืฆืจื ืืช ืืฆืืืช ืื ืืืื ืืืฉ ืืฉืืื RMQ, ืืืจ ืืืชื ืืืฉืืื ืืืฉื ืืืคืขื ืืืชื ืฉืื.
3. ืืฉืืื RMQ ืฉื 6 ืฆืืชืื ืืืื:
ืขืืื ืืืืชืื ืืืื ืฉืืืืืขืืช ืืกืื ืืจื ืืช ืืื ืื ืืฆืืชืื. ืื ืงืฉื ืื ืืฉ ืฉืืื ืกื ืืจืื ืืืืืขืืช ืชืืื ืืงืืืืืช ืืืืืจื ืขืืื ื ืคืจืก ืืืฉืืื ืืืืกืคืจ ืืืืืขืืช. ืืชืจืืืฉ ืืืชืืืจ, ืืฉ ืจืง 10 ืืื, ืื ืฉืื ืชืื ืื ืกืื ืืจื ื ืืืืคื ืืืืื, ืืื ืขื ืืกืคืจ ืืืื ืืกืคืืง ืฉื ืืืืขืืช, ืืกื ืืจืื ืืืื ืืืืืฉื ืฉืขืืช.
ืื, ืืฆื ืืกื ืืจืื:
ืืื +5
ืคืืจืืฉ ืืืืจ ืฉืืืืืขืืช ืืืจ ื ืืฆืืืช ืืืชืจ ืขื 5 ืฆืืชืื (ืืืขื ืื ืฉืืฆืืื ืืฉืื Node
). ืืคืืื, ืืกื ืืจืื ืืฆืืื.
4. ืื ืื ืฉื ืืชืจ ืืื ืืืขืืืจ ืืช ืืชืืืช ื-RMQ ืืืคืืืงืฆืื ืืืฉืืื ืืืืฉ (ืืคืขืืืืช ืืกืคืฆืืคืืืช ืืื ืชืืืืืช ืืขืจืืืช ืืืื ืืืืืื ืื ืืชื ืืฉืชืืฉืื ืืืคืจืื ืืคืืืงืฆืื ื ืืกืคืื), ืืืืจ ืืื ืชืืืื ืืืืคืจื ืืืืฉื.
ืื ืืชืื ืืืืจืื (ืืืืืจ ืืืจ ืืืืจ ืืขืืจืช ืืืคืืืงืฆืื ืืืฉืืื ืืืฉ) ืขืืืจ ืืื ืฆืืืช ืืงื ืืฉืืื ืืืฆืข ืืช ืืคืงืืืืช:
rabbitmqctl stop_app
rabbitmqctl reset
ืืืฉืืื "ืฉืื" ืืืฆืืชืื ืืืฉื ืื: ืืชื ืืืื ืืืืืง ืืช ื-RMQ ืืืฉื, ืืื ืืืขืืจ ืืืฉืื.
ืฉืื ืื: ืื ืืชื ืืฉืชืืฉ ื-RMQ ืขื ืืืฉืืจืื, ืื ืฉืื ืืืจ ืื ืืฉืชื ื ืืืืชืืช - ืชืืืื ืืืขืืจ ืืชืืฆืข ืืืืืง ืืืชื ืืืืจ.
ืืืฆืืื
ืืกืืืื ืืืชืืืจืช ืืชืืืื ืืืขื ืืื ืืืงืจืื ืฉืืื ืื ืื ื ืฆืจืืืื ืืืขืืืจ ืืช RabbitMQ ืื ืคืฉืื ืืขืืืจ ืืืฉืืื ืืืฉ.
ืืืงืจื ืฉืื ื, ืืชืขืืจืจื ืงืฉืืื ืจืง ืคืขื ืืืช, ืืืฉืจ ื ืืืฉื ื-RMQ ืืืงืืืืช ืจืืื, ืืื ืืืืชื ืื ื ืืคืฉืจืืช ืืฉื ืืช ืืช ืืชืืืช ื-RMQ ืืืชืืืช ืืืฉื ืืื ืืงืื. ืืืืจ ืืื ืืฉืงื ื RMQ ืืืฉ ืืืืชื ืืจืื ืฉืืืช ืขื ืืืชื ืืชืืืืืช ืืื ืฉืืืืื ืชืืช ืฉืืจืืชืื ืงืืืืื ืืื ืืกืืช, ืืืฉืืฉืงื ื ืืช ืืคืื ืขืฉืื ื ืื ืืคืืืฆืืืช ืขื ืืชืืืืืช ืืื, ืืืกืจื ื ืืืชื ืืืชืืื ืืื ืฉืืืงืฉืืช ืื ืืคืื ืขื ืจืืง RMQ, ืืืืกืคืชื ืืืจื ืืืืจ ืกื ืืจืื ืืืืืขืืช.
ืืฉืชืืฉื ื ืืืืชื ืืกืืจืืืื ืืฉืขืืื ื ืืช RabbitMQ ืืืจืกื ืืืฉื ืขื ืชืฆืืจื ืฉืื ื - ืืื ืขืื ืืื ืฉืขืื.
ื .ื.
ืืืืฉื ืืืืื ื ืืืืืจ ืื, ืื ื ืืืื ืื ืืืืจืื ืขื MongoDB (ืืืืจื ืืฉืจืช ืืืืจื ื-Kubernetes) ื-MySQL (ืืื ืื ืื ื ืืืื ืื ืืช ื-DBMS ืืื ืืชืื Kubernetes). ืื ืืคืืจืกืื ืืืืืฉืื ืืงืจืืืื.
PPS
ืงืจื ืื ืืืืื ืฉืื ื:
- ยซ
ืืกืื ื ืชืื ืื ื-Kubernetes (ืกืงืืจื ืืืื ืืืืื) "; - ยซ
ืืืคืื ืืืจืืงืื ืฉื K8s: ืืืฆืช ืืชืืื ืขืืืจ ืืกืื ื ืชืื ืื ืืืืืื ".
ืืงืืจ: www.habr.com