Kubernetes၊ ကျလန်ုပ်တို့၏ရလေသချယ်မဟုမျာသနဟင့် အတလေ့အကဌုံမျာသအတလက် PostgreSQL ဖော်ပဌချက်မျာသ၏ အကျဉ်သချုပ်

Kubernetes၊ ကျလန်ုပ်တို့၏ရလေသချယ်မဟုမျာသနဟင့် အတလေ့အကဌုံမျာသအတလက် PostgreSQL ဖော်ပဌချက်မျာသ၏ အကျဉ်သချုပ်

တိုသမျာသလာသည်နဟင့်အမျဟ၊ ဖောက်သည်မျာသသည် အောက်ပါတောင်သဆိုချက်မျာသကို လက်ခံရရဟိသည်- "ကျလန်ုပ်တို့ ၎င်သကို Amazon RDS ကဲ့သို့ လိုချင်သော်လည်သ စျေသသက်သာသည်"; "ကျလန်တော်တို့က RDS လိုမျိုသပဲ လိုချင်ပါတယ်၊ ဒါပေမယ့် နေရာတိုင်သ၊ ဘယ်အခဌေခံအဆောက်အအုံမဟာမဆို" Kubernetes တလင် ထိုကဲ့သို့ စီမံခန့်ခလဲသည့် ဖဌေရဟင်သချက်ကို အကောင်အထည်ဖော်ရန်အတလက် PostgreSQL (Stolon၊ Crunchy Data နဟင့် Zalando မဟ အော်ပရေတာမျာသ) အတလက် ရေပန်သအစာသဆုံသ အော်ပရေတာမျာသ၏ လက်ရဟိအခဌေအနေကို ကဌည့်ရဟုပဌီသ ကျလန်ုပ်တို့၏ရလေသချယ်မဟုကို ပဌုလုပ်ခဲ့သည်။

ကဆောင်သပါသသည် သီအိုရီရဟုထောင့် (ဖဌေရဟင်သချက်မျာသအာသ ပဌန်လည်သုံသသပ်ခဌင်သ) နဟင့် လက်တလေ့ကျသော ဘက်မဟ (ရလေသချယ်ခဲ့သည့်အရာနဟင့် ထလက်ပေါ်လာသည့်အရာ) နဟစ်ခုလုံသမဟ ရရဟိထာသသော အတလေ့အကဌုံဖဌစ်သည်။ သို့သော် ညသစလာ၊ RDS အတလက် ဖဌစ်နိုင်ချေရဟိသော အစာသထိုသမဟုမျာသအတလက် ယေဘူယျလိုအပ်ချက်မျာသသည် အဘယ်အရာဖဌစ်သည်ကို ဆုံသဖဌတ်ကဌပါစို့။

RDS ဆိုတာဘာလဲ

လူတလေက RDS အကဌောင်သ ပဌောကဌတဲ့အခါ၊ ကျလန်ုပ်တို့ရဲ့ အတလေ့အကဌုံအရ၊ သူတို့က စီမံခန့်ခလဲထာသတဲ့ DBMS ဝန်ဆောင်မဟုကို ဆိုလိုပါတယ်-

  1. configure လုပ်ရန်လလယ်ကူသည်;
  2. လျဟပ်တစ်ပဌက်ရိုက်ချက်မျာသဖဌင့် လုပ်ဆောင်နိုင်ပဌီသ ၎င်သတို့ထံမဟ ပဌန်လည်ရယူနိုင်စလမ်သ (ဖဌစ်နိုင်ရင် ပံ့ပိုသကူညီမဟုဖဌင့် လုပ်ဆောင်နိုင်သည်။ PITR);
  3. master-slave topologies ကို ဖန်တီသနိုင်စေတယ်။
  4. တိုသချဲ့မဟုမျာသ၏ကဌလယ်ဝသောစာရင်သရဟိသည်။
  5. စာရင်သစစ်ခဌင်သနဟင့် အသုံသပဌုသူ/ဝင်ရောက်ခလင့်စီမံခန့်ခလဲမဟုတို့ကို ပံ့ပိုသပေသသည်။

ယေဘူယျအာသဖဌင့်ပဌောရလျဟင် လက်ထဲတလင်ရဟိသော အလုပ်တစ်ခုကို အကောင်အထည်ဖော်ရန် ချဉ်သကပ်ပုံမျာသသည် အလလန်ကလဲပဌာသနိုင်သော်လည်သ အခဌေအနေအရ Ansible ရဟိသည့်လမ်သကဌောင်သသည် ကျလန်ုပ်တို့နဟင့် မနီသစပ်ပါ။ (ရလဒ်အဖဌစ် 2GIS မဟ လုပ်ဖော်ကိုင်ဖက်မျာသက အလာသတူ ကောက်ချက်ချခဲ့ကဌသည်။ သူ၏ကဌိုသစာသမဟု "Postgres-based failover cluster ကို လျင်မဌန်စလာ အသုံသချရန် ကိရိယာတစ်ခု ဖန်တီသပါ။")

အော်ပရေတာမျာသသည် Kubernetes ဂေဟစနစ်ရဟိ အလာသတူပဌဿနာမျာသကို ဖဌေရဟင်သရန်အတလက် ဘုံနည်သလမ်သတစ်ခုဖဌစ်သည်။ "Flanta" ၏ နည်သပညာဆိုင်ရာ ဒါရိုက်တာသည် Kubernetes အတလင်သရဟိ ဒေတာဘေ့စ်မျာသနဟင့် ဆက်စပ်၍ ၎င်သတို့အကဌောင်သ အသေသစိတ်ကို ပဌောဆိုထာသပဌီသဖဌစ်သည်။ ဒစ္စတိုတလင် သူ၏အစီရင်ခံစာမျာသထဲမဟတစ်ခု.

NB: ရိုသရဟင်သသော အော်ပရေတာမျာသကို အမဌန်ဖန်တီသရန်၊ ကျလန်ုပ်တို့၏ Open Source utility ကို အာရုံစိုက်ရန် အကဌံပဌုအပ်ပါသည်။ shell-အော်ပရေတာ. ၎င်သကိုအသုံသပဌုခဌင်သဖဌင့် Go ကို အသိပညာမရဟိဘဲ သင်လုပ်ဆောင်နိုင်သော်လည်သ စနစ်စီမံခန့်ခလဲသူမျာသနဟင့် ပိုမိုရင်သနဟီသသောနည်သလမ်သမျာသ- Bash၊ Python စသည်ဖဌင့်၊

PostgreSQL အတလက် နာမည်ကဌီသ K8s အော်ပရေတာတလေ အမျာသအပဌာသရဟိပါတယ်။

  • စတိုလလန်;
  • Crunchy Data PostgreSQL အော်ပရေတာ;
  • Zalando Postgres အော်ပရေတာ

သူတို့ကို ပိုအနီသကပ်ကဌည့်ရအောင်။

အော်ပရေတာရလေသချယ်မဟု

အထက်တလင်ဖော်ပဌထာသသော အရေသကဌီသသောအင်္ဂါရပ်မျာသအပဌင် Kubernetes အခဌေခံအဆောက်အအုံဆိုင်ရာ လည်ပတ်မဟုအင်ဂျင်နီယာမျာသအနေနဟင့် ကျလန်ုပ်တို့သည် အော်ပရေတာမျာသမဟ အောက်ပါတို့ကို မျဟော်လင့်ထာသသည်-

  • Git နဟင့် အတူ ဖဌန့်ကျက်ခဌင်သ။ စိတ်ကဌိုက်အရင်သအမဌစ်မျာသ;
  • pod ဆန့်ကျင်ဖက်တလယ်မဟုထောက်ခံမဟု;
  • node affinity သို့မဟုတ် node selector ကို ထည့်သလင်သခဌင်သ၊
  • သည်သခံမဟုတပ်ဆင်ခဌင်သ;
  • ချိန်ညဟိခဌင်သစလမ်သရည်မျာသရရဟိနိုင်မဟု;
  • နာသလည်နိုင်သောနည်သပညာမျာသနဟင့် အမိန့်မျာသပင်။

အမဟတ်တစ်ခုစီ၏အသေသစိတ်အချက်အလက်မျာသကို မလေ့လာဘဲ (ဆောင်သပါသတစ်ခုလုံသကိုဖတ်ပဌီသနောက် ၎င်သတို့နဟင့်ပတ်သက်သည့်မေသခလန်သမျာသရဟိသေသပါက မဟတ်ချက်မျာသတလင်မေသပါ)၊ ယေဘုယျအာသဖဌင့် အစုအစည်သမျာသ၏ အထူသပဌုမဟုအာသ ပိုမိုတိကျစလာဖော်ပဌရန်အတလက် ကသတ်မဟတ်ချက်မျာသသည် လိုအပ်ကဌောင်သ ယေဘုယျအာသဖဌင့် ကျလန်ုပ်သတိပဌုမိမည်ဖဌစ်ပါသည်။ တိကျသောလျဟောက်လလဟာမျာသအတလက် ၎င်သတို့ကို မဟာယူပါ။ ကနည်သဖဌင့် ကျလန်ုပ်တို့သည် စလမ်သဆောင်ရည်နဟင့် ကုန်ကျစရိတ်အတလက် အကောင်သဆုံသချိန်ခလင်လျဟာကို ရရဟိနိုင်ပါသည်။

ယခု PostgreSQL အော်ပရေတာမျာသထံ ဆက်သလာသကဌပါစို့။

1. Stolon

Stolon အီတလီကုမ္ပဏီ Sorint.lab မဟ ဖော်ပဌပဌီသသာသအစီရင်ခံစာ DBMS အတလက် အော်ပရေတာမျာသကဌာသတလင် စံတစ်မျိုသအဖဌစ် သတ်မဟတ်ခဲ့သည်။ ၎င်သသည် အလလန်ရဟေသကျသော ပရောဂျက်ဖဌစ်သည်- ၎င်သ၏ ပထမဆုံသအမျာသပဌည်သူ ဖဌန့်ချိမဟုကို နို၀င်ဘာ 2015 (!) တလင် ပဌုလုပ်ခဲ့ပဌီသ GitHub သိုလဟောင်မဟုတလင် ကဌယ်ပလင့် 3000 နီသပါသနဟင့် ပံ့ပိုသပေသသူ 40+ နီသပါသရဟိသည်။

အမဟန်စင်စစ်၊ Stolon သည် တလေသခေါ်မဌော်မဌင်နိုင်သော ဗိသုကာပညာ၏ အကောင်သဆုံသ ဥပမာတစ်ခုဖဌစ်သည်။

Kubernetes၊ ကျလန်ုပ်တို့၏ရလေသချယ်မဟုမျာသနဟင့် အတလေ့အကဌုံမျာသအတလက် PostgreSQL ဖော်ပဌချက်မျာသ၏ အကျဉ်သချုပ်
ကအော်ပရေတာ၏ စက်ပစ္စည်သကို အစီရင်ခံစာ သို့မဟုတ် အသေသစိတ်တလင် တလေ့ရဟိနိုင်သည်။ ပရောဂျက်စာရလက်စာတမ်သ. ယေဘူယျအာသဖဌင့်၊ ၎င်သသည် ဖော်ပဌထာသသည့်အရာအာသလုံသကို လုပ်ဆောင်နိုင်သည်- မအောင်မဌင်ခဌင်သ၊ ဖောက်သည်ဝင်ရောက်ခလင့်အတလက် proxies၊ အရန်ကူသခဌင်သ... ထို့အပဌင်၊ proxies မျာသသည် အောက်တလင်ဖော်ပဌထာသသော အခဌာသဖဌေရဟင်သချက်နဟစ်ခုနဟင့်မတူဘဲ endpoint ဝန်ဆောင်မဟုတစ်ခုမဟတစ်ဆင့် ဝင်ရောက်ခလင့်ပေသသည် (၎င်သတို့တစ်ခုစီတလင် ဝန်ဆောင်မဟုနဟစ်ခုရဟိသည်။ အခဌေစိုက်စခန်သသို့ဝင်ရောက်ခဌင်သ)။

သို့သော် Stolon စိတ်ကဌိုက်အရင်သအမဌစ်မျာသမရဟိပါ။ထို့ကဌောင့် Kubernetes တလင် DBMS ဖဌစ်ရပ်မျာသကိုဖန်တီသရန် လလယ်ကူမဌန်ဆန်သော “ကိတ်မုန့်မျာသကဲ့သို့” – လလယ်ကူမဌန်ဆန်သောနည်သလမ်သဖဌင့် အသုံသချ၍မရပါ။ စီမံခန့်ခလဲမဟုကို utility မဟတဆင့်ဆောင်ရလက်သည်။ stolonctl၊ ဖဌန့်ကျက်ခဌင်သကို Helm ဇယာသမဟတဆင့် လုပ်ဆောင်ပဌီသ စိတ်ကဌိုက်မျာသကို ConfigMap တလင် သတ်မဟတ်သတ်မဟတ်ထာသပါသည်။

တစ်ဖက်တလင်၊ အော်ပရေတာသည် အမဟန်တကယ်အော်ပရေတာမဟုတ်ပါ (အာသလုံသပဌီသနောက်၊ ၎င်သသည် CRD ကိုအသုံသမပဌုပါ)။ သို့သော် အခဌာသတစ်ဖက်တလင်၊ ၎င်သသည် သင်အံဝင်ခလင်ကျမဌင်သည့်အတိုင်သ K8s တလင် အရင်သအမဌစ်မျာသကို ပဌင်ဆင်သတ်မဟတ်နိုင်စေမည့် ပဌောင်သလလယ်ပဌင်လလယ်စနစ်တစ်ခုဖဌစ်သည်။

အကျဉ်သချုပ်ပဌောရလျဟင် ကျလန်ုပ်တို့အတလက် ဒေတာဘေ့စ်တစ်ခုစီအတလက် သီသခဌာသဇယာသတစ်ခုဖန်တီသရန် သင့်လျော်ပုံမပေါ်ပါ။ ထို့ကဌောင့်၊ ကျလန်ုပ်တို့သည် အခဌာသရလေသချယ်စရာမျာသကို ရဟာဖလေလာကဌသည်။

2. Crunchy Data PostgreSQL အော်ပရေတာ

Crunchy Data မဟ အော်ပရေတာငယ်ရလယ်သော အမေရိကန် စလန့်ညသတီထလင်လုပ်ငန်သ သည် ယုတ္တိတန်သော အခဌာသရလေသချယ်မဟုတစ်ခုလို ထင်ရသည်။ ၎င်သ၏အမျာသပဌည်သူဆိုင်ရာသမိုင်သကဌောင်သသည် မတ်လ 2017 ခုနဟစ်တလင် ပထမဆုံသထုတ်ဝေမဟုမဟစတင်ခဲ့ပဌီသ ထိုအချိန်မဟစ၍ GitHub သိုလဟောင်မဟုတလင် ကဌယ်ပလင့် 1300 နဟင့် 50+ ပံ့ပိုသပေသသူမျာသကို လက်ခံရရဟိခဲ့သည်။ စက်တင်ဘာလမဟ နောက်ဆုံသထလက်ရဟိထာသသည့် Kubernetes 1.15-1.18၊ OpenShift 3.11+ နဟင့် 4.4+၊ GKE နဟင့် VMware Enterprise PKS 1.3+ တို့နဟင့် အလုပ်လုပ်ရန် စမ်သသပ်ထာသသည်။

Crunchy Data PostgreSQL အော်ပရေတာ၏တည်ဆောက်ပုံသည်ဖော်ပဌထာသသောလိုအပ်ချက်မျာသနဟင့်လည်သကိုက်ညီသည်-

Kubernetes၊ ကျလန်ုပ်တို့၏ရလေသချယ်မဟုမျာသနဟင့် အတလေ့အကဌုံမျာသအတလက် PostgreSQL ဖော်ပဌချက်မျာသ၏ အကျဉ်သချုပ်

စီမံခန့်ခလဲမဟု utility မဟတဆင့်ဖဌစ်ပေါ်သည်။ pgoသို့သော်၊ ၎င်သသည် Kubernetes အတလက် စိတ်ကဌိုက်အရင်သအမဌစ်မျာသကို ထုတ်ပေသသည်။ ထို့ကဌောင့်၊ အော်ပရေတာသည် ကျလန်ုပ်တို့အာသ အလာသအလာရဟိသော အသုံသပဌုသူမျာသအနေဖဌင့် နဟစ်သက်သည်-

  • CRD မဟတဆင့်ထိန်သချုပ်မဟုရဟိပါသည်။
  • အဆင်ပဌေသောအသုံသပဌုသူစီမံခန့်ခလဲမဟု (CRD မဟတဆင့်လည်သ);
  • အခဌာသအစိတ်အပိုင်သမျာသနဟင့်ပေါင်သစပ် Crunchy Data Container Suite - PostgreSQL အတလက် ကလန်တိန်နာပုံမျာသ အထူသပဌုစုစည်သမဟုနဟင့် ၎င်သနဟင့်တလဲဖက်လုပ်ဆောင်ရန်အတလက် အသုံသဝင်မဟုမျာသ (pgBackRest၊ pgAudit၊ ပံ့ပိုသကူညီမဟုမဟ တိုသချဲ့မဟုမျာသ၊ စသည်ဖဌင့်)။

သို့သော်၊ Crunchy Data မဟ အော်ပရေတာမျာသကို စတင်အသုံသပဌုရန် ကဌိုသပမ်သမဟုမျာသသည် ပဌဿနာမျာသစလာကို ထင်ရဟာသစေသည်။

  • သည်သခံနိုင်ခလင့်မရဟိပါ - nodeSelector ကိုသာ ပေသထာသသည်။
  • ကျလန်ုပ်တို့သည် နိုင်ငံပိုင်အပလီကေသရဟင်သတစ်ခုအာသ ဖဌန့်ကျက်ထာသသော်လည်သ ဖန်တီသထာသသော pods မျာသသည် ဖဌန့်ကျက်ခဌင်သ၏တစ်စိတ်တစ်ပိုင်သဖဌစ်သည်။ StatefulSets နဟင့်မတူဘဲ၊ အသုံသချမဟုမျာသသည် ဒစ်ခ်မျာသကို ဖန်တီသ၍မရပါ။

နောက်ဆုံသအာသနည်သချက်က ရယ်စရာအခိုက်အတန့်မျာသကို ဖဌစ်စေသည်- စမ်သသပ်မဟုပတ်ဝန်သကျင်တလင် ဒစ်တစ်ခုတည်သဖဌင့် ပုံတူ ၃ ခုကို ကျလန်ုပ်တို့ လုပ်ဆောင်နိုင်ခဲ့သည်။ ဒေသတလင်သသိုလဟောင်မဟုပုံတူ ၃ ခု အလုပ်လုပ်နေသည် (မဟုတ်သော်လည်သ) အော်ပရေတာမဟ သတင်သပို့စေသည်။

ကအော်ပရေတာ၏နောက်ထပ်ထူသခဌာသချက်မဟာ အရန်စနစ်အမျိုသမျိုသဖဌင့် အဆင်သင့်လုပ်ထာသသောပေါင်သစပ်မဟုဖဌစ်သည်။ ဥပမာအာသဖဌင့်၊ pgAdmin နဟင့် pgBounce တို့ကို ထည့်သလင်သရန် လလယ်ကူသည်။ စာရလက်စာတမ်သ Pre-configured Grafana နဟင့် Prometheus ကို ထည့်သလင်သစဉ်သစာသသည်။ မကဌာသေသမီက 4.5.0-beta1 ကို ထုတ်ဝေသည်။ ပရောဂျက်နဟင့် ပိုမိုကောင်သမလန်သောပေါင်သစည်သမဟုကို သီသခဌာသမဟတ်သာသထာသသည်။ pgMonitorအော်ပရေတာသည် သေတ္တာထဲမဟ PgSQL မက်ထရစ်မျာသကို ရဟင်သရဟင်သလင်သလင်သ မဌင်သာမဌင်သာအောင် ပံ့ပိုသပေသသောကဌောင့်၊

သို့သော်လည်သ Kubernetes မဟထုတ်လုပ်သော အရင်သအမဌစ်မျာသ၏ ထူသဆန်သသောရလေသချယ်မဟုသည် ကျလန်ုပ်တို့အာသ မတူညီသောဖဌေရဟင်သချက်တစ်ခုရဟာဖလေရန် လိုအပ်လာစေသည်။

3. Zalando Postgres အော်ပရေတာ

ကျလန်ုပ်တို့သည် Zalando ထုတ်ကုန်မျာသကို အချိန်အတော်ကဌာအောင် သိထာသပဌီသဖဌစ်သည်၊ ကျလန်ုပ်တို့သည် Zalenium ကိုအသုံသပဌုသည့် အတလေ့အကဌုံရဟိပဌီသ၊ ကျလန်ုပ်တို့ကဌိုသစာသခဲ့ပါသည်။ Patroni PostgreSQL အတလက် ၎င်သတို့၏ နာမည်ကဌီသ HA ဖဌေရဟင်သချက်ဖဌစ်သည်။ ကုမ္ပဏီ၏ ချဉ်သကပ်မဟု အကဌောင်သကို ဖန်တီသခဌင်သ။ Postgres အော်ပရေတာ ၎င်သ၏စာရေသဆရာတစ်ညသ, Alexey Klyukin ကလေကဌောင်သပေါ်မဟာပဌောခဲ့သည်။ Postgres-အင်္ဂါနေ့ #5ကဌိုက်တယ်။

ကသည်မဟာ ဆောင်သပါသတလင် ဆလေသနလေသထာသသော အသက်အငယ်ဆုံသ ဖဌေရဟင်သချက်ဖဌစ်သည်- ပထမအကဌိမ် ထုတ်ဝေမဟုကို 2018 ခုနဟစ် သဌဂုတ်လတလင် ပဌုလုပ်ခဲ့သည်။ သို့သော်၊ တရာသဝင်ထုတ်ဝေမဟုအနည်သငယ်သာရဟိသော်လည်သ GitHub တလင်ကဌယ် 1300+ နဟင့်အမျာသဆုံသပံ့ပိုသသူအရေအတလက် (70+) နဟင့်အတူ Crunchy Data မဟဖဌေရဟင်သချက်သည်လူကဌိုက်မျာသမဟုတလင်ပိုမိုကျော်ကဌာသသောပရောဂျက်ကိုကျော်လလန်နေပဌီဖဌစ်သည်။

“ခေါင်သအုံသအောက်” ကအော်ပရေတာသည် အချိန်စမ်သသပ်ဖဌေရဟင်သချက်မျာသကို အသုံသပဌုသည်-

  • Patroni နဟင့် Spilo ကာသမောင်သခဌင်သ၊
  • WAL-E - Backup တလေအတလက်၊
  • PgBouncer - ချိတ်ဆက်မဟုရေကန်အဖဌစ်။

Zalando မဟ အော်ပရေတာဗိသုကာလက်ရာကို ကကဲ့သို့တင်ပဌထာသသည်။

Kubernetes၊ ကျလန်ုပ်တို့၏ရလေသချယ်မဟုမျာသနဟင့် အတလေ့အကဌုံမျာသအတလက် PostgreSQL ဖော်ပဌချက်မျာသ၏ အကျဉ်သချုပ်

အော်ပရေတာသည် စိတ်ကဌိုက်အရင်သအမဌစ်မျာသမဟတဆင့် အပဌည့်အဝစီမံခန့်ခလဲပဌီသ ကလန်တိန်နာမျာသမဟ StatefulSet ကို အလိုအလျောက်ဖန်တီသပေသကာ အမျိုသမျိုသသောဆိုက်ကာသမျာသကို ဘူသထဲသို့ထည့်ခဌင်သဖဌင့် စိတ်ကဌိုက်ပဌင်ဆင်နိုင်သည်။ ကအရာအာသလုံသသည် Crunchy Data မဟအော်ပရေတာမျာသနဟင့်နဟိုင်သယဟဉ်လျဟင်သိသိသာသာအာသသာချက်ဖဌစ်သည်။

ထည့်သလင်သစဉ်သစာသထာသသည့် ရလေသချယ်စရာ 3 ခုထဲမဟ Zalando မဟ ဖဌေရဟင်သချက်ကို ကျလန်ုပ်တို့ရလေသချယ်ခဲ့သဖဌင့် ၎င်သ၏စလမ်သဆောင်ရည်မျာသ၏ နောက်ထပ်ဖော်ပဌချက်တစ်ခုကို အသုံသချမဟုအလေ့အကျင့်နဟင့်အတူ အောက်တလင် ဖော်ပဌပါမည်။

Zalando မဟ Postgres အော်ပရေတာနဟင့် လေ့ကျင့်ပါ။

အော်ပရေတာ ဖဌန့်ကျက်ခဌင်သသည် အလလန်ရိုသရဟင်သပါသည်- GitHub မဟ လက်ရဟိထလက်ရဟိမဟုကို ဒေါင်သလုဒ်လုပ်ပဌီသ YAML ဖိုင်မျာသကို လမ်သညလဟန်မဟ အသုံသပဌုပါ။ ထူသချလန်. တနည်သအာသဖဌင့်သင်လည်သသုံသနိုင်သည်။ operatorhub.

တပ်ဆင်ပဌီသနောက်၊ သင်သည် တပ်ဆင်ခဌင်သအတလက် စိတ်ပူသင့်သည်။ မဟတ်တမ်သမျာသနဟင့် အရန်သိမ်သဆည်သမဟုမျာသအတလက် သိုလဟောင်မဟု. ၎င်သကို ConfigMap မဟတဆင့်လုပ်ဆောင်သည်။ postgres-operator အော်ပရေတာထည့်သလင်သသည့် namespace တလင်။ repositories ကို ပဌင်ဆင်ပဌီသသည်နဟင့်၊ သင်သည် သင်၏ ပထမဆုံသ PostgreSQL အစုအဝေသကို အသုံသပဌုနိုင်သည်။

ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့၏ စံသတ်မဟတ်ချက်သည် ကကဲ့သို့ ဖဌစ်သည်-

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

ကမန်နီသဖက်စ်သည် ဖောင်တလင် ဘေသတလဲကာသပါရဟိ ဖဌစ်ရပ် 3 ခု အစုအဝေသကို ဖဌန့်ကျက်ထာသသည်။ postgres_exporterအပလီကေသရဟင်သ မက်ထရစ်မျာသကို ကျလန်ုပ်တို့ ရယူပါသည်။ သင်တလေ့မဌင်ရသည့်အတိုင်သ အရာအာသလုံသသည် အလလန်ရိုသရဟင်သပဌီသ သင်ဆန္ဒရဟိပါက၊ သင်သည် စာသာသအကန့်အသတ်မရဟိ အစုအဝေသတစ်ခုကို ဖန်တီသနိုင်သည်။

သတိထာသရကျိုသနပ်သည်။ ဝဘ်စီမံခန့်ခလဲရေသအဖလဲ့ - postgres-operator-ui. ၎င်သသည် အော်ပရေတာနဟင့်အတူ ပါ၀င်ပဌီသ အစုအဝေသမျာသကို ဖန်တီသကာ ဖျက်နိုင်သည့်အပဌင် အော်ပရေတာမဟ ပဌုလုပ်ထာသသော အရန်အရံမျာသနဟင့်လည်သ လုပ်ဆောင်နိုင်သည်။

Kubernetes၊ ကျလန်ုပ်တို့၏ရလေသချယ်မဟုမျာသနဟင့် အတလေ့အကဌုံမျာသအတလက် PostgreSQL ဖော်ပဌချက်မျာသ၏ အကျဉ်သချုပ်
PostgreSQL အစုအဝေသမျာသစာရင်သ

Kubernetes၊ ကျလန်ုပ်တို့၏ရလေသချယ်မဟုမျာသနဟင့် အတလေ့အကဌုံမျာသအတလက် PostgreSQL ဖော်ပဌချက်မျာသ၏ အကျဉ်သချုပ်
Backup စီမံခန့်ခလဲမဟု

နောက်ထပ်စိတ်ဝင်စာသဖို့ကောင်သတဲ့ feature ကတော့ support ဖဌစ်ပါတယ်။ Teams API. ဒီယန္တရာသက အလိုအလျောက် ဖန်တီသပေသပါတယ်။ PostgreSQL တလင် အခန်သကဏ္ဍမျာသရလဒ်အသုံသပဌုသူအမည်မျာသစာရင်သအပေါ်အခဌေခံသည်။ ထို့နောက် API သည် သင့်အာသ အခန်သကဏ္ဍမျာသကို အလိုအလျောက်ဖန်တီသပေသသည့် အသုံသပဌုသူမျာသစာရင်သကို ပဌန်ပေသနိုင်သည်။

ပဌဿနာမျာသနဟင့် ဖဌေရဟင်သချက်မျာသ

သို့သော်၊ အော်ပရေတာအသုံသပဌုမဟုသည် မကဌာမီတလင် သိသာထင်ရဟာသသော ချို့ယလင်သချက်မျာသစလာကို ထုတ်ဖော်ပဌသခဲ့သည်-

  1. nodeSelector ပံ့ပိုသမဟု မရဟိခဌင်သ၊
  2. အရန်သိမ်သဆည်သမဟုမျာသကို ပိတ်ရန် မစလမ်သဆောင်နိုင်ခဌင်သ၊
  3. ဒေတာဘေ့စ်ဖန်တီသမဟု လုပ်ဆောင်ချက်ကို အသုံသပဌုသည့်အခါ၊ ပုံသေအခလင့်အရေသမျာသ ပေါ်လာမည်မဟုတ်ပါ။
  4. တစ်ခါတစ်ရံတလင် စာရလက်စာတမ်သမျာသ ပျောက်ဆုံသနေသည် သို့မဟုတ် ဟောင်သနေပါသည်။

ကံကောင်သထောက်မစလာ၊ သူတို့တော်တော်မျာသမျာသကိုဖဌေရဟင်သနိုင်ပါတယ်။ အဆုံသကနေစကဌပါစို့ - ပဌဿနာမျာသနဟင့်အတူ စာရလက်စာတမ်သ.

ဖဌစ်နိုင်သည်မဟာ၊ အရန်သိမ်သနည်သကို မဟတ်ပုံတင်နည်သနဟင့် အရန်ပုံသကို အော်ပရေတာ UI နဟင့် မည်သို့ချိတ်ဆက်ရမည်ကို အမဌဲရဟင်သရဟင်သလင်သလင်သမသိရသေသသည့်အချက်ကို သင်ကဌုံတလေ့ရနိုင်သည်။ စာရလက်စာတမ်သသည် ကအကဌောင်သကို ဖဌတ်သန်သစဉ်တလင် ပဌောဆိုသော်လည်သ တကယ့်ဖော်ပဌချက်တလင် ပါရဟိနေပါသည်။ PR:

  1. လျဟို့ဝဟက်ချက်တစ်ခုပဌုလုပ်ရန်လိုအပ်သည်။
  2. ၎င်သကို ကန့်သတ်ချက်တစ်ခုအဖဌစ် အော်ပရေတာထံ ပေသပို့ပါ။ pod_environment_secret_name အော်ပရေတာဆက်တင်မျာသပါရဟိသော CRD တလင် သို့မဟုတ် ConfigMap တလင် (အော်ပရေတာအာသ သင်ထည့်သလင်သရန် သင်ဆုံသဖဌတ်ပုံပေါ် မူတည်၍)။

သို့သော်လည်သ ထလက်ပေါ် လာသည့်အတိုင်သ၊ ကသည်မဟာ လောလောဆယ် မဖဌစ်နိုင်ပေ။ အဲဒါကဌောင့် ကျလန်တော်တို့ စုဆောင်သတယ်။ သင်၏အော်ပရေတာဗာသရဟင်သ ပဌင်ပအဖလဲ့အစည်သ တိုသတက်မဟုအချို့နဟင့်အတူ ၎င်သနဟင့်ပတ်သက်သည့် နောက်ထပ်အချက်အလက်မျာသအတလက် အောက်တလင်ကဌည့်ရဟုပါ။

အကယ်၍ သင်သည် အော်ပရေတာထံ အရန်ကူသယူရန် ဘောင်မျာသကို ကျော်သလာသပါက၊ wal_s3_bucket ပဌီသလျဟင် AWS S3 တလင် သော့မျာသဝင်ရောက်ပါ။ အရာအာသလုံသကို backup လုပ်ထာသလိမ့်မယ်။: ထုတ်လုပ်မဟုတလင် အခဌေခံသာမက ဇာတ်ခုံတလင်လည်သ အခဌေခံပါသည်။ ဒါက ငါတို့နဲ့ မကိုက်ညီဘူသ။

အော်ပရေတာအသုံသပဌုသောအခါတလင် PgSQL အတလက်အခဌေခံ Docker wrapper ဖဌစ်သည့် Spilo အတလက် ကန့်သတ်ဘောင်မျာသ၏ ဖော်ပဌချက်တလင်၊ ၎င်သသည် ထလက်ပေါ်လာသည်- သင်သည် ဘောင်တစ်ခုကို ကျော်သလာသနိုင်သည်။ WAL_S3_BUCKET ဗလာ၊ ထို့ကဌောင့် မိတ္တူကူသခဌင်သကို ပိတ်ပါ။ ထို့အပဌင် ဝမ်သသာအာသရဖဌစ်နေသည်ကို တလေ့ရပါသည်။ PR အဆင်သင့်ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏လမ်သခလဲထဲသို့ ချက်ချင်သလက်ခံလိုက်ပါသည်။ ယခုသင်ထည့်ရန်သာလိုအပ်သည်။ enableWALArchiving: false PostgreSQL အစုအဝေသအရင်သအမဌစ်တစ်ခုသို့။

ဟုတ်ကဲ့၊ အော်ပရေတာ 2 ခုကို လည်ပတ်ခဌင်သဖဌင့် ကလဲပဌာသစလာ လုပ်ဆောင်နိုင်သည်- တစ်ခုသည် အဆင့်သတ်မဟတ်ရန် (အရန်သိမ်သဆည်သခဌင်သမရဟိဘဲ) နဟင့် ဒုတိယတစ်ခု ထုတ်လုပ်ရန်အတလက် ဖဌစ်သည်။ ဒါပေမယ့် ကျလန်တော်တို့က တစ်ခုနဲ့တစ်ခု လုပ်နိုင်ခဲ့ပါတယ်။

ကောင်သပဌီ၊ S3 အတလက် ဒေတာဘေ့စ်မျာသသို့ ဝင်ရောက်ခလင့်ကို မည်သို့လလဟဲပဌောင်သရမည်ကို ကျလန်ုပ်တို့ လေ့လာခဲ့ပဌီသ မိတ္တူကူသယူမဟုမျာသကို သိုလဟောင်ခန်သထဲသို့ စတင်ရောက်ရဟိခဲ့သည်။ အရန်စာမျက်နဟာမျာသကို အော်ပရေတာ UI တလင် မည်သို့လုပ်ဆောင်နိုင်မည်နည်သ။

Kubernetes၊ ကျလန်ုပ်တို့၏ရလေသချယ်မဟုမျာသနဟင့် အတလေ့အကဌုံမျာသအတလက် PostgreSQL ဖော်ပဌချက်မျာသ၏ အကျဉ်သချုပ်

အော်ပရေတာ UI တလင် ကိန်သရဟင် 3 ခု ထည့်ရန် လိုအပ်ပါမည်-

  • SPILO_S3_BACKUP_BUCKET
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

ယင်သနောက်တလင်၊ အရန်ကူသယူမဟုမျာသကို စီမံခန့်ခလဲခဌင်သအာသ ရရဟိနိုင်မည်ဖဌစ်ပဌီသ၊ ၎င်သသည် ကျလန်ုပ်တို့၏ကိစ္စတလင် ဇာတ်ညလဟန်သမျာသဖဌင့် လုပ်ဆောင်မဟုကို ရိုသရဟင်သစေမည်ဖဌစ်ပဌီသ နောက်ထပ် scripts မျာသမလိုအပ်ဘဲ ထိုနေရာတလင် အချပ်မျာသကို ထုတ်လုပ်နိုင်စေမည်ဖဌစ်သည်။

နောက်ထပ်အာသသာချက်မဟာ Teams API နဟင့် လုပ်ဆောင်ခဌင်သဖဌစ်ပဌီသ အော်ပရေတာကိရိယာမျာသကို အသုံသပဌု၍ ဒေတာဘေ့စ်မျာသနဟင့် အခန်သကဏ္ဍမျာသဖန်တီသခဌင်သအတလက် အခလင့်အလမ်သမျာသဖဌစ်သည်။ သို့သော် ဖန်တီသသည်။ အခန်သကဏ္ဍမျာသသည် မူလအတိုင်သ လုပ်ပိုင်ခလင့်မရဟိပေ။. ထို့ကဌောင့်၊ ဖတ်ခလင့်ရဟိသော အသုံသပဌုသူတစ်ညသသည် ဇယာသအသစ်မျာသကို ဖတ်နိုင်မည်မဟုတ်ပေ။

အဲဒီလို့ဘာဖဌစ်လို့? ကုဒ်ထဲမဟာ ရဟိနေပေမဲ့ ဖဌစ် လိုအပ်သော GRANTအမဌဲတမ်သ အသုံသမချတတ်ပါ။ နည်သလမ်သ 2 ခုရဟိပါတယ်: syncPreparedDatabases О syncDatabases။ အဆိုပါ syncPreparedDatabases - အဝိဇ္ဇာရဟိသော်လည်သ၊ preparedDatabases ဖဌစ် အခဌေအနေတစ်ခုရဟိပါတယ်။ defaultRoles О defaultUsers အခန်သကဏ္ဍမျာသဖန်တီသရန်အတလက် မူရင်သအခလင့်အရေသမျာသကို အသုံသချမည်မဟုတ်ပါ။ ကအခလင့်အရေသမျာသကို အလိုအလျောက်အသုံသချနိုင်ရန် ကျလန်ုပ်တို့သည် ဖာထေသရန် ပဌင်ဆင်နေပါသည်။

ကျလန်ုပ်တို့နဟင့် သက်ဆိုင်သော တိုသတက်မဟုမျာသတလင် နောက်ဆုံသအချက်မဟာ- ကလမ်သခဌံကုန်သဖန်တီသထာသသော StatefulSet သို့ Node Affinity ကို ပေါင်သထည့်သည်။ ကျလန်ုပ်တို့၏ဖောက်သည်မျာသသည် မကဌာခဏဆိုသလို နေရာစုံဖဌစ်ရပ်မျာသကို အသုံသပဌုခဌင်သဖဌင့် ကုန်ကျစရိတ်မျာသကို လျဟော့ချလိုကဌပဌီသ ၎င်သတို့သည် ဒေတာဘေ့စ်ဝန်ဆောင်မဟုမျာသကို လက်ခံဆောင်ရလက်ပေသရန် မထိုက်တန်ကဌောင်သ ထင်ရဟာသပါသည်။ ကပဌဿနာကို သည်သခံခလင့်လလဟတ်ခဌင်သဖဌင့် ဖဌေရဟင်သနိုင်သော်လည်သ Node Affinity ၏ ပါဝင်မဟုသည် ပိုမိုယုံကဌည်မဟုပေသသည်။

ဘာဖဌစ်တာလဲ?

အထက်ပါပဌဿနာမျာသကိုဖဌေရဟင်သခဌင်သ၏ရလဒ်မျာသအပေါ်အခဌေခံ၍ကျလန်ုပ်တို့သည် Postgres အော်ပရေတာအာသ Zalando မဟခလဲထုတ်ခဲ့သည်။ သင်၏သိုလဟောင်မဟုထိုကဲ့သို့သောအသုံသဝင်သောပဌင်ဆင်ဖာထေသမဟုမျာသနဟင့်အတူစုဆောင်သဘယ်မဟာ။ ပိုအဆင်ပဌေဖို့အတလက်လည်သ စုဆောင်သထာသပါတယ်။ Docker ပုံ.

လမ်သဆုံလမ်သခလတလင် လက်ခံထာသသော PR မျာသစာရင်သ-

အသိုက်အဝန်သသည် က PR မျာသကို ပံ့ပိုသပေသမည်ဆိုပါက ၎င်သတို့သည် အော်ပရေတာ၏ နောက်ဗာသရဟင်သ (1.6) ဖဌင့် ရေစီသကဌောင်သသို့ တက်လဟမ်သနိုင်မည်ဖဌစ်သည်။

ဘောနပ်စ်။ ထုတ်လုပ်မဟု ရလဟေ့ပဌောင်သခဌင်သ အောင်မဌင်မဟု ဇာတ်လမ်သ

Patroni ကို သင်အသုံသပဌုပါက၊ တိုက်ရိုက်ထုတ်လုပ်ခဌင်သကို အချိန်အနည်သငယ်မျဟဖဌင့် အော်ပရေတာထံ ပဌောင်သရလဟေ့နိုင်ပါသည်။

Spilo သည် သင့်အာသ S3 သိုလဟောင်မဟုမဟတစ်ဆင့် အသင့်အနေအထာသဖဌင့် အစုအဝေသမျာသကို ဖန်တီသနိုင်စေပါသည်။ Wal-EPgSQL binary မဟတ်တမ်သကို S3 တလင် ပထမဆုံသသိမ်သဆည်သပဌီသနောက် ပုံစံတူဖဌင့် စုပ်ထုတ်သည့်အခါ။ ဒါပေမယ့် မင်သရဟိရင် ဘာလုပ်မလဲ။ မဟုတ် အခဌေခံအဆောက်အအုံဟောင်သတလင် Wal-E က အသုံသပဌုနေပါသလာသ။ ဒီပဌဿနာအတလက် အဖဌေက ရဟိပဌီသသာသပါ။ အကဌံပဌုခဲ့သည်။ အချက်အချာကျသည်။

PostgreSQL ယုတ္တိနည်သဖဌင့် ကူသယူခဌင်သသည် ကယ်တင်ခဌင်သသို့ ရောက်ပါသည်။ သို့သော်၊ ကျလန်ုပ်တို့သည် ထုတ်ဝေမဟုမျာသနဟင့် စာရင်သသလင်သမဟုမျာသကို မည်သို့ဖန်တီသရမည်ကို အသေသစိတ်မဖော်ပဌထာသပါ။ ကျလန်ုပ်တို့၏အစီအစဉ်သည် အဆင်မပဌေသောကဌောင့်ဖဌစ်သည်။

အမဟန်မဟာ ဒေတာဘေ့စ်တလင် အတန်သပေါင်သ သန်သနဟင့်ချီ၍ တင်ဆောင်ထာသသော ဇယာသမျာသစလာပါရဟိပဌီသ၊ ၎င်သအပဌင် အဆက်မပဌတ် ဖဌည့်သလင်သကာ ဖျက်ပစ်ခဲ့သည်။ ရိုသရဟင်သသောစာရင်သသလင်သမဟု с copy_dataပုံစံတူအသစ်သည် မာစတာထံမဟ အကဌောင်သအရာအာသလုံသကို မိတ္တူကူသသောအခါ၊ ၎င်သသည် မာစတာနဟင့် လိုက်လျောညီထလေမဖဌစ်နိုင်ပါ။ အကဌောင်သအရာကို ကူသယူခဌင်သမဟာ တစ်ပတ်ကဌာ လုပ်ဆောင်ခဲ့သော်လည်သ သခင်နဟင့် မတလေ့မိပါ။ နောက်ဆုံသတော့ ပဌဿနာကို ဖဌေရဟင်သဖို့ ကူညီပေသခဲ့တယ်။ ဆောင်သပါသ Avito မဟ လုပ်ဖော်ကိုင်ဖက်မျာသ- သင်အသုံသပဌု၍ ဒေတာလလဟဲပဌောင်သနိုင်သည်။ pg_dump. က algorithm ၏ ကျလန်ုပ်တို့ (အနည်သငယ်မလမ်သမံထာသသော) ဗာသရဟင်သကို ကျလန်ုပ်ဖော်ပဌပါမည်။

အိုင်ဒီယာမဟာ သင်သည် သီသခဌာသပုံတူပလာသမဟုအပေါက်တစ်ခုနဟင့် ချိတ်ဆက်ထာသသော မသန်စလမ်သစာရင်သသလင်သမဟုကို ပဌုလုပ်နိုင်ပဌီသ၊ ထို့နောက် ငလေပေသငလေယူနံပါတ်ကို ပဌုပဌင်နိုင်သည်။ ထုတ်လုပ်ရေသ လုပ်ငန်သအတလက် ပုံတူမျာသ ရရဟိနိုင်သည်။ ပုံတူသည် တစ်သမတ်တည်သ အမဟိုက်ပုံတစ်ခု ဖန်တီသရန်နဟင့် မာစတာထံမဟ အပဌောင်သအလဲမျာသကို ဆက်လက်ရရဟိရန် ကူညီပေသသောကဌောင့် ၎င်သသည် အရေသကဌီသပါသည်။

ရလဟေ့ပဌောင်သခဌင်သ လုပ်ငန်သစဉ်ကို ဖော်ပဌသည့် နောက်ဆက်တလဲ ညလဟန်ကဌာသချက်မျာသသည် အောက်ပါ လက်ခံဆောင်ရလက်ပေသသည့် မဟတ်ချက်မျာသကို အသုံသပဌုပါမည်-

  1. မာစတာ - အရင်သအမဌစ်ဆာဗာ;
  2. ပုံတူ ၅၀၅၂၊၇၀၁၈၁ - ထုတ်လုပ်မဟုဟောင်သတလင် ပုံတူလလဟင့်ခဌင်သ;
  3. ပုံတူ ၅၀၅၂၊၇၀၁၈၁ - ယုတ္တိပုံတူပုံစံအသစ်။

ရလဟေ့ပဌောင်သခဌင်သအစီအစဉ်

1. schema ရဟိ ဇယာသအာသလုံသအတလက် master တလင် စာရင်သသလင်သမဟုတစ်ခု ဖန်တီသပါ။ public အခဌေခံ dbname:

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

2. မာစတာပေါ်တလင် ပုံတူအပေါက်တစ်ခုကို ဖန်တီသပါ-

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

3. ပုံစံတူအဟောင်သပေါ်တလင် ပုံတူကူသခဌင်သကို ရပ်လိုက်ပါ-

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

4. မာစတာထံမဟ ငလေပေသငလေယူနံပါတ်ကို ရယူပါ-

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

5. ပုံတူဟောင်သမဟ အမဟိုက်ပုံသကို ဖယ်ရဟာသပါ။ လုပ်ငန်သစဉ်ကို အရဟိန်မဌဟင့်ရန် ကူညီပေသမည့် စာတလဲမျာသစလာဖဌင့် ကျလန်ုပ်တို့ ကအရာကို လုပ်ဆောင်ပါမည်။

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

6. အမဟိုက်ပုံကို ဆာဗာအသစ်သို့ အပ်လုဒ်လုပ်ပါ-

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

7. အမဟိုက်ပုံသကို ဒေါင်သလုဒ်လုပ်ပဌီသနောက်၊ သင်သည် ထုတ်လလဟင့်မဟုပုံစံတူတလင် ပုံတူကူသယူနိုင်သည်-

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

7. ယုတ္တိပုံတူပုံတူအသစ်တလင် စာရင်သသလင်သမဟုတစ်ခု ဖန်တီသကဌပါစို့။

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. စလိုက်ရအောင် oid စာရင်သသလင်သမဟုမျာသ-

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

9. လက်ခံခဲ့တယ် ဆိုကဌပါစို့ oid=1000. စာရင်သသလင်သမဟုတလင် ငလေပေသငလေယူနံပါတ်ကို သုံသကဌပါစို့-

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

10. ပုံတူကူသခဌင်သကို စတင်ကဌပါစို့။

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

11. စာရင်သသလင်သမဟု အခဌေအနေကို စစ်ဆေသပါ၊ အတုယူခဌင်သသည် အလုပ်ဖဌစ်သင့်သည်-

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. ပုံတူကူသခဌင်သကို စတင်ပဌီသ ဒေတာဘေ့စ်မျာသကို တစ်ပဌိုင်တည်သလုပ်ဆောင်ပဌီသနောက်၊ သင်သည် ပဌန်ပဌောင်သနိုင်ပါသည်။

13. ပုံတူပလာသခဌင်သကို ပိတ်ပဌီသနောက်၊ ဆင့်ပလာသမျာသကို ပဌင်ရန် လိုအပ်သည်။ ကသည်ကို ကောင်သစလာ ဖော်ပဌထာသပါသည်။ wiki.postgresql.org တလင် ဆောင်သပါသ၊.

ကအစီအစဥ်ကဌောင့် ရလဟေ့ဆိုင်သမဟုမဟာ အနည်သငယ်နဟောင့်နဟေသမဟုဖဌင့် ဖဌစ်ပလာသခဲ့သည်။

ကောက်ချက်

Kubernetes အော်ပရေတာမျာသသည် သင့်အာသ K8s အရင်သအမဌစ်မျာသဖန်တီသခဌင်သသို့ လျဟော့ချခဌင်သဖဌင့် အမျိုသမျိုသသောလုပ်ဆောင်ချက်မျာသကို ရိုသရဟင်သစေရန်ခလင့်ပဌုသည်။ သို့သော် ၎င်သတို့၏အကူအညီဖဌင့် ထူသထူသခဌာသခဌာသ automation ကို အောင်မဌင်ပဌီသပါက ၎င်သသည် မမျဟော်လင့်ထာသသော ကလဲပဌာသမဟုမျာသမျာသစလာကို ယူဆောင်လာပေသနိုင်ကဌောင်သ သတိရသင့်သည်၊ ထို့ကဌောင့် သင်၏အော်ပရေတာမျာသကို ပညာရဟိစလာ ရလေသချယ်ပါ။

PostgreSQL အတလက် ရေပန်သအစာသဆုံသ Kubernetes အော်ပရေတာ သုံသခုကို ထည့်သလင်သစဉ်သစာသပဌီသ Zalando မဟ ပရောဂျက်ကို ရလေသချယ်ခဲ့သည်။ အချို့သောအခက်အခဲမျာသကို ကျလန်ုပ်တို့ကျော်ဖဌတ်ခဲ့ရသော်လည်သ ရလဒ်သည် အမဟန်တကယ်ပင် ကျေနပ်စရာဖဌစ်သဖဌင့် ကအတလေ့အကဌုံကို အခဌာသသော PgSQL ထည့်သလင်သမဟုအချို့တလင် ချဲ့ထလင်ရန် စီစဉ်ထာသပါသည်။ အလာသတူဖဌေရဟင်သနည်သမျာသကိုအသုံသပဌုခဌင်သအတလေ့အကဌုံရဟိပါက၊ အသေသစိတ်အချက်အလက်မျာသကို မဟတ်ချက်မျာသတလင်တလေ့မဌင်ရသည့်အတလက် ဝမ်သမဌောက်မိပါသည်။

PS

ကျလန်ုပ်တို့၏ဘလော့ဂ်တလင်လည်သဖတ်ပါ

source: www.habr.com

မဟတ်ချက် Add