Ukubuka Kafushane Kwezitatimende Ze-PostgreSQL ze-Kubernetes, Izinketho Zethu kanye Nokuhlangenwe nakho

Ukubuka Kafushane Kwezitatimende Ze-PostgreSQL ze-Kubernetes, Izinketho Zethu kanye Nokuhlangenwe nakho

Ngokukhula, amaklayenti athola lezi zicelo ezilandelayo: “Siyifuna njenge-Amazon RDS, kodwa eshibhile”; "Siyifuna njenge-RDS, kodwa yonke indawo, kunoma iyiphi ingqalasizinda." Ukuze sisebenzise isisombululo esinjalo esiphethwe ku-Kubernetes, sibheke isimo samanje sama-opharetha aziwa kakhulu e-PostgreSQL (i-Stolon, ama-opharetha avela ku-Crunchy Data kanye ne-Zalando) futhi senza ukukhetha kwethu.

Lesi sihloko isipiliyoni esisizuzile kokubili ngokombono wethiyori (ukubuyekezwa kwezixazululo) kanye nasohlangothini olusebenzayo (lokho okukhethiwe nalokho okuvela kukho). Kodwa okokuqala, ake sinqume ukuthi yiziphi izidingo ezijwayelekile zokushintshwa okungaba khona kwe-RDS...

Yini i-RDS

Lapho abantu bekhuluma nge-RDS, kokuhlangenwe nakho kwethu, basho insiza ephethwe ye-DBMS ethi:

  1. kulula ukumisa;
  2. inamandla okusebenza ngezifinyezo futhi ibuyisele kusuka kuzo (okungcono ngokusekelwa I-PITR);
  3. ikuvumela ukuthi udale ama-topology we-master-slave;
  4. inohlu olucebile lwezandiso;
  5. inikeza ukuhlolwa kwamabhuku kanye nokuphathwa kokufinyelela komsebenzisi.

Ngokuvamile, izindlela zokusebenzisa umsebenzi osuwenziwa zingahluka kakhulu, kodwa indlela enemibandela ethi Ansible ayisondele kithi. (Ozakwethu abavela ku-2GIS bafike esiphethweni esifanayo ngenxa yalokho umzamo wakhe dala "ithuluzi lokusebenzisa ngokushesha iqoqo le-failover elisuselwa ku-Postgres.")

Ama-operators ayindlela evamile yokuxazulula izinkinga ezifanayo ku-ecosystem ye-Kubernetes. Umqondisi wezobuchwepheshe we-"Flanta" usekhulume kabanzi mayelana nabo mayelana nedathabhethi eyethulwe ngaphakathi kwe-Kubernetes. distol, ku omunye wemibiko yakhe.

NB: Ukuze udale ngokushesha ama-opharetha alula, sincoma ukuthi unake insiza yethu Yomthombo Ovulekile igobolondo-opharetha. Ngokuyisebenzisa, ungakwenza lokhu ngaphandle kolwazi lwe-Go, kodwa ngezindlela ezijwayeleke kakhulu kubaphathi besistimu: ku-Bash, Python, njll.

Kunabasebenzisi abambalwa abadumile be-K8s be-PostgreSQL:

  • Stolon;
  • I-Crunchy Data PostgreSQL Operator;
  • I-Zalando Postgres Operator.

Ake sibheke kubo eduze.

Ukukhetha opharetha

Ngaphezu kwezici ezibalulekile esezishiwo ngenhla, thina - njengonjiniyela bokusebenza kwengqalasizinda yakwaKubernetes - siphinde salindela okulandelayo kubaqhubi:

  • ukuthunyelwa kusuka ku-Git kanye ne Izinsiza Ngokwezifiso;
  • ukwesekwa kwe-pod anti-affinity;
  • ukufaka i-node affinity noma isikhethi se-node;
  • ukufakwa kokubekezelelana;
  • ukutholakala kwamakhono okushuna;
  • ubuchwepheshe obuqondakalayo ngisho nemiyalo.

Ngaphandle kokungena emininingwaneni yephuzu ngalinye (buza kumazwana uma usenemibuzo ngawo ngemuva kokufunda yonke indatshana), ngizophawula ngokujwayelekile ukuthi le mingcele iyadingeka ukuze kuchazwe ngokunembe kakhudlwana ukukhethekile kwama-cluster node ukuze zi-ode ngezinhlelo zokusebenza ezithile. Ngale ndlela singakwazi ukuzuza ibhalansi efanele ngokusebenza nezindleko.

Manje ake sidlulele kuma-opharetha we-PostgreSQL ngokwabo.

1. Stolon

I-Stolon kusuka enkampanini yase-Italy i-Sorint.lab ku umbiko osushiwo kwakubhekwa njengohlobo lwezinga phakathi kwabaqhubi be-DBMS. Lena iphrojekthi endala: ukukhishwa kwayo kokuqala komphakathi kwenzeka ngoNovemba 2015 (!), futhi inqolobane ye-GitHub iziqhayisa cishe izinkanyezi ezingu-3000 nabanikeli abangama-40+.

Ngempela, uStolon uyisibonelo esihle kakhulu sezakhiwo ezicatshangelwayo:

Ukubuka Kafushane Kwezitatimende Ze-PostgreSQL ze-Kubernetes, Izinketho Zethu kanye Nokuhlangenwe nakho
Idivayisi yalo opharetha ingatholakala ngokuningiliziwe embikweni noma imibhalo yephrojekthi. Ngokuvamile, kwanele ukusho ukuthi ingenza yonke into echazwe: i-failover, ama-proxies okufinyelela okusobala kweklayenti, ama-backups... Ngaphezu kwalokho, ama-proxies ahlinzeka ngokufinyelela ngensizakalo eyodwa yokugcina - ngokungafani nezinye izixazululo ezimbili okuxoxwe ngazo ngezansi (yinye inezinsiza ezimbili isisekelo sokufinyelela).

Nokho, Stolon azikho Izisetshenziswa Ngokwezifiso, yingakho ingakwazi ukuthunyelwa ngendlela elula futhi esheshayo - "njengamaqebelengwane ashisayo" - ukudala izimo ze-DBMS ku-Kubernetes. Ukuphathwa kwenziwa ngokusebenzisa utility stolonctl, ukusetshenziswa kwenziwa ngeshadi le-Helm, futhi okungokwezifiso kuyachazwa futhi kucaciswe ku-ConfigMap.

Ngakolunye uhlangothi, kuvela ukuthi u-opharetha akayena ngempela u-opharetha (ngemuva kwakho konke, akasebenzisi i-CRD). Kodwa ngakolunye uhlangothi, iwuhlelo oluguquguqukayo olukuvumela ukuthi ulungiselele izinsiza kuma-K8 njengoba ubona kufanelekile.

Ukufingqa, kithina uqobo akuzange kubonakale kukuhle kakhulu ukwakha ishadi elihlukile lesizindalwazi ngasinye. Ngakho-ke, saqala ukufuna ezinye izindlela.

2. I-Crunchy Data PostgreSQL Operator

Umsebenzisi ovela kudatha ye-Crunchy, insizwa yaseMelika eyaqalwa, yabonakala iyindlela enengqondo. Umlando wayo osesidlangalaleni uqala ngokukhishwa kokuqala ngoMashi 2017, kusukela lapho inqolobane ye-GitHub ithole izinkanyezi ezingaphansi kuka-1300 kanye nabanikeli abangama-50+. Ukukhishwa kwakamuva kusukela ngoSepthemba kwahlolelwa ukusebenza ne-Kubernetes 1.15-1.18, OpenShift 3.11+ ne-4.4+, GKE kanye ne-VMware Enterprise PKS 1.3+.

Ukwakhiwa kwe-Crunchy Data PostgreSQL Operator nakho kuhlangabezana nezidingo ezishiwo:

Ukubuka Kafushane Kwezitatimende Ze-PostgreSQL ze-Kubernetes, Izinketho Zethu kanye Nokuhlangenwe nakho

Ukuphathwa kwenzeka ngosizo pgo, nokho, yona ikhiqiza Izisetshenziswa Zangokwezifiso ze-Kubernetes. Ngakho-ke, u-opharetha usithokozisile njengabasebenzisi abangaba:

  • kukhona ukulawula nge-CRD;
  • ukuphathwa komsebenzisi okulula (futhi nge-CRD);
  • ukuhlanganiswa nezinye izingxenye I-Crunchy Data Container Suite - iqoqo elikhethekile lezithombe zeziqukathi ze-PostgreSQL nezinsiza zokusebenza nazo (okuhlanganisa i-pgBackRest, i-pgAudit, izandiso ezivela ku-contrib, njll.).

Kodwa-ke, imizamo yokuqala ukusebenzisa i-opharetha evela ku-Crunchy Data iveze izinkinga ezimbalwa:

  • Kwakungekho nokwenzeka kokubekezelela - i-nodeSelector kuphela enikeziwe.
  • Ama-pods adaliwe abeyingxenye Yokuthunyelwa, ngaphandle kokuthi sithumele isicelo esisezingeni eliphezulu. Ngokungafani ne-StatefulSets, Ukuthunyelwa akukwazi ukudala amadiski.

Umphumela wokugcina uholela ezikhathini ezihlekisayo: endaweni yokuhlola sikwazile ukusebenzisa ama-replicas ama-3 ngediski eyodwa isitoreji sendawo, okwenza isisebenzisi sibike ukuthi izifaniso ezi-3 bezisebenza (nakuba bezingasebenzi).

Esinye isici salo opharetha ukuhlanganiswa kwayo okulungele okwenziwe nezinhlelo ezihlukahlukene zokusekela. Isibonelo, kulula ukufaka i-pgAdmin ne-pgBounce, futhi ku imibhalo I-Grafana ne-Prometheus elungiselelwe ngaphambilini iyacatshangelwa. Kwakamuva ukukhishwa kwe-4.5.0-beta1 Ukuhlanganiswa okuthuthukisiwe nephrojekthi kuphawulwa ngokuhlukana pgMonitor, ngenxa yokuthi u-opharetha unikeza ukubonwa okucacile kwamamethrikhi e-PgSQL ngaphandle kwebhokisi.

Kodwa-ke, ukukhetha okungajwayelekile kwezinsiza ezikhiqizwe yi-Kubernetes kusiholele esidingweni sokuthola isisombululo esihlukile.

3. I-Operator ye-Zalando Postgres

Sesiyazi imikhiqizo ye-Zalando isikhathi eside: sinolwazi lokusebenzisa i-Zalenium futhi, kunjalo, sizamile Patroni isisombululo sabo esidumile se-HA se-PostgreSQL. Mayelana nendlela yenkampani yokudala I-Postgres Operator omunye wababhali bayo, u-Alexey Klyukin, uthe emoyeni I-Postgres-ULwesibili #5, futhi sakuthanda.

Lesi yisixazululo esincane kunazo zonke okuxoxwe ngaso esihlokweni: ukukhululwa kokuqala kwenzeka ngo-August 2018. Kodwa-ke, naphezu kwenani elincane lokukhishwa okusemthethweni, iphrojekthi ihambe ibanga elide, isivele idlula ukuthandwa kwesixazululo esivela ku-Crunchy Data enezinkanyezi ezingu-1300+ ku-GitHub kanye nenani eliphezulu labanikeli (70+).

"Ngaphansi kwe-hood" lo opharetha usebenzisa izixazululo ezihlolwe isikhathi:

Nansi indlela ukwakhiwa kwe-opharetha evela ku-Zalando okwethulwa ngayo:

Ukubuka Kafushane Kwezitatimende Ze-PostgreSQL ze-Kubernetes, Izinketho Zethu kanye Nokuhlangenwe nakho

Umsebenzisi uphathwa ngokugcwele nge-Custom Resources, udala ngokuzenzakalelayo i-StatefulSet esuka ezitsheni, engase yenziwe ngendlela oyifisayo ngokwengeza ama-sidecars ahlukahlukene ku-pod. Konke lokhu kuyinzuzo enkulu uma kuqhathaniswa nomsebenzisi ovela ku-Crunchy Data.

Njengoba sikhethe isisombululo ku-Zalando phakathi kwezinketho ezi-3 ezicatshangelwayo, incazelo eyengeziwe yamakhono ayo izokwethulwa ngezansi, ngokushesha kanye nomkhuba wokufaka isicelo.

Zijwayeze ne-Postgres Operator evela e-Zalando

Ukuthunyelwa komsebenzisi kulula kakhulu: vele ulande ukukhululwa kwamanje ku-GitHub bese usebenzisa amafayela e-YAML ohlwini lwemibhalo. kubonakala. Ngaphandle kwalokho, ungasebenzisa futhi opharethahub.

Ngemva kokufaka, kufanele ukhathazeke ngokusetha isitoreji samalogi nezipele. Lokhu kwenziwa nge-ConfigMap postgres-operator endaweni yamagama lapho ofake khona u-opharetha. Uma amakhosombe eselungisiwe, ungakwazi ukusebenzisa iqoqo lakho lokuqala le-PostgreSQL.

Isibonelo, ukuthunyelwa kwethu okujwayelekile kubukeka kanjena:

apiVersion: acid.zalan.do/v1
kind: postgresql
metadata:
 name: staging-db
spec:
 numberOfInstances: 3
 patroni:
   synchronous_mode: true
 postgresql:
   version: "12"
 resources:
   limits:
     cpu: 100m
     memory: 1Gi
   requests:
     cpu: 100m
     memory: 1Gi
 sidecars:
 - env:
   - name: DATA_SOURCE_URI
     value: 127.0.0.1:5432
   - name: DATA_SOURCE_PASS
     valueFrom:
       secretKeyRef:
         key: password
         name: postgres.staging-db.credentials
   - name: DATA_SOURCE_USER
     value: postgres
   image: wrouesnel/postgres_exporter
   name: prometheus-exporter
   resources:
     limits:
       cpu: 500m
       memory: 100Mi
     requests:
       cpu: 100m
       memory: 100Mi
 teamId: staging
 volume:
   size: 2Gi

Le-manifest isebenzisa iqoqo lezimo ezi-3 ezine-sidecar efomini postgres_exporter, lapho sithatha khona amamethrikhi ohlelo lokusebenza. Njengoba ubona, yonke into ilula kakhulu, futhi uma ufisa, ungakha inani elingenamkhawulo lamaqoqo.

Kuyafaneleka ukunaka iphaneli yokuphatha iwebhu - postgres-opharetha-ui. Iza no-opharetha futhi ikuvumela ukuthi udale futhi ususe amaqoqo, kanye nokusebenza ngama-backups enziwe ngu-opharetha.

Ukubuka Kafushane Kwezitatimende Ze-PostgreSQL ze-Kubernetes, Izinketho Zethu kanye Nokuhlangenwe nakho
Uhlu lwamaqoqo e-PostgreSQL

Ukubuka Kafushane Kwezitatimende Ze-PostgreSQL ze-Kubernetes, Izinketho Zethu kanye Nokuhlangenwe nakho
Ukuphathwa kwekhophi yasenqolobaneni

Esinye isici esithakazelisayo ukusekela Amaqembu API. Lo mshini udala ngokuzenzakalelayo izindima ku-PostgreSQL, ngokusekelwe ohlwini oluwumphumela lwamagama abasebenzisi. I-API bese ikuvumela ukuthi ubuyisele uhlu lwabasebenzisi izindima ezidalelwa bona ngokuzenzakalelayo.

Izinkinga nezisombululo

Kodwa-ke, ukusetshenziswa kwe-opharetha ngokushesha kwembula ukushiyeka okuningana okubalulekile:

  1. ukuntuleka kwe-nodeSelector ukwesekwa;
  2. ukungakwazi ukukhubaza ama-backups;
  3. uma usebenzisa umsebenzi wokudala isizindalwazi, amalungelo azenzakalelayo awaveli;
  4. Kwesinye isikhathi amadokhumenti ayashoda noma aphelelwe yisikhathi.

Ngenhlanhla, eziningi zazo zingaxazululwa. Ake siqale kusukela ekugcineni - izinkinga nge imibhalo.

Kungenzeka ukuthi uzohlangana neqiniso lokuthi akucaci ngaso sonke isikhathi ukuthi ungabhalisa kanjani isipele nokuthi ungaxhuma kanjani ibhakede eliyisipele ku-UI ye-Operator. Imibhalo ikhuluma ngalokhu ngokuhamba kwesikhathi, kodwa incazelo yangempela ingaphakathi PR:

  1. isidingo sokwenza imfihlo;
  2. idlulisele ku-opharetha njengepharamitha pod_environment_secret_name ku-CRD enezilungiselelo zika-opharetha noma ku-ConfigMap (kuya ngokuthi unquma kanjani ukufaka u-opharetha).

Nokho, njengoba kuvela, lokhu okwamanje akunakwenzeka. Yingakho siqoqile inguqulo yakho yomsebenzisi nokunye okwengeziwe okuvela eceleni. Ukuze uthole ukwaziswa okwengeziwe ngakho, bheka ngezansi.

Uma udlulisela imingcele yokwenza isipele ku-opharetha, okungukuthi - wal_s3_bucket kanye nokhiye wokufinyelela ku-AWS S3, bese kuba izosekela yonke into: hhayi kuphela izisekelo ekukhiqizeni, kodwa futhi isiteji. Lokhu akusifanelanga.

Encazelweni yamapharamitha we-Spilo, okuyi-Docker wrapper eyisisekelo ye-PgSQL uma usebenzisa opharetha, kuvele ukuthi: ungadlula ipharamitha. WAL_S3_BUCKET ayinalutho, ngaleyo ndlela ikhubaza izipele. Ngaphezu kwalokho, ngathola injabulo enkulu i-PR elungile, esakwamukela ngokushesha emfolokoni yethu. Manje udinga nje ukwengeza enableWALArchiving: false kusisetshenziswa seqoqo le-PostgreSQL.

Yebo, bekunethuba lokukwenza ngokuhlukile ngokusebenzisa ama-opharetha angu-2: eyodwa yesiteji (ngaphandle kwama-backups), neyesibili yokukhiqiza. Kodwa sakwazi ukwenza ngeyodwa.

Kulungile, sifunde ukudlulisa ukufinyelela kuzinqolobane ze-S3 futhi izipele zaqala ukungena kwisitoreji. Uwenza kanjani amakhasi ayisipele asebenze ku-Operator UI?

Ukubuka Kafushane Kwezitatimende Ze-PostgreSQL ze-Kubernetes, Izinketho Zethu kanye Nokuhlangenwe nakho

Uzodinga ukungeza okuguquguqukayo okungu-3 ku-Operator UI:

  • SPILO_S3_BACKUP_BUCKET
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

Ngemuva kwalokhu, ukuphathwa kwama-backups kuzotholakala, kithina kuzokwenza umsebenzi ube lula ngesiteji, okusivumela ukuthi silethe izingcezu zokukhiqiza lapho ngaphandle kwemibhalo eyengeziwe.

Enye inzuzo bekuwumsebenzi ne-Team API kanye namathuba amaningi okudala imininingwane yolwazi nezindima kusetshenziswa amathuluzi okusebenza. Nokho, okudaliwe izindima zazingenawo amalungelo ngokuzenzakalelayo. Ngokufanelekile, umsebenzisi onamalungelo okufunda akakwazanga ukufunda amathebula amasha.

Kungani kunjalo? Naphezu kweqiniso lokuthi kukhodi kuyinto okudingekayo GRANT, azisetshenziswa njalo. Kunezindlela ezi-2: syncPreparedDatabases и syncDatabases. I syncPreparedDatabases - naphezu kweqiniso lokuthi esigabeni preparedDatabases kuyinto kukhona umbandela defaultRoles и defaultUsers ukudala izindima, amalungelo azenzakalelayo awasetshenziswa. Sisezinhlelweni zokulungisa isiqeshana ukuze la malungelo asebenze ngokuzenzakalelayo.

Futhi iphuzu lokugcina ekuthuthukisweni okubalulekile kithi - i-patch, okwengeza i-Node Affinity ku-StatefulSet edaliwe. Amakhasimende ethu avame ukukhetha ukwehlisa izindleko ngokusebenzisa izimo ezikhona, futhi ngokusobala awakufanelekeli ukusingatha izinsiza zesizindalwazi. Lolu daba lungaxazululwa ngokubekezelela, kodwa ukuba khona kwe-Node Affinity kunikeza ukuzethemba okukhulu.

Kwenzenjani?

Ngokusekelwe emiphumeleni yokuxazulula izinkinga ezingenhla, sifake i-Postgres Operator kusuka ku-Zalando inqolobane yakho, lapho iqoqwa khona ngeziqephu ezinjalo eziwusizo. Futhi ukuze kube lula, siphinde saqoqa Isithombe se-Docker.

Uhlu lwama-PRs amukelwa kumfoloko:

Kuyoba kuhle uma umphakathi usekela lawa ma-PRs ukuze akhuphukele phezulu nenguqulo elandelayo yesisebenzisi (1.6).

Ibhonasi! Indaba yempumelelo yokufuduka kokukhiqiza

Uma usebenzisa i-Patroni, ukukhiqizwa okubukhoma kungathuthelwa ku-opharetha ngesikhathi sokuphumula esincane.

I-Spilo ikuvumela ukuthi udale amaqoqo alindile ngesitoreji se-S3 nge Wal-E, lapho ilogi kanambambili ye-PgSQL igcinwa okokuqala ku-S3 bese ikhishwa isifaniso. Kodwa yini okufanele uyenze uma unayo hhayi esetshenziswa u-Wal-E kungqalasizinda endala? Isixazululo sale nkinga sesivele sikhona kwaphakanyiswa kuhabhu.

Ukuphindaphinda okunengqondo kwe-PostgreSQL kuyasiza. Kodwa-ke, ngeke singene emininingwaneni mayelana nendlela yokudala ukushicilelwa nokubhaliselwe, ngoba ... uhlelo lwethu lwaluyi-fiasco.

Iqiniso liwukuthi i-database yayinamathebula amaningana alayishiwe anezigidi zemigqa, okuthe, ngaphezu kwalokho, ayehlale egcwaliswa futhi esuswa. Ukubhalisa okulula с copy_data, lapho isifaniso esisha sikopisha konke okuqukethwe okuvela ku-master, asikwazi ukuhambisana nokuyinhloko. Ukukopisha okuqukethwe kusebenze isonto lonke, kodwa akuzange kubanjwe uchwepheshe. Ekugcineni, kwangisiza ukuxazulula inkinga indatshana ozakwabo abavela ku-Avito: ungadlulisa idatha usebenzisa pg_dump. Ngizochaza inguqulo yethu (elungiswe kancane) yale algorithm.

Umbono wukuthi ungenza ukubhalisa okukhubazekile okuboshelwe endaweni ethile yokuphindaphinda, bese ulungisa inombolo yokwenziwe. Kwakukhona izifaniso ezitholakalayo zomsebenzi wokukhiqiza. Lokhu kubalulekile ngoba isifaniso sizosiza ekudaleni ukulahlwa okungaguquki futhi siqhubeke nokuthola izinguquko ezivela kumphathi.

Imiyalo elandelayo echaza inqubo yokufuduka izosebenzisa lezi zimpawu zosokhaya ezilandelayo:

  1. master - iseva yomthombo;
  2. isifaniso1 - isifaniso sokusakaza emkhiqizweni omdala;
  3. isifaniso2 - ikhophi entsha enengqondo.

Uhlelo lokufuduka

1. Dala okubhaliselwe ku-master wawo wonke amathebula ku-schema public isisekelo dbname:

psql -h master -d dbname -c "CREATE PUBLICATION dbname FOR ALL TABLES;"

2. Dala i-slot yokuphindaphinda ku-master:

psql -h master -c "select pg_create_logical_replication_slot('repl', 'pgoutput');"

3. Misa ukuphindaphinda esifanekisweni esidala:

psql -h replica1 -c "select pg_wal_replay_pause();"

4. Thola inombolo yokwenziwayo kumphathi:

psql -h master -c "select replay_lsn from pg_stat_replication where client_addr = 'replica1';"

5. Susa okulahlwayo kumfanekiso omdala. Sizokwenza lokhu ngemicu eminingi, ezosiza ukusheshisa inqubo:

pg_dump -h replica1 --no-publications --no-subscriptions -O -C -F d -j 8 -f dump/ dbname

6. Layisha ukulahlwa kuseva entsha:

pg_restore -h replica2 -F d -j 8 -d dbname dump/

7. Ngemva kokulanda okulahlwayo, ungaqala ukuphindaphinda emfanekisweni wokusakaza-bukhoma:

psql -h replica1 -c "select pg_wal_replay_resume();"

7. Masidale ukubhalisa kusifaniso esisha esinengqondo:

psql -h replica2 -c "create subscription oldprod connection 'host=replica1 port=5432 user=postgres password=secret dbname=dbname' publication dbname with (enabled = false, create_slot = false, copy_data = false, slot_name='repl');"

8. Masithole oid okubhaliselwe:

psql -h replica2 -d dbname -c "select oid, * from pg_subscription;"

9. Ake sithi yamukelwe oid=1000. Masisebenzise inombolo yokwenziwe kokubhaliselwe:

psql -h replica2 -d dbname -c "select pg_replication_origin_advance('pg_1000', 'AA/AAAAAAAA');"

10. Ake siqale ukuphindaphinda:

psql -h replica2 -d dbname -c "alter subscription oldprod enable;"

11. Hlola isimo sokubhalisa, ukuphindaphinda kufanele kusebenze:

psql -h replica2 -d dbname -c "select * from pg_replication_origin_status;"
psql -h master -d dbname -c "select slot_name, restart_lsn, confirmed_flush_lsn from pg_replication_slots;"

12. Ngemuva kokuthi ukuphindaphinda sekuqalisiwe futhi imininingwane yolwazi ivumelanisiwe, ungashintsha.

13. Ngemva kokukhubaza ukuphindaphinda, udinga ukulungisa ukulandelana. Lokhu kuchazwe kahle esihlokweni esithi wiki.postgresql.org.

Ngenxa yalolu hlelo, ukushintshwa kwenzeke ngokubambezeleka okuncane.

isiphetho

Ama-opharetha e-Kubernetes akuvumela ukuthi wenze lula izenzo ezihlukahlukene ngokuzehlisela ekwakhiweni kwezinsiza ze-K8s. Kodwa-ke, ngokuzuza okuzenzakalelayo okumangalisayo ngosizo lwabo, kufanelekile ukukhumbula ukuthi kungaletha nenani lama-nuances angalindelekile, ngakho-ke khetha opharetha bakho ngokuhlakanipha.

Ngemva kokucabangela opharetha abathathu abadume kakhulu be-Kubernetes be-PostgreSQL, sikhethe iphrojekthi ku-Zalando. Futhi bekufanele sinqobe ubunzima obuthile ngakho, kodwa umphumela wawujabulisa ngempela, ngakho-ke sihlela ukunweba lokhu okuhlangenwe nakho kokunye ukufakwa kwe-PgSQL. Uma unolwazi lokusebenzisa izixazululo ezifanayo, sizojabula ukubona imininingwane kumazwana!

PS

Funda futhi kubhulogi yethu:

Source: www.habr.com

Engeza amazwana