рд╡рд╛рдврддреНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд, рдЧреНрд░рд╛рд╣рдХрд╛рдВрдирд╛ рдЦрд╛рд▓реАрд▓ рд╡рд┐рдирдВрддреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдд рдЖрд╣реЗрдд: тАЬрдЖрдореНрд╣рд╛рд▓рд╛ рддреЗ Amazon RDS рд╕рд╛рд░рдЦреЗ рд╣рд╡реЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕реНрд╡рд╕реНрддтАЭ; "рдЖрдореНрд╣рд╛рд▓рд╛ рддреЗ RDS рд╕рд╛рд░рдЦреЗ рд╣рд╡реЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕рд░реНрд╡рддреНрд░, рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдордзреНрдпреЗ." Kubernetes рд╡рд░ рдЕрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА PostgreSQL (Stolon, Crunchy Data рдЖрдгрд┐ Zalando рдЪреЗ рдСрдкрд░реЗрдЯрд░) рд╕рд╛рдареА рд╕рд░реНрд╡рд╛рдд рд▓реЛрдХрдкреНрд░рд┐рдп рдСрдкрд░реЗрдЯрд░реНрд╕рдЪреА рд╕рджреНрдпрд╕реНрдерд┐рддреА рдкрд╛рд╣рд┐рд▓реА рдЖрдгрд┐ рдЖрдордЪреА рдирд┐рд╡рдб рдХреЗрд▓реА.
рд╣рд╛ рд▓реЗрдЦ рдореНрд╣рдгрдЬреЗ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рддреВрди (рдЙрдкрд╛рдпрд╛рдВрдЪреЗ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди) рдЖрдгрд┐ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдмрд╛рдЬреВрдиреЗ (рдХрд╛рдп рдирд┐рд╡рдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрдгрд┐ рддреНрдпрд╛рддреВрди рдХрд╛рдп рдЖрд▓реЗ) рдпрд╛ рджреЛрдиреНрд╣реА рдЧреЛрд╖реНрдЯреАрдВрдордзреВрди рдЖрдореНрд╣рд╛рд▓рд╛ рдорд┐рд│рд╛рд▓реЗрд▓рд╛ рдЕрдиреБрднрд╡ рдЖрд╣реЗ. рдкрд░рдВрддреБ рдкреНрд░рдердо, RDS рдЪреНрдпрд╛ рд╕рдВрднрд╛рд╡реНрдп рдмрджрд▓реАрд╕рд╛рдареА рд╕рд╛рдорд╛рдиреНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛рдп рдЖрд╣реЗрдд рд╣реЗ рдард░рд╡реВрдпрд╛...
RDS рдореНрд╣рдгрдЬреЗ рдХрд╛рдп
рдЬреЗрд╡реНрд╣рд╛ рд▓реЛрдХ RDS рдмрджреНрджрд▓ рдмреЛрд▓рддрд╛рдд, рддреЗрд╡реНрд╣рд╛ рдЖрдордЪреНрдпрд╛ рдЕрдиреБрднрд╡рд╛рдиреБрд╕рд╛рд░, рддреНрдпрд╛рдВрдЪрд╛ рдЕрд░реНрде рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд DBMS рд╕реЗрд╡рд╛ рдореНрд╣рдгрдЬреЗ:
- рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рд╕реЛрдкреЗ;
- рд╕реНрдиреЕрдкрд╢реЙрдЯреНрд╕рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреВрди рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЖрд╣реЗ (рд╢рдХреНрдпрддреЛ рд╕рдорд░реНрдердирд╛рд╕рд╣
PITR ); - рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╕реНрдЯрд░-рд╕реНрд▓реЗрд╡реНрд╣ рдЯреЛрдкреЛрд▓реЙрдЬреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ;
- рд╡рд┐рд╕реНрддрд╛рд░рд╛рдВрдЪреА рд╕рдореГрджреНрдз рдпрд╛рджреА рдЖрд╣реЗ;
- рдСрдбрд┐рдЯрд┐рдВрдЧ рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддрд╛/рдкреНрд░рд╡реЗрд╢ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ.
рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рд╕рд╛рдВрдЧрд╛рдпрдЪреЗ рддрд░, рд╣рд╛рддрд╛рдд рдЕрд╕рд▓реЗрд▓реЗ рдХрд╛рд░реНрдп рдЕрдВрдорд▓рд╛рдд рдЖрдгрдгреНрдпрд╛рдЪреЗ рджреГрд╖реНрдЯрд┐рдХреЛрди рдЦреВрдк рднрд┐рдиреНрди рдЕрд╕реВ рд╢рдХрддрд╛рдд, рдкрд░рдВрддреБ рд╕рд╢рд░реНрдд рдЙрддреНрддрд░реЗрдЪрд╛ рдорд╛рд░реНрдЧ рдЖрдкрд▓реНрдпрд╛ рдЬрд╡рд│ рдирд╛рд╣реА. (2GIS рдордзреАрд▓ рд╕рд╣рдХрд╛рд▒реНрдпрд╛рдВрдиреА рдкрд░рд┐рдгрд╛рдо рдореНрд╣рдгреВрди рд╕рдорд╛рди рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛рдврд▓рд╛
Kubernetes рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдордордзреАрд▓ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдСрдкрд░реЗрдЯрд░ рд╣рд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯреАрдХреЛрди рдЖрд╣реЗ. "рдлреНрд▓рд╛рдВрдЯрд╛" рдЪреНрдпрд╛ рддрд╛рдВрддреНрд░рд┐рдХ рд╕рдВрдЪрд╛рд▓рдХрд╛рдиреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рд▓реЙрдиреНрдЪ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рд╕рдВрдмрдВрдзрд╛рдд рддреНрдпрд╛рдВрдЪреНрдпрд╛рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╡рд╛рд░ рдмреЛрд▓рд▓реЗ рдЖрд╣реЗ.
NB: рд╕рд╛рдзреЗ рдСрдкрд░реЗрдЯрд░ рджреНрд░реБрддрдкрдгреЗ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдЙрдкрдпреБрдХреНрддрддреЗрдХрдбреЗ рд▓рдХреНрд╖ рджреЗрдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ
PostgreSQL рд╕рд╛рдареА рдЕрдиреЗрдХ рд▓реЛрдХрдкреНрд░рд┐рдп K8s рдСрдкрд░реЗрдЯрд░ рдЖрд╣реЗрдд:
- рд╕реНрдЯреЛрд▓реЙрди;
- рдХреБрд░рдХреБрд░реАрдд рдбреЗрдЯрд╛ PostgreSQL рдСрдкрд░реЗрдЯрд░;
- рдЭрд╛рд▓рдБрдбреЛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рдСрдкрд░реЗрдЯрд░.
рдЪрд▓рд╛ рддреНрдпрд╛рдВрдирд╛ рдЕрдзрд┐рдХ рдмрд╛рд░рдХрд╛рдИрдиреЗ рдкрд╛рд╣реВрдпрд╛.
рдСрдкрд░реЗрдЯрд░ рдирд┐рд╡рдб
рд╡рд░ рдирдореВрдж рдХреЗрд▓реЗрд▓реНрдпрд╛ рдорд╣рддреНрддреНрд╡рд╛рдЪреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣реА - рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдСрдкрд░реЗрд╢рдиреНрд╕ рдЕрднрд┐рдпрдВрддрд╛ рдпрд╛ рдирд╛рддреНрдпрд╛рдиреЗ - рдСрдкрд░реЗрдЯрд░рдХрдбреВрди рдкреБрдвреАрд▓ рдЧреЛрд╖реНрдЯреАрдВрдЪреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗрд▓реА рдЖрд╣реЗ:
- Git рдЖрдгрд┐ рд╕рд╣ рдЙрдкрдпреЛрдЬрди
рд╕рд╛рдиреБрдХреВрд▓ рд╕рдВрд╕рд╛рдзрдиреЗ ; - рдкреЙрдб рд╡рд┐рд░реЛрдзреА рдЖрддреНрдореАрдпрддрд╛ рд╕рдорд░реНрдерди;
- рдиреЛрдб рдЕреЕрдлрд┐рдирд┐рдЯреА рдХрд┐рдВрд╡рд╛ рдиреЛрдб рд╕рд┐рд▓реЗрдХреНрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ;
- рд╕рд╣рдирд╢реАрд▓рддреЗрдЪреА рд╕реНрдерд╛рдкрдирд╛;
- рдЯреНрдпреВрдирд┐рдВрдЧ рдХреНрд╖рдорддрд╛рдВрдЪреА рдЙрдкрд▓рдмреНрдзрддрд╛;
- рд╕рдордЬрдгреНрдпрд╛рдпреЛрдЧреНрдп рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдЖрдгрд┐ рдЕрдЧрджреА рдЖрджреЗрд╢.
рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдВрджреВрдЪреНрдпрд╛ рддрдкрд╢реАрд▓рд╛рдд рди рдЬрд╛рддрд╛ (рд╕рдВрдкреВрд░реНрдг рд▓реЗрдЦ рд╡рд╛рдЪрд▓реНрдпрд╛рдирдВрддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрджреНрдпрд╛рдк рддреНрдпрд╛рдВрдЪреНрдпрд╛рдмрджреНрджрд▓ рдкреНрд░рд╢реНрди рдЕрд╕рд▓реНрдпрд╛рд╕ рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдордзреНрдпреЗ рд╡рд┐рдЪрд╛рд░рд╛), рдореА рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдИрди рдХреА рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕рдЪреНрдпрд╛ рд╕реНрдкреЗрд╢рд▓рд╛рдпрдЭреЗрд╢рдирдЪреЗ рдЕрдзрд┐рдХ рдЕрдЪреВрдХрдкрдгреЗ рд╡рд░реНрдгрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпрд╛ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рддреНрдпрд╛рдВрдирд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА рдСрд░реНрдбрд░ рдХрд░рд╛. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдЖрдореНрд╣реА рдХрд╛рдордЧрд┐рд░реА рдЖрдгрд┐ рдЦрд░реНрдЪрд╛рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рдЗрд╖реНрдЯрддрдо рд╕рдВрддреБрд▓рди рд╕рд╛рдзреВ рд╢рдХрддреЛ.
рдЖрддрд╛ рд╕реНрд╡рддрдГ PostgreSQL рдСрдкрд░реЗрдЯрд░реНрд╕рдХрдбреЗ рд╡рд│реВ.
1. рд╕реНрдЯреЛрд▓реЙрди
рдЦрд░рдВрдЪ, рд╕реНрдЯреЛрд▓рди рд╣реЗ рд╡рд┐рдЪрд╛рд░рд╢реАрд▓ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреЗ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдЖрд╣реЗ:
рдпрд╛ рдСрдкрд░реЗрдЯрд░рдЪреЗ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдЕрд╣рд╡рд╛рд▓рд╛рдд рддрдкрд╢реАрд▓рд╡рд╛рд░ рдЖрдврд│реВ рд╢рдХрддреЗ рдХрд┐рдВрд╡рд╛
рддрдерд╛рдкрд┐, рд╕реНрдЯреЛрд▓рди stolonctl
, рдЙрдкрдпреЛрдЬрди рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯрджреНрд╡рд╛рд░реЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рдЖрдгрд┐ рд╕рд╛рдиреБрдХреВрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрдореЕрдкрдордзреНрдпреЗ рд╕реЗрдЯ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.
рдПрдХреАрдХрдбреЗ, рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА рдСрдкрд░реЗрдЯрд░ рдЦрд░реЛрдЦрд░ рдСрдкрд░реЗрдЯрд░ рдирд╛рд╣реА (рддрд░реАрд╣реА, рддреЛ CRD рд╡рд╛рдкрд░рдд рдирд╛рд╣реА). рдкрд░рдВрддреБ рджреБрд╕рд░реАрдХрдбреЗ, рд╣реА рдПрдХ рд▓рд╡рдЪрд┐рдХ рдкреНрд░рдгрд╛рд▓реА рдЖрд╣реЗ рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рдпреЛрдЧреНрдп рд╡рд╛рдЯреЗрд▓ рддрд╕реЗ K8s рдордзреНрдпреЗ рд╕рдВрд╕рд╛рдзрдиреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.
рдереЛрдбрдХреНрдпрд╛рдд, рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рдЪрд╛рд░реНрдЯ рддрдпрд╛рд░ рдХрд░рдгреЗ рд╡реИрдпрдХреНрддрд┐рдХрд░рд┐рддреНрдпрд╛ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рд╡рд╛рдЯрд▓реЗ рдирд╛рд╣реА. рддреНрдпрд╛рдореБрд│реЗ рдЖрдореНрд╣реА рдкрд░реНрдпрд╛рдп рд╢реЛрдзреВ рд▓рд╛рдЧрд▓реЛ.
2. рдХреБрд░рдХреБрд░реАрдд рдбреЗрдЯрд╛ PostgreSQL рдСрдкрд░реЗрдЯрд░
Crunchy Data PostgreSQL рдСрдкрд░реЗрдЯрд░рдЪреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рджреЗрдЦреАрд▓ рдирдореВрдж рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкреВрд░реНрдг рдХрд░рддреЗ:
рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдпреБрдЯрд┐рд▓рд┐рдЯреАрджреНрд╡рд╛рд░реЗ рд╣реЛрддреЗ pgo
рддрдерд╛рдкрд┐, рддреЗ рдХреБрдмреЗрд░рдиреЗрдЯрд╕рд╛рдареА рд╕рд╛рдиреБрдХреВрд▓ рд╕рдВрд╕рд╛рдзрдиреЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рддреЗ. рдореНрд╣рдгреВрди, рдСрдкрд░реЗрдЯрд░рдиреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдВрднрд╛рд╡реНрдп рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдореНрд╣рдгреВрди рдЖрдирдВрдж рджрд┐рд▓рд╛:
- CRD рджреНрд╡рд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдЖрд╣реЗ;
- рд╕реЛрдпреАрд╕реНрдХрд░ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди (рд╕реАрдЖрд░рдбреА рджреНрд╡рд╛рд░реЗ рджреЗрдЦреАрд▓);
- рдЗрддрд░ рдШрдЯрдХрд╛рдВрд╕рд╣ рдПрдХрддреНрд░реАрдХрд░рдг
рдХреБрд░рдХреБрд░реАрдд рдбреЗрдЯрд╛ рдХрдВрдЯреЗрдирд░ рд╕реВрдЯ тАФ PostgreSQL рд╕рд╛рдареА рдХрдВрдЯреЗрдирд░ рдкреНрд░рддрд┐рдорд╛рдВрдЪрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрдЧреНрд░рд╣ рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛рд╕реЛрдмрдд рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрддрддрд╛ (pgBackRest, pgAudit, рдпреЛрдЧрджрд╛рдирд╛рддреАрд▓ рд╡рд┐рд╕реНрддрд╛рд░ рдЗ. рд╕рдорд╛рд╡реЗрд╢).
рддрдерд╛рдкрд┐, рдХреНрд░рдиреНрдЪреА рдбреЗрдЯрд╛рд╡рд░реВрди рдСрдкрд░реЗрдЯрд░ рд╡рд╛рдкрд░рдгреЗ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдпрддреНрдирд╛рдВрдореБрд│реЗ рдЕрдиреЗрдХ рд╕рдорд╕реНрдпрд╛ рд╕рдореЛрд░ рдЖрд▓реНрдпрд╛:
- рд╕рд╣рди рдХрд░рдгреНрдпрд╛рдЪреА рдХреЛрдгрддреАрд╣реА рд╢рдХреНрдпрддрд╛ рдирд╡реНрд╣рддреА - рдлрдХреНрдд рдиреЛрдбрд╕реЗрд▓реЗрдХреНрдЯрд░ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЖрд╣реЗ.
- рдЖрдореНрд╣реА рдПрдХ рд╕реНрдЯреЗрдЯрдлреБрд▓ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЬрд┐рдд рдХреЗрд▓реЗ рдЕрд╕реВрдирд╣реА рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ рдкреЙрдб рд╣реЗ рдЙрдкрдпреЛрдЬрдирд╛рдЪрд╛ рднрд╛рдЧ рд╣реЛрддреЗ. рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯреНрд╕рдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдбрд┐рд╕реНрдХ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА.
рд╢реЗрд╡рдЯрдЪреА рдХрдорддрд░рддрд╛ рдордЬреЗрджрд╛рд░ рдХреНрд╖рдгрд╛рдВрдирд╛ рдХрд╛рд░рдгреАрднреВрдд рдард░рддреЗ: рдЪрд╛рдЪрдгреА рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдЖрдореНрд╣реА рдПрдХрд╛ рдбрд┐рд╕реНрдХрд╕рд╣ 3 рдкреНрд░рддрд┐рдХреГрддреА рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рд╕реНрдерд╛рдирд┐рдХ рд╕реНрдЯреЛрд░реЗрдЬ, рдЬреНрдпрд╛рдореБрд│реЗ рдСрдкрд░реЗрдЯрд░рдиреЗ рдЕрд╣рд╡рд╛рд▓ рджрд┐рд▓рд╛ рдХреА 3 рдкреНрд░рддрд┐рдХреГрддреА рдХрд╛рд░реНрдпрд░рдд рдЖрд╣реЗрдд (рдЬрд░реА рддреНрдпрд╛ рдирд╕рд▓реНрдпрд╛ рддрд░реА).
рдпрд╛ рдСрдкрд░реЗрдЯрд░рдЪреЗ рдЖрдгрдЦреА рдПрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдореНрд╣рдгрдЬреЗ рддреНрдпрд╛рдЪреЗ рд╡рд┐рд╡рд┐рдз рд╕рдорд░реНрдерди рдкреНрд░рдгрд╛рд▓реАрдВрд╕рд╣ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ рдПрдХрддреНрд░реАрдХрд░рдг. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, pgAdmin рдЖрдгрд┐ pgBounce, рдЖрдгрд┐ рдордзреНрдпреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ
рддрдерд╛рдкрд┐, Kubernetes-рд╡реНрдпреБрддреНрдкрдиреНрди рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдЪрд┐рддреНрд░ рдирд┐рд╡рдбреАрдореБрд│реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╡реЗрдЧрд│реЗ рдЙрдкрд╛рдп рд╢реЛрдзрдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд┐рд░реНрдорд╛рдг рдЭрд╛рд▓реА.
3. рдЭрд╛рд▓рдБрдбреЛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рдСрдкрд░реЗрдЯрд░
рдЖрдореНтАНрд╣реА рдЭрд╛рд▓реЕрдВрдбреЛрдЪреА рдЙрддреНтАНрдкрд╛рджрдиреЗ рдмрд░реНтАНрдпрд╛рдЪ рдХрд╛рд│рд╛рдкрд╛рд╕реВрди рдУрд│рдЦрддреЛ: рдЖрдореНтАНрд╣рд╛рд▓рд╛ рдЭрд╛рд▓реЗрдирд┐рдпрдо рд╡рд╛рдкрд░рдгреНтАНрдпрд╛рдЪрд╛ рдЕрдиреБрднрд╡ рдЖрд╣реЗ рдЖрдгрд┐ рдЕрд░реНрдерд╛рддрдЪ, рдЖрдореНрд╣реА рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛
рд▓реЗрдЦрд╛рдд рдЪрд░реНрдЪрд╛ рдХреЗрд▓реЗрд▓рд╛ рд╣рд╛ рд╕рд░реНрд╡рд╛рдд рддрд░реБрдг рдЙрдкрд╛рдп рдЖрд╣реЗ: рдкрд╣рд┐рд▓реЗ рдкреНрд░рдХрд╛рд╢рди рдСрдЧрд╕реНрдЯ 2018 рдордзреНрдпреЗ рдЭрд╛рд▓реЗ. рддрдерд╛рдкрд┐, рдФрдкрдЪрд╛рд░рд┐рдХ рдкреНрд░рдХрд╛рд╢рдирд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рдХрдореА рдЕрд╕реВрдирд╣реА, рдкреНрд░рдХрд▓реНрдкрд╛рдиреЗ рдЦреВрдк рдореЛрдард╛ рдкрд▓реНрд▓рд╛ рдЧрд╛рдард▓рд╛ рдЖрд╣реЗ, GitHub рд╡рд░ 1300+ рддрд╛рд░реЗ рдЖрдгрд┐ рдпреЛрдЧрджрд╛рдирдХрд░реНрддреНрдпрд╛рдВрдЪреА рдХрдорд╛рд▓ рд╕рдВрдЦреНрдпрд╛ (70+) рд╕рд╣ рдХреНрд░рдиреНрдЪреА рдбреЗрдЯрд╛рдЪреНрдпрд╛ рд╕реЛрд▓реНрдпреВрд╢рдирд▓рд╛ рд▓реЛрдХрдкреНрд░рд┐рдпрддреЗрдордзреНрдпреЗ рдорд╛рдЧреЗ рдЯрд╛рдХрд▓реЗ рдЖрд╣реЗ.
тАЬрдЕрдВрдбрд░ рдж рд╣реБрдбтАЭ рд╣рд╛ рдСрдкрд░реЗрдЯрд░ рд╡реЗрд│-рдЪрд╛рдЪрдгреА рдЙрдкрд╛рдп рд╡рд╛рдкрд░рддреЛ:
- рд╕рдВрд░рдХреНрд╖рдХ рдЖрдгрд┐
рд╕реНрдкрд┐рд▓реЛ рдбреНрд░рд╛рдпрд╡реНрд╣рд┐рдВрдЧрд╕рд╛рдареА, -
рд╡рд╛рд▓-рдИ - рдмреЕрдХрдЕрдкрд╕рд╛рдареА, -
PgBouncer - рдХрдиреЗрдХреНрд╢рди рдкреВрд▓ рдореНрд╣рдгреВрди.
Zalando рдордзреАрд▓ рдСрдкрд░реЗрдЯрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЖрд╣реЗ:
рдСрдкрд░реЗрдЯрд░ рдкреВрд░реНрдгрдкрдгреЗ рдХрд╕реНрдЯрдо рд░рд┐рд╕реЛрд░реНрд╕реЗрд╕рджреНрд╡рд╛рд░реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдХрдВрдЯреЗрдирд░рдордзреВрди рдЖрдкреЛрдЖрдк рд╕реНрдЯреЗрдЯрдлреБрд▓ рд╕реЗрдЯ рддрдпрд╛рд░ рдХрд░рддреЛ, рдЬреЛ рдирдВрддрд░ рдкреЙрдбрдордзреНрдпреЗ рд╡рд┐рд╡рд┐рдз рд╕рд╛рдЗрдбрдХрд╛рд░ рдЬреЛрдбреВрди рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рдХреНрд░рдВрдЪреА рдбреЗрдЯрд╛рдордзреАрд▓ рдСрдкрд░реЗрдЯрд░рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рд╣реЗ рд╕рд░реНрд╡ рдПрдХ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдлрд╛рдпрджрд╛ рдЖрд╣реЗ.
рдЖрдореНрд╣реА рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди 3 рдкрд░реНрдпрд╛рдпрд╛рдВрдкреИрдХреА Zalando рдордзреАрд▓ рдЙрдкрд╛рдп рдирд┐рд╡рдбрд▓рд╛ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЕрд░реНрдЬрд╛рдЪреНрдпрд╛ рд╕рд░рд╛рд╡рд╛рд╕рд╣, рддреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд╖рдорддрд╛рдВрдЪреЗ рдкреБрдвреАрд▓ рд╡рд░реНрдгрди рдЦрд╛рд▓реА рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓.
рдЭрд╛рд▓рдБрдбреЛ рдпреЗрдереАрд▓ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рдСрдкрд░реЗрдЯрд░рд╕рд╣ рд╕рд░рд╛рд╡ рдХрд░рд╛
рдСрдкрд░реЗрдЯрд░ рддреИрдирд╛рдд рдХрд░рдгреЗ рдЕрдЧрджреА рд╕реЛрдкреЗ рдЖрд╣реЗ: рдлрдХреНрдд GitHub рд╡рд░реВрди рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХрд╛рд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛ рдЖрдгрд┐ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрддреВрди YAML рдлрд╛рдпрд▓реА рд▓рд╛рдЧреВ рдХрд░рд╛
рд╕реНрдерд╛рдкрдиреЗрдирдВрддрд░, рдЖрдкрдг рд╕реЗрдЯрдЕрдкрдмрджреНрджрд▓ рдХрд╛рд│рдЬреА рдХрд░рд╛рд╡реА postgres-operator
рддреБрдореНрд╣реА рдСрдкрд░реЗрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдиреЗрдорд╕реНрдкреЗрд╕рдордзреНрдпреЗ. рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реНрдпрд╛рд╡рд░, рддреБрдореНрд╣реА рддреБрдордЪреЗ рдкрд╣рд┐рд▓реЗ 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 рдЙрджрд╛рд╣рд░рдгрд╛рдВрдЪрд╛ рдХреНрд▓рд╕реНрдЯрд░ рддреИрдирд╛рдд рдХрд░рддреЛ
рдпрд╛рдХрдбреЗ рд▓рдХреНрд╖ рджреЗрдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ рд╡реЗрдм рдкреНрд░рд╢рд╛рд╕рди рдкреЕрдиреЗрд▓ -
PostgreSQL рдХреНрд▓рд╕реНрдЯрд░рдЪреА рдпрд╛рджреА
рдмреЕрдХрдЕрдк рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди
рдЖрдгрдЦреА рдПрдХ рдордиреЛрд░рдВрдЬрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рд╕рдорд░реНрдерди рдЖрд╣реЗ
рд╕рдорд╕реНрдпрд╛ рдЖрдгрд┐ рдЙрдкрд╛рдп
рддрдерд╛рдкрд┐, рдСрдкрд░реЗрдЯрд░рдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рдореБрд│реЗ рд▓рд╡рдХрд░рдЪ рдЕрдиреЗрдХ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХрдорддрд░рддрд╛ рджрд┐рд╕реВрди рдЖрд▓реНрдпрд╛:
- nodeSelector рд╕рдорд░реНрдердирд╛рдЪрд╛ рдЕрднрд╛рд╡;
- рдмреЕрдХрдЕрдк рдЕрдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рдд рдЕрдХреНрд╖рдорддрд╛;
- рдбреЗрдЯрд╛рдмреЗрд╕ рдирд┐рд░реНрдорд┐рддреА рдХрд╛рд░реНрдп рд╡рд╛рдкрд░рддрд╛рдирд╛, рдбреАрдлреЙрд▓реНрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рджрд┐рд╕рдд рдирд╛рд╣реАрдд;
- рдХрдзреАрдХрдзреА рдХрд╛рдЧрджрдкрддреНрд░реЗ рдЧрд╣рд╛рд│ рдЕрд╕рддрд╛рдд рдХрд┐рдВрд╡рд╛ рдХрд╛рд▓рдмрд╛рд╣реНрдп рдЕрд╕рддрд╛рдд.
рд╕реБрджреИрд╡рд╛рдиреЗ, рддреНрдпрд╛рдкреИрдХреА рдмрд░реЗрдЪ рдирд┐рд░рд╛рдХрд░рдг рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдЪрд▓рд╛ рд╢реЗрд╡рдЯрдкрд╛рд╕реВрди рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВрдпрд╛ - рдпрд╛рд╕рд╣ рд╕рдорд╕реНрдпрд╛ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг.
рдмрд╣реБрдзрд╛, рдЖрдкрдгрд╛рд╕ рд╣реЗ рддрдереНрдп рдЖрдврд│реЗрд▓ рдХреА рдмреЕрдХрдЕрдкрдЪреА рдиреЛрдВрджрдгреА рдХрд╢реА рдХрд░рд╛рд╡реА рдЖрдгрд┐ рдмреЕрдХрдЕрдк рдмрдХреЗрдЯрд▓рд╛ рдСрдкрд░реЗрдЯрд░ UI рд╢реА рдХрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рд╛рд╡реЗ рд╣реЗ рдиреЗрд╣рдореАрдЪ рд╕реНрдкрд╖реНрдЯ рдирд╕рддреЗ. рдХрд╛рдЧрджрдкрддреНрд░реЗ рдпрд╛рдмрджреНрджрд▓ рдмреЛрд▓рддрд╛рдд, рдкрд░рдВрддреБ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд░реНрдгрди рддреНрдпрд╛рдд рдЖрд╣реЗ
- рдЧреБрдкреНрдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ;
- рдкреЕрд░рд╛рдореАрдЯрд░ рдореНрд╣рдгреВрди рдСрдкрд░реЗрдЯрд░рд▓рд╛ рдкрд╛рд╕ рдХрд░рд╛
pod_environment_secret_name
рдСрдкрд░реЗрдЯрд░ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрд╕рд╣ CRD рдордзреНрдпреЗ рдХрд┐рдВрд╡рд╛ рдХреЙрдиреНрдлрд┐рдЧрдореЕрдкрдордзреНрдпреЗ (рдЖрдкрдг рдСрдкрд░реЗрдЯрд░ рдХрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛рдпрдЪреЗ рдпрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди).
рддрдерд╛рдкрд┐, рд╣реЗ рдмрд╛рд╣реЗрд░ рд╡рд│рддреЗ рдореНрд╣рдгреВрди, рд╣реЗ рд╕рдзреНрдпрд╛ рдЕрд╢рдХреНрдп рдЖрд╣реЗ. рдореНрд╣рдгреВрдирдЪ рдЖрдореНрд╣реА рдЧреЛрд│рд╛ рдХреЗрд▓реЗ
рдЖрдкрдг рдСрдкрд░реЗрдЯрд░рд▓рд╛ рдмреЕрдХрдЕрдкрд╕рд╛рдареА рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдкрд╛рд╕ рдХреЗрд▓реНрдпрд╛рд╕, рдореНрд╣рдгрдЬреЗ - wal_s3_bucket
рдЖрдгрд┐ AWS S3 рдордзреНрдпреЗ рдНрдХреНрд╕реЗрд╕ рдХреА, рдирдВрддрд░ рддреЗ рд╕рд░реНрд╡рдХрд╛рд╣реА рдмреЕрдХрдЕрдк рдШреЗрдИрд▓: рдХреЗрд╡рд│ рдЙрддреНрдкрд╛рджрдирд╛рддрдЪ рдирд╛рд╣реА рддрд░ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рджреЗрдЦреАрд▓. рд╣реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рд╢реЛрднрдд рдирд╡реНрд╣рддреЗ.
рд╕реНрдкрд┐рд▓реЛрдЪреНрдпрд╛ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдЪреНрдпрд╛ рд╡рд░реНрдгрдирд╛рдд, рдЬреЗ рдСрдкрд░реЗрдЯрд░ рд╡рд╛рдкрд░рддрд╛рдирд╛ PgSQL рд╕рд╛рдареА рдореВрд▓рднреВрдд рдбреЙрдХрд░ рд░реЕрдкрд░ рдЖрд╣реЗ, рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ: рдЖрдкрдг рдкреЕрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░реВ рд╢рдХрддрд╛ WAL_S3_BUCKET
рд░рд┐рдХреНрдд, рддреНрдпрд╛рдореБрд│реЗ рдмреЕрдХрдЕрдк рдЕрдХреНрд╖рдо рдХрд░рдгреЗ. рд╢рд┐рд╡рд╛рдп, рдорд▓рд╛ рдЦреВрдк рдЖрдирдВрдж рдЭрд╛рд▓рд╛ enableWALArchiving: false
PostgreSQL рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрд╕рд╛рдзрдирд╛рд╕рд╛рдареА.
рд╣реЛрдп, 2 рдСрдкрд░реЗрдЯрд░ рдЪрд╛рд▓рд╡реВрди рддреЗ рд╡реЗрдЧрд│реНрдпрд╛ рдкрджреНрдзрддреАрдиреЗ рдХрд░рдгреНрдпрд╛рдЪреА рд╕рдВрдзреА рд╣реЛрддреА: рдПрдХ рд╕реНрдЯреЗрдЬрд┐рдВрдЧрд╕рд╛рдареА (рдмреЕрдХрдЕрдкрд╢рд┐рд╡рд╛рдп), рдЖрдгрд┐ рджреБрд╕рд░рд╛ рдЙрддреНрдкрд╛рджрдирд╛рд╕рд╛рдареА. рдкрдг рдЖрдореНрд╣реА рдПрдХ рдХрд░реВ рд╢рдХрд▓реЛ.
рдареАрдХ рдЖрд╣реЗ, рдЖрдореНрд╣реА S3 рд╕рд╛рдареА рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд╕рд╛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рд╛рдпрдЪрд╛ рддреЗ рд╢рд┐рдХрд▓реЛ рдЖрдгрд┐ рдмреЕрдХрдЕрдк рд╕реНрдЯреЛрд░реЗрдЬрдордзреНрдпреЗ рдпреЗрдК рд▓рд╛рдЧрд▓реЗ. рдСрдкрд░реЗрдЯрд░ UI рдордзреНрдпреЗ рдмреЕрдХрдЕрдк рдкреГрд╖реНрда рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рд╛рд╡реЗ?
рддреБрдореНрд╣рд╛рд▓рд╛ рдСрдкрд░реЗрдЯрд░ UI рдордзреНрдпреЗ 3 рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдЬреЛрдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:
-
SPILO_S3_BACKUP_BUCKET
-
AWS_ACCESS_KEY_ID
-
AWS_SECRET_ACCESS_KEY
рдпрд╛рдирдВрддрд░, рдмреЕрдХрдЕрдкрдЪреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЙрдкрд▓рдмреНрдз рд╣реЛрдИрд▓, рдЬреЗ рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рд╕реНрдЯреЗрдЬрд┐рдВрдЧрд╕рд╣ рдХрд╛рд░реНрдп рд╕реБрд▓рдн рдХрд░реЗрд▓, рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╢рд┐рд╡рд╛рдп рдЙрддреНрдкрд╛рджрдирд╛рддреВрди рд╕реНрд▓рд╛рдЗрд╕ рд╡рд┐рддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдИрд▓.
рдЯреАрдореНрд╕ рдПрдкреАрдЖрдп рд╕реЛрдмрдд рдХрд╛рдо рдХрд░рдгреЗ рдЖрдгрд┐ рдСрдкрд░реЗрдЯрд░ рдЯреВрд▓реНрд╕ рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдгрд┐ рднреВрдорд┐рдХрд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рднрд░рдкреВрд░ рд╕рдВрдзреА рд╣рд╛ рдЖрдгрдЦреА рдПрдХ рдлрд╛рдпрджрд╛ рд╣реЛрддрд╛. рддрдерд╛рдкрд┐, рддрдпрд╛рд░ рдХреЗрд▓реЗ рднреВрдорд┐рдХрд╛рдВрдирд╛ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдХреЛрдгрддреЗрд╣реА рдЕрдзрд┐рдХрд╛рд░ рдирд╡реНрд╣рддреЗ. рддреНрдпрд╛рдиреБрд╕рд╛рд░, рд╡рд╛рдЪрди рдЕрдзрд┐рдХрд╛рд░ рдЕрд╕рд▓реЗрд▓рд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдирд╡реАрди рддрдХреНрддреЗ рд╡рд╛рдЪреВ рд╢рдХрдд рдирд╛рд╣реА.
рдЕрд╕ рдХрд╛? рдХреЛрдбрдордзреНрдпреЗ рддрдереНрдп рдЕрд╕реВрдирд╣реА GRANT
, рддреЗ рдиреЗрд╣рдореА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдд рдирд╛рд╣реАрдд. 2 рдкрджреНрдзрддреА рдЖрд╣реЗрдд: syncPreparedDatabases
╨╕ syncDatabases
. рдж syncPreparedDatabases
- рд╡рд┐рднрд╛рдЧрд╛рддреАрд▓ рд╡рд╕реНрддреБрд╕реНрдерд┐рддреА рдЕрд╕реВрдирд╣реА preparedDatabases
defaultRoles
╨╕ defaultUsers
рднреВрдорд┐рдХрд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдбреАрдлреЙрд▓реНрдЯ рдЕрдзрд┐рдХрд╛рд░ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рдд рдирд╛рд╣реАрдд. рдЖрдореНрд╣реА рдкреЕрдЪ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рдЖрд╣реЛрдд рдЬреЗрдгреЗрдХрд░реВрди рд╣реЗ рдЕрдзрд┐рдХрд╛рд░ рдЖрдкреЛрдЖрдк рд▓рд╛рдЧреВ рд╣реЛрддреАрд▓.
рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕реБрдзрд╛рд░рдгрд╛рдВрдордзреАрд▓ рд╢реЗрд╡рдЯрдЪрд╛ рдореБрджреНрджрд╛ -
рдХрд╛рдп рдЭрд╛рд▓рдВ?
рд╡рд░реАрд▓ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдорд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд, рдЖрдореНрд╣реА рдЭрд╛рд▓рдБрдбреЛ рдпреЗрдереАрд▓ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рдСрдкрд░реЗрдЯрд░рд▓рд╛
рдлреЛрд░реНрдХрдордзреНрдпреЗ рд╕реНрд╡реАрдХрд╛рд░рд▓реЗрд▓реНрдпрд╛ PR рдЪреА рдпрд╛рджреА:
рдбреЙрдХрд░рдордзреАрд▓ рдСрдкрд░реЗрдЯрд░рд╕рд╛рдареА рд╕реБрд░рдХреНрд╖рд┐рдд рд╣рд▓рдХреА рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ ;рдмреЕрдХрдЕрдк рдЕрдХреНрд╖рдо рдХрд░рдд рдЖрд╣реЗ ;k8s рдЪреНрдпрд╛ рд╡рд░реНрддрдорд╛рди рдЖрд╡реГрддреНрддреНрдпрд╛рдВрд╕рд╛рдареА рд╕рдВрд╕рд╛рдзрди рдЖрд╡реГрддреНрддреНрдпрд╛ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдд рдЖрд╣реЗ ;рдиреЛрдб рдЕтАНреЕрдлрд┐рдирд┐рдЯреАрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА .
рд╕рдореБрджрд╛рдпрд╛рдиреЗ рдпрд╛ PR рд▓рд╛ рд╕рдорд░реНрдерди рджрд┐рд▓реНрдпрд╛рд╕ рддреЗ рдЪрд╛рдВрдЧрд▓реЗ рд╣реЛрдИрд▓ рдЬреЗрдгреЗрдХрд░реВрди рддреЗ рдСрдкрд░реЗрдЯрд░рдЪреНрдпрд╛ рдкреБрдвреАрд▓ рдЖрд╡реГрддреНрддреАрд╕рд╣ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдорд┐рд│рддреАрд▓ (1.6).
рдмреЛрдирд╕! рдЙрддреНрдкрд╛рджрди рд╕реНрдерд▓рд╛рдВрддрд░ рдпрд╢реЛрдЧрд╛рдерд╛
рдЬрд░ рддреБрдореНрд╣реА Patroni рд╡рд╛рдкрд░рдд рдЕрд╕рд╛рд▓, рддрд░ рдереЗрдЯ рдЙрддреНрдкрд╛рджрди рдХрдореАрдд рдХрдореА рдбрд╛рдЙрдирдЯрд╛рдЗрдорд╕рд╣ рдСрдкрд░реЗрдЯрд░рдХрдбреЗ рд╕реНрдерд▓рд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.
рд╕реНрдкрд┐рд▓реЛ рддреБрдореНрд╣рд╛рд▓рд╛ S3 рд╕реНрдЯреЛрд░реЗрдЬ рджреНрд╡рд╛рд░реЗ рд╕реНрдЯрдБрдбрдмрд╛рдп рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ
PostgreSQL рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддреА рдмрдЪрд╛рд╡рд╛рд╕рд╛рдареА рдпреЗрддреЗ. рддрдерд╛рдкрд┐, рдЖрдореНрд╣реА рдкреНрд░рдХрд╛рд╢рдиреЗ рдЖрдгрд┐ рд╕рджрд╕реНрдпрддреНрд╡реЗ рдХрд╢реА рддрдпрд╛рд░ рдХрд░рд╛рд╡реА рдпрд╛рдмрджреНрджрд▓ рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдгрд╛рд░ рдирд╛рд╣реА, рдХрд╛рд░рдг... рдЖрдордЪреА рдпреЛрдЬрдирд╛ рдлрд╕рд▓реА рд╣реЛрддреА.
рд╡рд╕реНрддреБрд╕реНрдерд┐рддреА рдЕрд╢реА рдЖрд╣реЗ рдХреА рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд▓рд╛рдЦреЛ рдкрдВрдХреНрддреАрдВрд╕рд╣ рдЕрдиреЗрдХ рд▓реЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд╛рд░рдгреНрдпрд╛ рд╣реЛрддреНрдпрд╛, рддреНрдпрд╛ рд╢рд┐рд╡рд╛рдп, рд╕рддрдд рдкреБрдиреНрд╣рд╛ рднрд░рд▓реНрдпрд╛ рдЖрдгрд┐ рд╣рдЯрд╡рд┐рд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛. copy_data
, рдЬреЗрд╡реНрд╣рд╛ рдирд╡реАрди рдкреНрд░рддрд┐рдХреГрддреА рдорд╛рд╕реНрдЯрд░ рдХрдбреАрд▓ рд╕рд░реНрд╡ рд╕рд╛рдордЧреНрд░реА рдХреЙрдкреА рдХрд░рддреЗ, рддреЗрд╡реНрд╣рд╛ рддреА рдлрдХреНрдд рдорд╛рд╕реНрдЯрд░ рд╕реЛрдмрдд рд░рд╛рд╣реВ рд╢рдХрдд рдирд╛рд╣реА. рд╕рд╛рдордЧреНрд░реА рдХреЙрдкреА рдХрд░рдгреЗ рдПрдХ рдЖрдард╡рдбрд╛ рдХрд╛рдо рдХреЗрд▓реЗ, рдкрд░рдВрддреБ рдорд╛рд╕реНрдЯрд░рдХрдбреЗ рдХрдзреАрд╣реА рдкрдХрдбрд▓реЗ рдирд╛рд╣реА. рд╢реЗрд╡рдЯреА, рдпрд╛рдиреЗ рдорд▓рд╛ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рд╕ рдорджрдд рдХреЗрд▓реА pg_dump
. рдореА рдпрд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдордЪреНрдпрд╛ рдЖрдордЪреНрдпрд╛ (рдХрд┐рдВрдЪрд┐рдд рд╕реБрдзрд╛рд░рд┐рдд) рдЖрд╡реГрддреНрддреАрдЪреЗ рд╡рд░реНрдгрди рдХрд░реЗрди.
рдХрд▓реНрдкрдирд╛ рдЕрд╢реА рдЖрд╣реЗ рдХреА рддреБрдореНрд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдХреГрддреА рд╕реНрд▓реЙрдЯрд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ рдЕрдХреНрд╖рдо рдХреЗрд▓реЗрд▓реЗ рд╕рджрд╕реНрдпрддреНрд╡ рдмрдирд╡реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдирдВрддрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрд░рдорд╛рдВрдХ рджреБрд░реБрд╕реНрдд рдХрд░реВ рд╢рдХрддрд╛. рдЙрддреНрдкрд╛рджрди рдХрд╛рд░реНрдпрд╛рд╕рд╛рдареА рдкреНрд░рддрд┐рдХреГрддреА рдЙрдкрд▓рдмреНрдз рд╣реЛрддреНрдпрд╛. рд╣реЗ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ рдХрд╛рд░рдг рдкреНрд░рддрд┐рдХреГрддреА рд╕рд╛рддрддреНрдпрдкреВрд░реНрдг рдбрдВрдк рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░реЗрд▓ рдЖрдгрд┐ рдорд╛рд╕реНрдЯрд░рдХрдбреВрди рдмрджрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рд╕реБрд░реВ рдареЗрд╡реЗрд▓.
рд╕реНрдерд▓рд╛рдВрддрд░ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреЗ рд╡рд░реНрдгрди рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рдкреБрдвреАрд▓ рдЖрдЬреНрдЮрд╛ рдЦрд╛рд▓реАрд▓ рд╣реЛрд╕реНрдЯ рдиреЛрдЯреЗрд╢рдиреНрд╕ рд╡рд╛рдкрд░рддреАрд▓:
- рдорд╛рд╕реНрдЯрд░ - рд╕реНрддреНрд░реЛрдд рд╕рд░реНрд╡реНрд╣рд░;
- рдкреНрд░рддрд┐рдХреГрддреА1 тАФ рдЬреБрдиреНрдпрд╛ рдЙрддреНрдкрд╛рджрдирд╛рд╡рд░ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░рддрд┐рдХреГрддреА;
- рдкреНрд░рддрд┐рдХреГрддреА2 - рдирд╡реАрди рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддреА.
рд╕реНрдерд▓рд╛рдВрддрд░ рдпреЛрдЬрдирд╛
1. рд╕реНрдХреАрдорд╛рдордзреАрд▓ рд╕рд░реНрд╡ рд╕рд╛рд░рдгреНрдпрд╛рдВрд╕рд╛рдареА рдорд╛рд╕реНрдЯрд░рд╡рд░ рд╕рджрд╕реНрдпрддрд╛ рддрдпрд╛рд░ рдХрд░рд╛ 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();"
рен. рдирд╡реАрди рд▓реЙрдЬрд┐рдХрд▓ рдкреНрд░рддрд┐рдХреГрддреАрд╡рд░ рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрд╢рди рддрдпрд╛рд░ рдХрд░реВрдпрд╛:
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. рдкреНрд░рддрд┐рдХреГрддреА рдЕрдХреНрд╖рдо рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдиреБрдХреНрд░рдо рджреБрд░реБрд╕реНрдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣реЗ рдЪрд╛рдВрдЧрд▓реЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ
рдпрд╛ рдпреЛрдЬрдиреЗрдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рд╕реНрд╡рд┐рдЪрдУрд╡реНрд╣рд░ рдХрдореАрддрдХрдореА рд╡рд┐рд▓рдВрдмрд╛рдиреЗ рдЭрд╛рд▓рд╛.
рдирд┐рд╖реНрдХрд░реНрд╖
Kubernetes рдСрдкрд░реЗрдЯрд░ рддреБрдореНрд╣рд╛рд▓рд╛ K8s рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреНрдпрд╛ рдирд┐рд░реНрдорд┐рддреАрдордзреНрдпреЗ рдХрдореА рдХрд░реВрди рд╡рд┐рд╡рд┐рдз рдХреНрд░рд┐рдпрд╛ рд╕реБрд▓рдн рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд. рддрдерд╛рдкрд┐, рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдорджрддреАрдиреЗ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдСрдЯреЛрдореЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХреЗрд▓реНрдпрд╛рдореБрд│реЗ, рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА рддреЗ рдЕрдиреЗрдХ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдмрд╛рд░рдХрд╛рд╡реЗ рджреЗрдЦреАрд▓ рдЖрдгреВ рд╢рдХрддрд╛рдд, рдореНрд╣рдгреВрди рдЖрдкрд▓реЗ рдСрдкрд░реЗрдЯрд░ рд╣реБрд╢рд╛рд░реАрдиреЗ рдирд┐рд╡рдбрд╛.
PostgreSQL рд╕рд╛рдареА рддреАрди рд╕рд░реНрд╡рд╛рдд рд▓реЛрдХрдкреНрд░рд┐рдп Kubernetes рдСрдкрд░реЗрдЯрд░ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрддрд▓реНрдпрд╛рдирдВрддрд░, рдЖрдореНрд╣реА Zalando рдордзреАрд▓ рдкреНрд░рдХрд▓реНрдк рдирд┐рд╡рдбрд▓рд╛. рдЖрдгрд┐ рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд╛рд╣реА рдЕрдбрдЪрдгреАрдВрд╡рд░ рдорд╛рдд рдХрд░рд╛рд╡реА рд▓рд╛рдЧрд▓реА, рдкрд░рдВрддреБ рдкрд░рд┐рдгрд╛рдо рдЦрд░реЛрдЦрд░рдЪ рдЖрдирдВрджрджрд╛рдпреА рд╣реЛрддрд╛, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рд╣рд╛ рдЕрдиреБрднрд╡ рдХрд╛рд╣реА рдЗрддрд░ PgSQL рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рдиреНрд╕рдордзреНрдпреЗ рд╡рд╛рдврд╡рдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдЖрдЦрдд рдЖрд╣реЛрдд. рддреБрдореНрд╣рд╛рд▓рд╛ рддрддреНрд╕рдо рдЙрдкрд╛рдп рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪрд╛ рдЕрдиреБрднрд╡ рдЕрд╕рд▓реНрдпрд╛рд╕, рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдордзреАрд▓ рддрдкрд╢реАрд▓ рдкрд╛рд╣реВрди рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдирдВрдж рд╣реЛрдИрд▓!
PS
рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдЪрд╛:
- ┬л
рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдгрд┐ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ (рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдЖрдгрд┐ рд╡реНрд╣рд┐рдбрд┐рдУ рдЕрд╣рд╡рд╛рд▓) "; - ┬л
рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рдордВрдЧрд│рд╡рд╛рд░ #5: PostgreSQL рдЖрдгрд┐ Kubernetes. CI/CD. рдЪрд╛рдЪрдгреА рдСрдЯреЛрдореЗрд╢рди "; - ┬л
K8s рдордзреАрд▓ Redis рдСрдкрд░реЗрдЯрд░рд╕рд╣ рдПрдХ рдХрдерд╛ рдЖрдгрд┐ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдбреЗрдЯрд╛рдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрддрддреЗрдЪреЗ рдПрдХ рд▓рд╣рд╛рди-рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди ┬╗.
рд╕реНрддреНрд░реЛрдд: www.habr.com