RabbitMQ рдХреЛ Kubernetes рдорд╛ рд╕рд┐рдорд▓реЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╕рди

RabbitMQ рдХреЛ Kubernetes рдорд╛ рд╕рд┐рдорд▓реЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╕рди

RabbitMQ Erlang рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рд╕рдиреНрджреЗрд╢ рдмреНрд░реЛрдХрд░ рд╣реЛ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдзреЗрд░реИ рдиреЛрдбрд╣рд░реВрдорд╛ рдкреВрд░реНрдг рдбреЗрдЯрд╛ рдкреНрд░рддрд┐рдХреГрддрд┐рдХреЛ рд╕рд╛рде рдлреЗрд▓рдУрднрд░ рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЬрд╣рд╛рдБ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрд▓реЗ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкрдвреНрди рд░ рд▓реЗрдЦреНрди рд╕реЗрд╡рд╛ рдЧрд░реНрди рд╕рдХреНрдЫред рдЙрддреНрдкрд╛рджрди рд╕рдЮреНрдЪрд╛рд▓рдирдорд╛ рдзреЗрд░реИ Kubernetes рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рднрдПрдХреЛрд▓реЗ, рд╣рд╛рдореАрд▓реЗ RabbitMQ рд╕реНрдерд╛рдкрдирд╛рд╣рд░реВрдХреЛ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдЫреМрдВ рд░ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдмрд┐рдирд╛ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░рдмрд╛рдЯ рдЕрд░реНрдХреЛ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрдиреБрдкрд░реЗрдХреЛ рдерд┐рдпреЛред

рд╣рд╛рдореАрд▓рд╛рдИ рдХрдореНрддрд┐рдорд╛ рджреБрдИ рдХреЗрд╕рд╣рд░реВрдорд╛ рдпреЛ рдЕрдкрд░реЗрд╢рди рдЪрд╛рд╣рд┐рдиреНрдЫ:

  1. RabbitMQ рдХреНрд▓рд╕реНрдЯрд░рдмрд╛рдЯ рдбрд╛рдЯрд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрджреИ рдЬреБрди Kubernetes рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫреИрди рдирдпрд╛рдБ - рдкрд╣рд┐рд▓реЗ рдиреИ "kubernetized" (рдЕрд░реНрдерд╛рдд K8s pods рдорд╛ рд╕рдЮреНрдЪрд╛рд▓рди) - рдХреНрд▓рд╕реНрдЯрд░ред
  2. RabbitMQ рдХреЛ Kubernetes рднрд┐рддреНрд░ рдПрдХ рдиреЗрдорд╕реНрдкреЗрд╕рдмрд╛рдЯ рдЕрд░реНрдХреЛрдорд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрджрд┐ рд╕рд░реНрдХрд┐рдЯрд╣рд░реВ рдиреЗрдорд╕реНрдкреЗрд╕рджреНрд╡рд╛рд░рд╛ рдЫреБрдЯреНрдпрд╛рдЗрдПрдХреЛ рдЫ рднрдиреЗ, рдПрдХ рд╕рд░реНрдХрд┐рдЯрдмрд╛рдЯ рдЕрд░реНрдХреЛрдорд╛ рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрди)ред

рд▓реЗрдЦрдорд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдиреБрд╕реНрдЦрд╛ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВрдорд╛ рдХреЗрдиреНрджреНрд░рд┐рдд рдЫ (рддрд░ рддрд┐рдиреАрд╣рд░реВрдорд╛ рд╕реАрдорд┐рдд рдЫреИрди) рдЬрд╕рдорд╛ рддреНрдпрд╣рд╛рдБ рдкреБрд░рд╛рдиреЛ RabbitMQ рдХреНрд▓рд╕реНрдЯрд░ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, 3 рдиреЛрдбрд╣рд░реВ) рдЫ, рдкрд╣рд┐рд▓реЗ рдиреИ K8s рдорд╛ рд╡рд╛ рдХреЗрд╣реА рдкреБрд░рд╛рдиреЛ рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫред Kubernetes рдорд╛ рд╣реЛрд╕реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдПрдЙрдЯрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ (рдкрд╣рд┐рд▓реЗ рдиреИ рддреНрдпрд╣рд╛рдБ рд╡рд╛ рднрд╡рд┐рд╖реНрдпрдорд╛) рдпрд╕рдХреЛ рд╕рд╛рде рдХрд╛рдо рдЧрд░реНрджрдЫ:

RabbitMQ рдХреЛ Kubernetes рдорд╛ рд╕рд┐рдорд▓реЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╕рди

... рд░ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ Kubernetes рдорд╛ рдирдпрд╛рдБ рдЙрддреНрдкрд╛рджрдирдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдпрдХреЛ рд╕рд╛рдордирд╛ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВред

рдкрд╣рд┐рд▓реЗ, рдорд╛рдЗрдЧреНрд░реЗрд╕рдирдХреЛ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╡рд░реНрдгрди рдЧрд░рд┐рдиреЗрдЫ, рд░ рддреНрдпрд╕ рдкрдЫрд┐ рдпрд╕рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рд╡рд░рдгрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░рд┐рдиреЗрдЫред

рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо

рдХреБрдиреИ рдкрдирд┐ рдХрд╛рд░реНрдп рдЧрд░реНрдиреБ рдЕрдШрд┐ рдкрд╣рд┐рд▓реЛ, рдкреНрд░рд╛рд░рдореНрднрд┐рдХ, рдЪрд░рдг рднрдиреЗрдХреЛ рдкреБрд░рд╛рдиреЛ RabbitMQ рд╕реНрдерд╛рдкрдирд╛рдорд╛ рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдореЛрдб рд╕рдХреНрд╖рдо рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреА рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБ рд╣реЛредHA)ред рдХрд╛рд░рдг рд╕реНрдкрд╖реНрдЯ рдЫ - рд╣рд╛рдореА рдХреБрдиреИ рдкрдирд┐ рдбрд╛рдЯрд╛ рдЧреБрдорд╛рдЙрди рдЪрд╛рд╣рдБрджреИрдиреМрдВред рдпреЛ рдЬрд╛рдБрдЪ рдЧрд░реНрди, рддрдкрд╛рдИрдВ RabbitMQ рдкреНрд░рд╢рд╛рд╕рдХ рдкреНрдпрд╛рдирд▓рдорд╛ рдЬрд╛рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ Admin тЖТ рдиреАрддрд┐рд╣рд░реВ рдЯреНрдпрд╛рдмрдорд╛ рдорд╛рди рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред ha-mode: all:

RabbitMQ рдХреЛ Kubernetes рдорд╛ рд╕рд┐рдорд▓реЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╕рди

рдЕрд░реНрдХреЛ рдЪрд░рдг Kubernetes рдкреЛрдбрд╣рд░реВрдорд╛ рдирдпрд╛рдБ RabbitMQ рдХреНрд▓рд╕реНрдЯрд░ рдЙрдард╛рдЙрдиреБ рд╣реЛ (рд╣рд╛рдореНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, 3 рдиреЛрдбрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН, рддрд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдлрд░рдХ рд╣реБрди рд╕рдХреНрдЫ)ред

рдпрд╕ рдкрдЫрд┐, рд╣рд╛рдореА рдкреБрд░рд╛рдиреЛ рд░ рдирдпрд╛рдБ RabbitMQ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рдорд░реНрдЬ рдЧрд░реНрдЫреМрдВ, рдПрдХрд▓ рдХреНрд▓рд╕реНрдЯрд░ (6 рдиреЛрдбрд╣рд░реВрдХреЛ) рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИ:

RabbitMQ рдХреЛ Kubernetes рдорд╛ рд╕рд┐рдорд▓реЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╕рди

рдкреБрд░рд╛рдиреЛ рд░ рдирдпрд╛рдБ RabbitMQ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рдмреАрдЪ рдбрд╛рдЯрд╛ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬреЗрд╕рдирдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рд░рдореНрдн рдЧрд░рд┐рдПрдХреЛ рдЫред рдПрдХрдкрдЯрдХ рд╕рдмреИ рдбреЗрдЯрд╛ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╕рдмреИ рдиреЛрдбрд╣рд░реВ рдмреАрдЪ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рднрдПрдкрдЫрд┐, рд╣рд╛рдореА рдирдпрд╛рдБ рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ:

RabbitMQ рдХреЛ Kubernetes рдорд╛ рд╕рд┐рдорд▓реЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╕рди

рдпреА рдЕрдкрд░реЗрд╕рдирд╣рд░реВ рдкрдЫрд┐, рдпреЛ RabbitMQ рдХреНрд▓рд╕реНрдЯрд░рдмрд╛рдЯ рдкреБрд░рд╛рдиреЛ рдиреЛрдбрд╣рд░реВ рд╣рдЯрд╛рдЙрди рдкрд░реНрдпрд╛рдкреНрдд рдЫ, рд░ рдЪрд╛рд▓ рдкреВрд░рд╛ рдорд╛рдиреНрди рд╕рдХрд┐рдиреНрдЫ:

RabbitMQ рдХреЛ Kubernetes рдорд╛ рд╕рд┐рдорд▓реЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╕рди

рд╣рд╛рдореАрд▓реЗ рдЙрддреНрдкрд╛рджрдирдорд╛ рдзреЗрд░реИ рдкрдЯрдХ рдпреЛ рдпреЛрдЬрдирд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрдХрд╛ рдЫреМрдВред рдпрджреНрдпрдкрд┐, рд╣рд╛рдореНрд░реЛ рдЖрдлреНрдиреИ рд╕реБрд╡рд┐рдзрд╛рдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдгрд╛рд▓реА рднрд┐рддреНрд░ рд▓рд╛рдЧреВ рдЧрд░реНрдпреМрдВ рдЬрд╕рд▓реЗ рдорд╛рдирдХ RMQ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ рдзреЗрд░реИ Kubernetes рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рд╡рд┐рддрд░рдг рдЧрд░реНрджрдЫред (рдЬрд┐рдЬреНрдЮрд╛рд╕реБрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐: рд╣рд╛рдореА рдХреБрд░рд╛ рдЧрд░реНрджреИрдЫреМрдВ addon-operatorрдЬрд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╣рд╛рдореА рднрд░реНрдЦрд░реИ рдмрддрд╛рдП)ред рддрд▓ рд╣рд╛рдореА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкреНрд░рд╕реНрддреБрдд рдЧрд░реНрдиреЗрдЫреМрдВ рдЬреБрди рдХрд╕реИрд▓реЗ рдкрдирд┐ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕реНрдерд╛рдкрдирд╛рд╣рд░реВрдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╕рдХреНрдЫрдиреН рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХрд╛рд░реНрдпрдорд╛ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиред

рдпрд╕рд▓рд╛рдИ рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛ рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВ

рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ

рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдзреЗрд░реИ рд╕рд░рд▓ рдЫрдиреН:

  1. Kubernetes рдХреНрд▓рд╕реНрдЯрд░ (minikube рдкрдирд┐ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫ);
  2. RabbitMQ рдХреНрд▓рд╕реНрдЯрд░ (рдмреЗрдпрд░ рдореЗрдЯрд▓рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╣реЗрд▓рдо рдЪрд╛рд░реНрдЯрдмрд╛рдЯ Kubernetes рдорд╛ рдирд┐рдпрдорд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рдЬрд╕реНрддреИ рдмрдирд╛рдЗрдиреНрдЫ)ред

рддрд▓рдХреЛ рдЙрджрд╛рд╣рд░рдгрдХреЛ рд▓рд╛рдЧрд┐, рдореИрд▓реЗ Kubernetes рдорд╛ RMQ рддреИрдирд╛рдд рдЧрд░реЗ рд░ рдпрд╕рд▓рд╛рдИ рдмреЛрд▓рд╛рдПрдБ 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 рдХреЛ Kubernetes рдорд╛ рд╕рд┐рдорд▓реЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╕рди

рдкрд░реАрдХреНрд╖рдг рдмреЗрдиреНрдЪ рддрдпрд╛рд░ рдЫ: рд╣рд╛рдореАрд╕рдБрдЧ "рдкреБрд░рд╛рдиреЛ" 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. 6 рдиреЛрдбрд╣рд░реВрдХреЛ RMQ рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдЫ:

RabbitMQ рдХреЛ Kubernetes рдорд╛ рд╕рд┐рдорд▓реЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╕рди

рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд╕рдмреИ рдиреЛрдбрд╣рд░реВ рдмреАрдЪ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рд╣реБрдБрджрд╛ рддрдкрд╛рдИрдВрд▓реЗ рдкрд░реНрдЦрдиреБрдкрд░реНрдЫред рдпреЛ рдЕрдиреБрдорд╛рди рдЧрд░реНрди рдЧрд╛рд╣реНрд░реЛ рдЫреИрди рдХрд┐ рд╕рдиреНрджреЗрд╢ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬреЗрд╕рди рд╕рдордп рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдХреЛ рдХреНрд╖рдорддрд╛рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ рдЬрд╕рдорд╛ рдХреНрд▓рд╕реНрдЯрд░ рддреИрдирд╛рдд рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ред рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдкрд░рд┐рджреГрд╢реНрдпрдорд╛, рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ 10 рдорд╛рддреНрд░ рдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рдбрд╛рдЯрд╛ рддреБрд░реБрдиреНрддреИ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рддрд░ рдкрд░реНрдпрд╛рдкреНрдд рдорд╛рддреНрд░рд╛рдорд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рд╕рд╛рде, рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬреЗрд╕рди рдШрдгреНрдЯрд╛рд╕рдореНрдо рд░рд╣рди рд╕рдХреНрдЫред

рддреНрдпрд╕реИрд▓реЗ, рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬреЗрд╕рди рд╕реНрдерд┐рддрд┐:

RabbitMQ рдХреЛ Kubernetes рдорд╛ рд╕рд┐рдорд▓реЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╕рди

рдпреЛ рдЫ +5 рдорддрд▓рдм рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рднрд┐рддреНрд░ рдЫрдиреН рдЕрдзрд┐рдХ 5 рдиреЛрдбрд╣рд░реВрдорд╛ (рдХреНрд╖реЗрддреНрд░рдорд╛ рд╕рдВрдХреЗрдд рдЧрд░рд┐рдПрдХреЛ рдмрд╛рд╣реЗрдХ Node)ред рдпрд╕рд░реА, рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬреЗрд╕рди рд╕рдлрд▓ рднрдпреЛред

4. рдмрд╛рдБрдХреА рд░рд╣реЗрдХреЛ RMQ рдареЗрдЧрд╛рдирд╛рд▓рд╛рдИ рдирдпрд╛рдБ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдиреБ рд╣реЛ (рдпрд╣рд╛рдБ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╣рд░реВ рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд░рд╣рдиреБ рднрдПрдХреЛ рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреА рд╕реНрдЯреНрдпрд╛рдХ рд░ рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирд╣рд░реВрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ), рддреНрдпрд╕рдкрдЫрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдкреБрд░рд╛рдиреЛрд▓рд╛рдИ рдЕрд▓рд╡рд┐рджрд╛ рднрдиреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдЕрдиреНрддрд┐рдо рдЕрдкрд░реЗрд╢рдирдХреЛ рд▓рд╛рдЧрд┐ (рдЕрд░реНрдерд╛рддреН рдкрд╣рд┐рд▓реЗ рдиреИ ╨┐╨╛╤Б╨╗╨╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рдирдпрд╛рдБ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрджреИ) рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН рдкреБрд░рд╛рдиреЛ рдХреНрд▓рд╕реНрдЯрд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдЖрджреЗрд╢рд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН:

rabbitmqctl stop_app
rabbitmqctl reset

рдкреБрд░рд╛рдиреЛ рдиреЛрдбрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреНрд▓рд╕реНрдЯрд░ "рдмрд┐рд░реНрд╕рд┐рдпреЛ": рддрдкрд╛рдЗрдБ рдкреБрд░рд╛рдиреЛ RMQ рдореЗрдЯрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЬреБрди рдмрд┐рдиреНрджреБрдорд╛ рдЪрд╛рд▓ рдкреВрд░рд╛ рд╣реБрдиреЗрдЫред

рднрдиреНрдиреБ: рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВрдХреЛ рд╕рд╛рде RMQ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдХреЗрд╣рд┐ рдкрдирд┐ рдореМрд▓рд┐рдХ рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдБрджреИрди - рдЪрд▓реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдареНрдпрд╛рдХреНрдХреИ рдЙрд╕реНрддреИ рд╣реБрдиреЗрдЫред

рдирд┐рд╖реНрдХрд░реНрд╖

рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдпреЛрдЬрдирд╛ рд▓рдЧрднрдЧ рд╕рдмреИ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдЙрдкрдпреБрдХреНрдд рдЫ рдЬрдм рд╣рд╛рдореАрд▓реЗ RabbitMQ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрди рд╡рд╛ рдирдпрд╛рдБ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЬрд╛рди рдЖрд╡рд╢реНрдпрдХ рдЫред

рд╣рд╛рдореНрд░реЛ рдорд╛рдорд▓рд╛рдорд╛, рдХрдард┐рдирд╛рдЗрд╣рд░реВ рдПрдХ рдкрдЯрдХ рдорд╛рддреНрд░ рджреЗрдЦрд╛ рдкрд░реНтАНрдпреЛ, рдЬрдм рдзреЗрд░реИ рдард╛рдЙрдБрд╣рд░реВрдмрд╛рдЯ RMQ рдкрд╣реБрдБрдЪ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рд░ рд╣рд╛рдореАрд╕рдБрдЧ рд╕рдмреИ рдард╛рдЙрдБрдорд╛ RMQ рдареЗрдЧрд╛рдирд╛рд▓рд╛рдИ рдирдпрд╛рдБрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ рдЕрд╡рд╕рд░ рдерд┐рдПрдиред рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореАрд▓реЗ рдирдпрд╛рдБ RMQ рдЙрд╣реА рд▓реЗрдмрд▓рд╣рд░реВрдХреЛ рд╕рд╛рде рдПрдЙрдЯреИ рдиреЗрдорд╕реНрдкреЗрд╕рдорд╛ рд╕реБрд░реВ рдЧрд░реНрдпреМрдВ рддрд╛рдХрд┐ рдпреЛ рдЕрд╡рд╕реНрдерд┐рдд рд╕реЗрд╡рд╛рд╣рд░реВ рд░ рдкреНрд░рд╡реЗрд╢рд╣рд░реВ рдЕрдиреНрддрд░реНрдЧрдд рдкрд░реНрдиреЗрдЫ, рд░ рдкреЛрдб рд╕реБрд░реБ рдЧрд░реНрджрд╛ рд╣рд╛рдореАрд▓реЗ рд▓реЗрдмрд▓рд╣рд░реВрд▓рд╛рдИ рд╣рд╛рддрд▓реЗ рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрдпреМрдВ, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╕реБрд░реБрдорд╛ рд╣рдЯрд╛рдПрд░ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдирдЖрдУрд╕реНред рдЦрд╛рд▓реА RMQ, рд░ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рднрдПрдкрдЫрд┐ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдлреЗрд░рд┐ рдердкреНрджреИред

рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХреЛ рд╕рд╛рде рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрдорд╛ RabbitMQ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрджрд╛ рд╣рд╛рдореАрд▓реЗ рдЙрд╣реА рд░рдгрдиреАрддрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНтАНрдпреМрдВ - рд╕рдмреИ рдХреБрд░рд╛ рдШрдбреАрдХреЛ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНтАНрдпреЛред

PS

рдпрд╕ рд╕рд╛рдордЧреНрд░реАрдХреЛ рддрд╛рд░реНрдХрд┐рдХ рдирд┐рд░рдиреНрддрд░рддрд╛рдХреЛ рд░реВрдкрдорд╛, рд╣рд╛рдореА MongoDB (рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рд░реНрднрд░рдмрд╛рдЯ Kubernetes рдорд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди) рд░ MySQL (рдХрд╕рд░реА рд╣рд╛рдореА Kubernetes рднрд┐рддреНрд░ рдпреЛ DBMS рддрдпрд╛рд░ рдЧрд░реНрдЫреМрдВ) рдмрд╛рд░реЗ рд▓реЗрдЦрд╣рд░реВ рддрдпрд╛рд░ рдЧрд░реНрджреИрдЫреМрдВред рддрд┐рдиреАрд╣рд░реВ рдЖрдЧрд╛рдореА рдорд╣рд┐рдирд╛рд╣рд░реВрдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдиреЗрдЫрдиреНред

рдкреАрдкреАрдПрд╕

рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ рдкрдирд┐ рдкрдвреНрдиреБрд╣реЛрд╕реН:

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди