Te heke mahorahora o RabbitMQ ki Kubernetes

Te heke mahorahora o RabbitMQ ki Kubernetes

Ko RabbitMQ he kaihokohoko karere i tuhia ki Erlang e taea ai e koe te whakarite i te kahui failover me te tukurua raraunga katoa puta noa i nga pona maha, ka taea e ia node te mahi panui me te tuhi tono. He maha nga tautau Kubernetes i roto i nga mahi whakangao, kei te tautoko matou i te maha o nga whakaurunga RabbitMQ me te hiahia ki te heke raraunga mai i tetahi kahui ki tetahi atu kaore he wa heke.

I hiahiatia tenei mahi i roto i te iti rawa e rua nga keehi:

  1. Te whakawhiti raraunga mai i te kahui RabbitMQ karekau i te Kubernetes ki te hou - kua "kubernetized" (arā, kei te mahi i roto i nga K8s pods) - kahui.
  2. Hekenga o RabbitMQ i roto i nga Kubernetes mai i tetahi mokowāingoa ki tetahi atu (hei tauira, ki te whakatauhia nga iahiko e nga mokowāingoa, ka whakawhiti i nga hanganga mai i tetahi ara iahiko ki tetahi atu).

Ko te tunu e whakaarohia ana i roto i te tuhinga e arotahi ana ki nga ahuatanga (engari kaore i te iti noa ki a raatau) kei reira he kahui RabbitMQ tawhito (hei tauira, e 3 nodes), kei roto ranei i nga K8, i runga ranei i etahi o nga kaitoro tawhito. He tono kei runga Kubernetes (kei kona, kei te heke mai ranei) e mahi tahi ana:

Te heke mahorahora o RabbitMQ ki Kubernetes

... a kei te anga matou ki te mahi ki te heke ki te hanga hou i Kubernetes.

Tuatahi, ka whakaahuahia te huarahi whanui mo te hekenga ake, a muri iho ka whakaahuahia nga korero hangarau mo tona whakatinanatanga.

Hekenga algorithm

Ko te waahi tuatahi, tuatahi, i mua i tetahi mahi ko te tirotiro kei te whakahohea te aratau waatea teitei i te whakaurunga RabbitMQ tawhito (HA). He maamaa te take - kaore matou e hiahia kia ngaro nga raraunga. Hei whakahaere i tenei haki, ka taea e koe te haere ki te papa whakahaere RabbitMQ me te ripa Kaiwhakahaere → Kaupapa here kia mohio kua whakaritea te uara. ha-mode: all:

Te heke mahorahora o RabbitMQ ki Kubernetes

Ko te mahi e whai ake nei ko te whakaara i tetahi kahui RabbitMQ hou i roto i nga kurupae Kubernetes (i roto i a maatau, hei tauira, e 3 nga pona, engari he rereke pea to raatau nama).

Whai muri i tenei, ka whakakotahihia e matou nga tautau RabbitMQ tawhito me te hou, ka whiwhi i te tautau kotahi (e 6 nga pona):

Te heke mahorahora o RabbitMQ ki Kubernetes

Ko te tukanga o te tukutahi raraunga i waenga i nga tautau RabbitMQ tawhito me te hou ka timatahia. Kia tukutahia nga raraunga katoa i waenga i nga pona katoa o te tautau, ka taea e tatou te huri i te tono ki te whakamahi i te roopu hou:

Te heke mahorahora o RabbitMQ ki Kubernetes

Whai muri i enei mahi, he nui ki te tango i nga pona tawhito mai i te roopu RabbitMQ, ka taea te whakaaro kua oti te neke:

Te heke mahorahora o RabbitMQ ki Kubernetes

He maha nga wa i whakamahia ai e matou tenei kaupapa i roto i te hanga. Heoi, mo to maatau ake ngawari, i whakatinanahia e matou i roto i tetahi punaha motuhake e tohatoha ana i nga whirihoranga RMQ paerewa puta noa i nga tautau Kubernetes maha. (mo te hunga e pakiki ana: kei te korero matou addon-kaiwhakahaeree pā ana ki a tatou katahi ano ka korero). Kei raro nei ka whakaatuhia e matou nga tohutohu takitahi ka taea e te tangata te tono mo o raatau whakaurunga ki te whakamatau i te otinga e whakaarohia ana.

Kia tamata tatou i roto i te mahi

whakaritenga

He tino ngawari nga korero:

  1. Huihui Kubernetes (ka mahi ano te minikube);
  2. Ko te tautau RabbitMQ (ka taea te hora ki runga i nga konganuku kore, ka mahia ano he tautau auau i Kubernetes mai i te tūtohi Helm whaimana).

Mo te tauira i raro nei, i tukuna e ahau te RMQ ki Kubernetes ka karangahia rmq-old.

Tu whakarite

1. Tangohia te tūtohi Helm ka whakatika iti:

helm fetch --untar stable/rabbitmq-ha

Mo te waatea, ka tautuhia e matou he kupuhipa, ErlangCookie me te mahi tōrangapū ha-allna te taunoa ka tukutahi nga rarangi i waenga i nga pona katoa o te roopu 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. Tāutahia te tūtohi:

helm install . --name rmq-old --namespace rmq-old

3. Haere ki te röpü kaiwhakahaere RabbitMQ, hanga tëtahi tïtira hou me te whakauru i ngä karere maha. Ka hiahiatia kia whai muri i te hekenga ka taea e matou te whakarite kia tiakina nga raraunga katoa kaore ano kia ngaro tetahi mea:

Te heke mahorahora o RabbitMQ ki Kubernetes

Kua rite te papa whakamatautau: kei a matou te "tawhito" RabbitMQ me nga raraunga e tika ana kia whakawhitia.

Heke ana i te tautau RabbitMQ

1. Tuatahi, me tuku te RabbitMQ hou ki roto hoa mokowā ingoa me rite tonu ErlangCookie me te kupuhipa mo te kaiwhakamahi. Ki te mahi i tenei, ka mahia e matou nga mahi i whakaahuahia i runga ake nei, ka huri i te whakahau whakamutunga mo te whakauru RMQ ki enei e whai ake nei:

helm install . --name rmq-new --namespace rmq-new

2. Inaianei me hanumi koe i te kahui hou me te mea tawhito. Ki te mahi i tenei, haere ki ia pene hou RabbitMQ ka mahia nga whakahau:

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

I roto i te taurangi OLD_RMQ ka kitea te wahitau o tetahi o nga pona koroua Ko te roopu hokohoko o nga RMQ.

Ko enei whakahau ka aukati i te node o naianei hou RMQ tautau, whakapiri ki te tautau tawhito ka whakarewahia ano.

3. Kua reri te huinga RMQ o nga pona e 6:

Te heke mahorahora o RabbitMQ ki Kubernetes

Me tatari koe i te wa e tukutahi ana nga karere i waenga i nga pona katoa. Ehara i te mea uaua ki te whakaaro ko te wa tukutahi karere ka whakawhirinaki ki te kaha o te taputapu e horahia ai te tautau me te maha o nga karere. I roto i te ahuatanga kua whakaahuahia, he 10 noa iho o raatau, na reira i tukutahi tonu nga raraunga, engari me te nui o nga karere, ka taea te tukutahi mo nga haora.

Na, te mana tukutahi:

Te heke mahorahora o RabbitMQ ki Kubernetes

ko te reira +5 te tikanga kua uru kee nga karere atu i runga i nga pona e 5 (haunga nga mea e tohuhia ana i te mara Node). Na, i angitu te tukutahi.

4. Ko nga mea e toe ana ko te huri i te wahitau RMQ i roto i te tono ki te roopu hou (ko nga mahi motuhake kei konei ka whakawhirinaki ki te puranga hangarau e whakamahia ana e koe me etahi atu tono motuhake), ka mutu ka poroporoaki koe ki te mea tawhito.

Mo te mahi whakamutunga (arā после te huri i te tono ki te tautau hou) haere ki ia node koroua tautau ka mahia nga whakahau:

rabbitmqctl stop_app
rabbitmqctl reset

Ko te kohinga "kua wareware" mo nga waahanga tawhito: ka taea e koe te whakakore i te RMQ tawhito, i te wa ka oti te nekehanga.

parau: Mena kei te whakamahi koe i te RMQ me nga tiwhikete, kaore he mea rereke - ka rite tonu te mahi o te nekehanga.

kitenga

Ko te kaupapa kua whakaahuahia he pai mo te tata ki nga keehi katoa ka hiahia tatou ki te heke RabbitMQ, ki te neke noa ranei ki tetahi tautau hou.

I roto i a maatau, kotahi noa te wa i puta mai ai nga uauatanga, i te wa i uru mai ai a RMQ mai i nga waahi maha, a kaore matou i whai waahi ki te whakarereke i te wahitau RMQ ki tetahi waahi hou i nga waahi katoa. Katahi ka whakarewahia e matou he RMQ hou i roto i te mokowāingoa kotahi me nga tapanga rite tonu kia taka ki raro i nga ratonga o naianei me Ingresses, a i te whakarewatanga o te pona ka rawekehia e matou nga tapanga ma te ringaringa, ka tangohia i te timatanga kia kore ai nga tono e taka ki runga i te RMQ kau, me te taapiri i muri i te tukutahitanga o nga karere.

I whakamahia e matou te rautaki kotahi i te wa e whakahōu ana i a RabbitMQ ki tetahi putanga hou me te whirihoranga rereke - he rite nga mea katoa ki te karaka.

PS

Hei haere tonutanga o tenei rauemi, kei te whakareri matou i nga tuhinga mo MongoDB (te hekenga mai i te tūmau taputapu ki Kubernetes) me MySQL (me pehea te whakarite i tenei DBMS i roto o Kubernetes). Ka whakaputahia hei nga marama e haere ake nei.

PPS

Pānuihia hoki i runga i ta maatau blog:

Source: will.com

Tāpiri i te kōrero