RabbitMQ ααΊααΆαααα½ααααααΆαααΆααααααααααα
αααα»α Erlang αααα’αα»ααααΆαα±ααα’ααααααα
ααααα»ααααΆαααααΆαα½αααΉαααΆαα
αααααα·ααααααααααααααααααΆααααααΆααααΆα
αααΎα αααααααΆααααΈαα½ααα’αΆα
αααααααααΆα’αΆα αα·ααααααααααΎα ααΆαααΆαα
ααααα Kubernetes ααΆα
αααΎααα
αααα»αααααα·ααααα·ααΆαααα·ααααα ααΎαααΆααααααΆαααα‘αΎα RabbitMQ αα½αα
ααα½ααα α αΎαααααΌαααααααα»αααΉααααααΌαααΆααααα»αααΆαααααααα·ααααααααΈα
ααααααα½ααα
α
ααααααα½αααααααααααΆαααααααααα
ααΎαααααΌαααΆαααααα·ααααα·ααΆαααααααΆαα αα ααΆααααΈαααααΈα
- ααΆαααααααα·ααααααααΈα ααααα RabbitMQ ααααα·αααΆαααΈααΆαααα Kubernetes αα ααααΈαα½α - "kubernetized" αα½α α αΎα (α§. ααααα·ααααα·ααΆααα αααα»α K8s pods) - clusterα
- ααΆαααααΎα αααΆααααα»ααααα RabbitMQ αα αααα»α Kubernetes ααΈα αααααααααααα½ααα αααααααα½αααα (α§ααΆα ααα ααααα·αααΎααααααΈααααΌαααΆααααααααα namespaces αααααΆααααααΎααααΈαααααα αααααΆαα ααΆααααααααααΈααααααΈαα½ααα ααααααΈαα½αααα)α
ααΌααααααααααΆαααααΎα‘αΎααα αααα»αα’αααααααΊαααααααΎααααΆαααΆα (ααα»αααααα·αααααΌαααΆααααααα αααααα½αααΆααΆααα’αα) ααααααα»ααααααΆαα ααααα RabbitMQ α αΆαα (α§ααΆα ααα 3 ααααΆαα) αααααΆαααΈααΆαααα K8s α¬αα ααΎαααΆαααΈαααα αΆαααα½αα ααα½αα αααααα·ααΈααααααα αααα ααΎ Kubernetes (ααΆααα½α α αΎα α¬αα αααα’ααΆαα) ααααΎαααΆαααΆαα½αααΆα
... α αΎαβααΎαβααααΌαβαααααβαα»αβααΉαβααΆααα·α
αα
βαααααβααΆβαα
βααα·αααααβααααΈβαα
Kubernetesα
ααΈαα½α αα·ααΈααΆαααααααΌαα α ααααααΆαααααΎα αααΆααααα»ααααα½αα―αααΉαααααΌαααΆααα·αααααΆ α αΎααααααΆααααΈαααααααααΆααααα’α·ααα αα αααααααααΆαα’αα»ααααααααααΆααΉαααααΌαααΆααα·αααααΆα
αααα½ααααααααΆαααΆαααααΎα αααΆααααα»α
ααααΆααααΆαααααΌα ααααΆααααΆαααααΌα αα»αααααααααααΆαααΆαα½αααΊααααΌααα·αα·αααααΎαααΆααΎαααααααααΆαααααα·ααααααααααΌαααΆαααΎααα
αααα»αααΆαααα‘αΎα RabbitMQ α
αΆαα (ha-mode: all
:
ααα αΆααααααΆααααΊααααΌαααΎαα
ααααα RabbitMQ ααααΈαα
αααα»ααα Kubernetes (α§ααΆα ααααααα»αααααΈααααααΎα ααΆα 3 ααααΆαα ααα»ααααα
ααα½ααααααα½αααα’αΆα
αα»αααααΆ)α
αααααΆααααΈααα ααΎααααα αΌαα ααααα RabbitMQ α αΆαα αα·αααααΈ αααααα½αααΆαα ααααααααα½α (αααα»αα αααα 6 ααααΆαα)α
ααααΎαααΆαααααΆαααααΎααααΆααααααα·αααααααααΆαα
ααααα RabbitMQ α
αΆαααα·αααααΈααααΌαααΆααααα½α
ααααΎαα αα
αααααααα·ααααααααΆααα’ααααααΌαααΆαααααΎααααΆααααααααΆαααααΆααααΆααα’αααα
αααα»αα
ααααα ααΎαα’αΆα
ααααΌααααααα·ααΈααΎααααΈααααΎα
αααααααααΈα
αααααΆααααΈααααα·ααααα·ααΆαααΆααααα ααΆαααααααααΆααα αΎααααα»αααΆαααααααΆααα
αΆααα
ααααΈα
ααααα RabbitMQ α αΎαααΆαααααΆααααΈα’αΆα
ααααΌαααΆαα
αΆαααα»αααΆααααααα
ααΎαααΆαααααΎαααααααΆααααααα
αααΎααααααα»αααα·αααααα αααααΆαααΆαααΆααααα ααΎααααΈααΆαααΆααααα½αααααααΎαααααΆαα ααΎαααΆαα’αα»ααααααΆαα
αααα»αααααααααα―αααααααα
ααα
αΆαααΆαααααααα
ααΆαααααααα RMQ αααααααΆααα
ααΌααΆαααααα»α Kubernetes ααΆα
αααΎα (αααααΆααα’αααα
ααααΉαα
ααααΎαα ααΎααααα»ααα·ααΆαα’αααΈ
αααααΆαααααα’αα»αααα
αααααΌαααΆα
ααααααΆααααα’α·αααΊααΆααααααΆααα
- α ααααα Kubernetes (minikube ααααΉαααααΎαααΆαααααα);
- α ααααα RabbitMQ (α’αΆα βααααΌαβααΆαβααΆααβαααααΆαβαα βααΎβααα αβααα α αΎαβααααΎβααΌα βααΆβα αααααβααααααΆβαα βαααα»α Kubernetes ααΈβααΆααΆα Helm ααααΌαααΆα)α
αααααΆααα§ααΆα αααααΆαααααα αααα»αααΆαααΆαααααααΆα RMQ αα
Kubernetes α αΎαααΆαα α
ααΆα rmq-old
.
ααΆααααα ααα
1. ααΆαααααΆααΆα Helm α αΎαααααααα½αααΆααααα·α α
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 ααααΈαα
αααα»α αα·αααααααα· namespace ααΆαα½α ααΌα
ααααΆ 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 nodes ααΊαα½α ααΆααα αΎαα
α’αααααααΌααααααα
αΆααααααααααααΆαααααΌαααΆαααααΎααααΆααααααααΆαααααΆααααΆααα’ααα ααΆαα·ααα·ααΆααααα»αααΆαααΆαααΆαααααααΆααααΎααααΆαααααααΆαα’αΆαααααααΎαααααααΆααααααααααΉααααααΆαααααααΆα αα·αααΎα
ααα½αααΆαα αα
αααα»αααααΆααΈαααΌαααααΆααα·αααααΆ ααΆααΆαααααΉααα 10 ααα»ααααα ααΌα
αααααα·ααααααααααΌαααΆαααααΎααααΆαααααααααΆαα ααα»ααααααΆαα½αααΉαααΆααα½αα
ααα½ααααααααααααΆαα ααΆαααααΎααααΆαααααα’αΆα
ααΆαααααααααΆααααααα
ααΌα ααααααααΆαααΆαααααΎααααΆαααααα
ααΆααΊααΆααΆα +5
ααΆααααααΆ ααΆαααΆααα½α
α αΎα α
αααΎαααα αα
ααΎ 5 ααααΆαα (ααΎααααααα’αααΈαααααααΌαααΆαα
ααα’α»ααααα αΆααα
αααα»αααΆα Node
) ααΌα
αααα ααΆαααααΎααααΆαααααααΆαααααααα
4. α’αααΈααααα ααααααααΊααααΌαααααΌαα’αΆααααααΆα RMQ αα αααα»ααααααα·ααΈαα α αααααααααΈ (αααααααΆαααΆααααΆαααα ααΈαααα’αΆαααααααΎααααα αα αααα·ααααΆαααα’ααααααα»αααααΎ αα·ααααααααα·ααααααααα·ααΈαααααααα) αααααΆααααΈαααα’αααα’αΆα αα·ααΆαααΆαα ααΆαααααα αΆααα
αααααΆααααααα·ααααα·ααΆαα α»αααααα (α§ ΠΏΠΎΡΠ»Π΅ ααααΌααααααα·ααΈαα α αααααααααΈ) αα ααΆααααααΆααααΈαα½αα α αΆαα cluster αα·αααααα·ααααα·ααΆααααααααΆα
rabbitmqctl stop_app
rabbitmqctl reset
α ααααα "ααααα " α’αααΈααααΆααα αΆααα α’αααα’αΆα αα»α RMQ α αΆαα ααααα ααααααααΆαααααΆααααΈααΉαααααΌαααΆααααα ααα
ααΆαααααααααΆααα ααααα·αααΎα’αααααααΎ RMQ ααΆαα½ααα·ααααΆαααααα αααααααΆαα’αααΈααααΆααααααΌαααΆααΌαααααΆααα ααααΎαααΆαααααΆααααααΌαααΉαααααΌαααΆαα’αα»ααααααΌα ααααΆαααΆααα·αααααΆααα
ααΆαααααΎα
αααααααΆααααααααΆααα·αααααΆααΊαααααααααααΆααααααΎααααααααααααΈααΆααα’αα αα ααααααααΎαααααΌαααΆαααααΆααααΈ RabbitMQ α¬ααααΆααααααααΆααααΈαα α αααααααααΈα
αααα»αααααΈααααααΎα ααΆαααααΆαααΆαααΎαα‘αΎαααααααααα αα αααααα RMQ ααααΌαααΆαα αΌαααααΎααΈααααααααΆα αααΎα α αΎαααΎααα·αααΆαα±ααΆαααααΆααααααΌαα’αΆααααααΆα RMQ αα α’αΆααααααΆαααααΈαα αααααααΈαααααααααααα αααααΆαααα ααΎαααΆαααΎαααααΎαααΆα RMQ ααααΈαα αααα»α namespace ααΌα ααααΆααΆαα½αααΉαααααΆαααΌα ααααΆ ααΌα ααααααΆααΉααααα·ααα αααααααααΆαααααααααΆαααααΆαα αα·α Ingresses α αΎααα αααα αΆααααααΎα pod ααΎααααα αααααΆαααααα αααααααΆα αααα ααΎαααααΌα ααΎααααΈαα»αα±ααααααΎααααΆααααΎ RMQ ααα α αΎααααααααα½αααΆαααα‘αααααα·ααααααΆααααΈααΆαααααΌαααΆαααααΎααααΆαααααα
ααΎαααΆαααααΎαα»αααααΆαααααααΌα ααααΆαα αααααααΎαα αα α»ααααααααΆα RabbitMQ αα ααΆααααααααΈααΆαα½αααΉαααΆαααααααα ααΆαααααααααααααΆαααααΆααααααΌα - α’αααΈααααααααΆαααααΎαααΆαααΌα ααΆα‘α·ααΆα
PS
ααΆααΆαααααα‘αΌααΈαααααααααΆααααα ααΎααααα»ααααα αα’αααααα’αααΈ MongoDB (ααΆαααααΆααααααΌαααΈαααΆαααΈααααααααααΉααα Kubernetes) αα·α MySQL (αααααααααΎααααα α DBMS ααααα αααα»α Kubernetes)α αα½αααααΉαααααΌαααΆαααααα»αααααααΆααα αααα»αααααΆααα»ααααα
PPS
ααΌαα’αΆαααααααα ααΎαααααααααααΎαα
- Β«
ααΌαααααΆααα·αααααα αα·α Kubernetes (ααΆααα·αα·αααα‘αΎααα·α αα·ααααΆαααΆαααααΈααα’αΌ) Β» - Β«
αααααΉα αα·ααααα·α K8sα αααααΎαααααΏα Bootstrap αααααΆααααΌαααααΆααα·αααααααα "α
ααααα: www.habr.com