ááá¯ážáá»á¬ážáá¬áááºááŸáá·áºá¡áá»áŸá áá±á¬ááºáááºáá»á¬ážááẠá¡á±á¬ááºáá«áá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠáááºáá¶áááŸááááº- "áá»áœááºá¯ááºááá¯á· áááºážááᯠAmazon RDS áá²á·ááá¯á· ááá¯áá»ááºáá±á¬áºáááºáž á
á»á±ážáááºáá¬áááº"; "áá»áœááºáá±á¬áºááá¯á·á RDS ááá¯áá»áá¯ážáá² ááá¯áá»ááºáá«áááºá áá«áá±ááá·áº áá±áá¬ááá¯ááºážá áááºá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááŸá¬áááá¯" Kubernetes ááœáẠááá¯áá²á·ááá¯á· á
á®áá¶ááá·áºááœá²ááá·áº ááŒá±ááŸááºážáá»ááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºáááºá¡ááœáẠPostgreSQL (Stoloná Crunchy Data ááŸáá·áº Zalando á០á¡á±á¬áºááá±áá¬áá»á¬áž) á¡ááœáẠáá±áááºážá¡á
á¬ážáá¯á¶áž á¡á±á¬áºááá±áá¬áá»á¬ážá áááºááŸáá¡ááŒá±á¡áá±ááᯠááŒáá·áºááŸá¯ááŒá®áž áá»áœááºá¯ááºááá¯á·áááœá±ážáá»ááºááŸá¯ááᯠááŒá¯áá¯ááºáá²á·áááºá
á€áá±á¬ááºážáá«ážááẠáá®á¡áá¯áá®ááŸá¯áá±á¬áá·áº (ááŒá±ááŸááºážáá»ááºáá»á¬ážá¡á¬áž ááŒááºáááºáá¯á¶ážáááºááŒááºáž) ááŸáá·áº áááºááœá±á·áá»áá±á¬ áááºá០(ááœá±ážáá»ááºáá²á·ááá·áºá¡áá¬ááŸáá·áº ááœááºáá±á«áºáá¬ááá·áºá¡áá¬) ááŸá
áºáá¯áá¯á¶ážá០áááŸááá¬ážáá±á¬ á¡ááœá±á·á¡ááŒá¯á¶ááŒá
áºáááºá ááá¯á·áá±á¬áº áŠážá
áœá¬á RDS á¡ááœáẠááŒá
áºááá¯ááºáá»á±ááŸááá±á¬ á¡á
á¬ážááá¯ážááŸá¯áá»á¬ážá¡ááœáẠáá±áá°áá»ááá¯á¡ááºáá»ááºáá»á¬ážááẠá¡áááºá¡áá¬ááŒá
áºáááºááᯠáá¯á¶ážááŒááºááŒáá«á
áá¯á·á
RDS ááá¯áá¬áá¬áá²
áá°ááœá±á RDS á¡ááŒá±á¬ááºáž ááŒá±á¬ááŒáá²á·á¡áá«á áá»áœááºá¯ááºááá¯á·áá²á· á¡ááœá±á·á¡ááŒá¯á¶á¡áá áá°ááá¯á·á á á®áá¶ááá·áºááœá²áá¬ážáá²á· DBMS áááºáá±á¬ááºááŸá¯ááᯠááá¯ááá¯áá«áááº-
- configure áá¯ááºáááºááœááºáá°áááº;
- áá»áŸááºáá
áºááŒááºááá¯ááºáá»ááºáá»á¬ážááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºááŒá®áž áááºážááá¯á·áá¶á០ááŒááºáááºááá°ááá¯ááºá
áœááºáž (ááŒá
áºááá¯ááºááẠáá¶á·ááá¯ážáá°áá®ááŸá¯ááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºáááºá
PITR ); - master-slave topologies ááᯠáááºáá®ážááá¯ááºá á±áááºá
- ááá¯ážáá»á²á·ááŸá¯áá»á¬ážáááŒáœááºááá±á¬á á¬áááºážááŸááááºá
- á á¬áááºážá á áºááŒááºážááŸáá·áº á¡áá¯á¶ážááŒá¯áá°/áááºáá±á¬ááºááœáá·áºá á®áá¶ááá·áºááœá²ááŸá¯ááá¯á·ááᯠáá¶á·ááá¯ážáá±ážáááºá
áá±áá°áá»á¡á¬ážááŒáá·áºááŒá±á¬ááá»áŸáẠáááºáá²ááœááºááŸááá±á¬ á¡áá¯ááºáá
áºáá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠáá»ááºážáááºáá¯á¶áá»á¬ážááẠá¡ááœááºááœá²ááŒá¬ážááá¯ááºáá±á¬áºáááºáž á¡ááŒá±á¡áá±á¡á Ansible ááŸáááá·áºáááºážááŒá±á¬ááºážááẠáá»áœááºá¯ááºááá¯á·ááŸáá·áº ááá®ážá
ááºáá«á (ááááºá¡ááŒá
Ạ2GIS á០áá¯ááºáá±á¬áºááá¯ááºáááºáá»á¬ážá á¡áá¬ážáá° áá±á¬ááºáá»ááºáá»áá²á·ááŒáááºá
á¡á±á¬áºááá±áá¬áá»á¬ážááẠKubernetes áá±áá
áá
áºááŸá á¡áá¬ážáá°ááŒá¿áá¬áá»á¬ážááᯠááŒá±ááŸááºážáááºá¡ááœáẠáá¯á¶áááºážáááºážáá
áºáá¯ááŒá
áºáááºá "Flanta" á áááºážááá¬ááá¯ááºáᬠáá«ááá¯ááºáá¬ááẠKubernetes á¡ááœááºážááŸá áá±áá¬áá±á·á
áºáá»á¬ážááŸáá·áº áááºá
ááºá áááºážááá¯á·á¡ááŒá±á¬ááºáž á¡áá±ážá
áááºááᯠááŒá±á¬ááá¯áá¬ážááŒá®ážááŒá
áºáááºá
NB: ááá¯ážááŸááºážáá±á¬ á¡á±á¬áºááá±áá¬áá»á¬ážááᯠá¡ááŒááºáááºáá®ážáááºá áá»áœááºá¯ááºááá¯á·á Open Source utility ááᯠá¡á¬áá¯á¶á
áá¯ááºááẠá¡ááŒá¶ááŒá¯á¡ááºáá«áááºá
PostgreSQL á¡ááœáẠáá¬áááºááŒá®áž K8s á¡á±á¬áºááá±áá¬ááœá± á¡áá»á¬ážá¡ááŒá¬ážááŸááá«áááºá
- á ááá¯ááœááº;
- Crunchy Data PostgreSQL á¡á±á¬áºááá±áá¬;
- Zalando Postgres á¡á±á¬áºááá±áá¬
áá°ááá¯á·ááᯠááá¯á¡áá®ážáááºááŒáá·áºáá¡á±á¬ááºá
á¡á±á¬áºááá±áá¬ááœá±ážáá»ááºááŸá¯
á¡áááºááœááºáá±á¬áºááŒáá¬ážáá±á¬ á¡áá±ážááŒá®ážáá±á¬á¡ááºá¹áá«áááºáá»á¬ážá¡ááŒáẠKubernetes á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááá¯ááºáᬠáááºáááºááŸá¯á¡ááºáá»ááºáá®áá¬áá»á¬ážá¡áá±ááŸáá·áº áá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬áºááá±áá¬áá»á¬ážá០á¡á±á¬ááºáá«ááá¯á·ááᯠáá»áŸá±á¬áºááá·áºáá¬ážáááº-
- Git ááŸáá·áº á¡áá° ááŒáá·áºáá»ááºááŒááºážá
á áááºááŒáá¯ááºá¡áááºážá¡ááŒá áºáá»á¬áž ; - pod ááá·áºáá»ááºáááºááœááºááŸá¯áá±á¬ááºáá¶ááŸá¯;
- node affinity ááá¯á·ááá¯áẠnode selector ááᯠááá·áºááœááºážááŒááºážá
- áááºážáá¶ááŸá¯áááºáááºááŒááºáž;
- áá»áááºááŸáááŒááºážá áœááºážáááºáá»á¬ážáááŸáááá¯ááºááŸá¯;
- áá¬ážáááºááá¯ááºáá±á¬áááºážááá¬áá»á¬ážááŸáá·áº á¡áááá·áºáá»á¬ážáááºá
á¡ááŸááºáá áºáá¯á á®áá¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠááá±á·áá¬áá² (áá±á¬ááºážáá«ážáá áºáá¯áá¯á¶ážááá¯áááºááŒá®ážáá±á¬áẠáááºážááá¯á·ááŸáá·áºáááºáááºááá·áºáá±ážááœááºážáá»á¬ážááŸááá±ážáá«á ááŸááºáá»ááºáá»á¬ážááœááºáá±ážáá«)á áá±áá¯áá»á¡á¬ážááŒáá·áº á¡á á¯á¡á ááºážáá»á¬ážá á¡áá°ážááŒá¯ááŸá¯á¡á¬áž ááá¯ááá¯áááá»á áœá¬áá±á¬áºááŒáááºá¡ááœáẠá€áááºááŸááºáá»ááºáá»á¬ážááẠááá¯á¡ááºááŒá±á¬ááºáž áá±áá¯áá»á¡á¬ážááŒáá·áº áá»áœááºá¯ááºáááááŒá¯áááááºááŒá áºáá«áááºá áááá»áá±á¬áá»áŸá±á¬ááºááœáŸá¬áá»á¬ážá¡ááœáẠáááºážááá¯á·ááᯠááŸá¬áá°áá«á á€áááºážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááẠá áœááºážáá±á¬ááºáááºááŸáá·áº áá¯ááºáá»á ááááºá¡ááœáẠá¡áá±á¬ááºážáá¯á¶ážáá»áááºááœááºáá»áŸá¬ááᯠáááŸáááá¯ááºáá«áááºá
ááᯠPostgreSQL á¡á±á¬áºááá±áá¬áá»á¬ážáᶠáááºááœá¬ážááŒáá«á áá¯á·á
1. Stolon
á¡ááŸááºá ááºá á áºá Stolon ááẠááœá±ážáá±á«áºááŒá±á¬áºááŒááºááá¯ááºáá±á¬ áááá¯áá¬ááá¬á á¡áá±á¬ááºážáá¯á¶áž á¥ááá¬áá áºáá¯ááŒá áºáááºá
á€á¡á±á¬áºááá±áá¬á á
ááºáá
á¹á
ááºážááᯠá¡á
á®áááºáá¶á
ᬠááá¯á·ááá¯áẠá¡áá±ážá
áááºááœáẠááœá±á·ááŸáááá¯ááºáááºá
ááá¯á·áá±á¬áº Stolon stolonctl
á ááŒáá·áºáá»ááºááŒááºážááᯠHelm ááá¬ážááŸáááá·áº áá¯ááºáá±á¬ááºááŒá®áž á
áááºááŒáá¯ááºáá»á¬ážááᯠConfigMap ááœáẠáááºááŸááºáááºááŸááºáá¬ážáá«áááºá
áá áºáááºááœááºá á¡á±á¬áºááá±áá¬ááẠá¡ááŸááºááááºá¡á±á¬áºááá±áá¬ááá¯ááºáá« (á¡á¬ážáá¯á¶ážááŒá®ážáá±á¬ááºá áááºážááẠCRD ááá¯á¡áá¯á¶ážáááŒá¯áá«)á ááá¯á·áá±á¬áº á¡ááŒá¬ážáá áºáááºááœááºá áááºážááẠáááºá¡á¶áááºááœááºáá»ááŒááºááá·áºá¡ááá¯ááºáž K8s ááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠááŒááºáááºáááºááŸááºááá¯ááºá á±ááá·áº ááŒá±á¬ááºážááœááºááŒááºááœááºá áá áºáá áºáá¯ááŒá áºáááºá
á¡áá»ááºážáá»á¯ááºááŒá±á¬ááá»áŸáẠáá»áœááºá¯ááºááá¯á·á¡ááœáẠáá±áá¬áá±á·á áºáá áºáá¯á á®á¡ááœáẠáá®ážááŒá¬ážááá¬ážáá áºáá¯áááºáá®ážááẠááá·áºáá»á±á¬áºáá¯á¶ááá±á«áºáá«á ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá¬ážááœá±ážáá»ááºá áá¬áá»á¬ážááᯠááŸá¬ááœá±áá¬ááŒáááºá
2. Crunchy Data PostgreSQL á¡á±á¬áºááá±áá¬
Crunchy Data PostgreSQL á¡á±á¬áºááá±áá¬ááááºáá±á¬ááºáá¯á¶áááºáá±á¬áºááŒáá¬ážáá±á¬ááá¯á¡ááºáá»ááºáá»á¬ážááŸáá·áºáááºážááá¯ááºáá®áááº-
á
á®áá¶ááá·áºááœá²ááŸá¯ utility ááŸáááá·áºááŒá
áºáá±á«áºáááºá pgo
ááá¯á·áá±á¬áºá áááºážááẠKubernetes á¡ááœáẠá
áááºááŒáá¯ááºá¡áááºážá¡ááŒá
áºáá»á¬ážááᯠáá¯ááºáá±ážáááºá ááá¯á·ááŒá±á¬áá·áºá á¡á±á¬áºááá±áá¬ááẠáá»áœááºá¯ááºááá¯á·á¡á¬áž á¡áá¬ážá¡áá¬ááŸááá±á¬ á¡áá¯á¶ážááŒá¯áá°áá»á¬ážá¡áá±ááŒáá·áº ááŸá
áºáááºáááº-
- CRD ááŸáááá·áºááááºážáá»á¯ááºááŸá¯ááŸááá«áááºá
- á¡áááºááŒá±áá±á¬á¡áá¯á¶ážááŒá¯áá°á á®áá¶ááá·áºááœá²ááŸá¯ (CRD ááŸáááá·áºáááºáž);
- á¡ááŒá¬ážá¡á
áááºá¡ááá¯ááºážáá»á¬ážááŸáá·áºáá±á«ááºážá
ááº
Crunchy Data Container Suite - PostgreSQL á¡ááœáẠááœááºááááºáá¬áá¯á¶áá»á¬áž á¡áá°ážááŒá¯á á¯á ááºážááŸá¯ááŸáá·áº áááºážááŸáá·áºááœá²áááºáá¯ááºáá±á¬ááºáááºá¡ááœáẠá¡áá¯á¶ážáááºááŸá¯áá»á¬áž (pgBackRestá pgAuditá áá¶á·ááá¯ážáá°áá®ááŸá¯á០ááá¯ážáá»á²á·ááŸá¯áá»á¬ážá á áááºááŒáá·áº)á
ááá¯á·áá±á¬áºá Crunchy Data á០á¡á±á¬áºááá±áá¬áá»á¬ážááᯠá áááºá¡áá¯á¶ážááŒá¯ááẠááŒáá¯ážáááºážááŸá¯áá»á¬ážááẠááŒá¿áá¬áá»á¬ážá áœá¬ááᯠáááºááŸá¬ážá á±áááºá
- áááºážáá¶ááá¯ááºááœáá·áºáááŸááá« - nodeSelector ááá¯áᬠáá±ážáá¬ážáááºá
- áá»áœááºá¯ááºááá¯á·ááẠááá¯ááºáá¶ááá¯ááºá¡ááá®áá±ážááŸááºážáá áºáá¯á¡á¬áž ááŒáá·áºáá»ááºáá¬ážáá±á¬áºáááºáž áááºáá®ážáá¬ážáá±á¬ pods áá»á¬ážááẠááŒáá·áºáá»ááºááŒááºážááá áºá áááºáá áºááá¯ááºážááŒá áºáááºá StatefulSets ááŸáá·áºááá°áá²á á¡áá¯á¶ážáá»ááŸá¯áá»á¬ážááẠáá áºááºáá»á¬ážááᯠáááºáá®ážááááá«á
áá±á¬ááºáá¯á¶ážá¡á¬ážáááºážáá»ááºá áááºá áá¬á¡ááá¯ááºá¡ááá·áºáá»á¬ážááᯠááŒá áºá á±áááº- á ááºážáááºááŸá¯áááºáááºážáá»ááºááœáẠáá áºáá áºáá¯áááºážááŒáá·áº áá¯á¶áá° á áá¯ááᯠáá»áœááºá¯ááºááá¯á· áá¯ááºáá±á¬ááºááá¯ááºáá²á·áááºá áá±áááœááºážááá¯ááŸá±á¬ááºááŸá¯áá¯á¶áá° á áᯠá¡áá¯ááºáá¯ááºáá±ááẠ(ááá¯ááºáá±á¬áºáááºáž) á¡á±á¬áºááá±áá¬á០ááááºážááá¯á·á á±áááºá
á€á¡á±á¬áºááá±áá¬ááá±á¬ááºáááºáá°ážááŒá¬ážáá»ááºááŸá¬ á¡áááºá
áá
áºá¡áá»áá¯ážáá»áá¯ážááŒáá·áº á¡áááºááá·áºáá¯ááºáá¬ážáá±á¬áá±á«ááºážá
ááºááŸá¯ááŒá
áºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá pgAdmin ááŸáá·áº pgBounce ááá¯á·ááᯠááá·áºááœááºážááẠááœááºáá°áááºá
ááá¯á·áá±á¬áºáááºáž Kubernetes ááŸáá¯ááºáá¯ááºáá±á¬ á¡áááºážá¡ááŒá áºáá»á¬ážá áá°ážáááºážáá±á¬ááœá±ážáá»ááºááŸá¯ááẠáá»áœááºá¯ááºááá¯á·á¡á¬áž ááá°áá®áá±á¬ááŒá±ááŸááºážáá»ááºáá áºáá¯ááŸá¬ááœá±ááẠááá¯á¡ááºáá¬á á±áááºá
3. Zalando Postgres á¡á±á¬áºááá±áá¬
áá»áœááºá¯ááºááá¯á·ááẠZalando áá¯ááºáá¯ááºáá»á¬ážááᯠá¡áá»áááºá¡áá±á¬áºááŒá¬á¡á±á¬áẠáááá¬ážááŒá®ážááŒá
áºáááºá áá»áœááºá¯ááºááá¯á·ááẠZalenium ááá¯á¡áá¯á¶ážááŒá¯ááá·áº á¡ááœá±á·á¡ááŒá¯á¶ááŸáááŒá®ážá áá»áœááºá¯ááºááá¯á·ááŒáá¯ážá
á¬ážáá²á·áá«áááºá
á€áááºááŸá¬ áá±á¬ááºážáá«ážááœáẠááœá±ážááœá±ážáá¬ážáá±á¬ á¡áááºá¡áááºáá¯á¶áž ááŒá±ááŸááºážáá»ááºááŒá áºáááº- áááá¡ááŒááẠáá¯ááºáá±ááŸá¯ááᯠ2018 áá¯ááŸá ẠááŒáá¯ááºáááœáẠááŒá¯áá¯ááºáá²á·áááºá ááá¯á·áá±á¬áºá ááá¬ážáááºáá¯ááºáá±ááŸá¯á¡áááºážáááºáá¬ááŸááá±á¬áºáááºáž GitHub ááœááºááŒáẠ1300+ ááŸáá·áºá¡áá»á¬ážáá¯á¶ážáá¶á·ááá¯ážáá°á¡áá±á¡ááœáẠ(70+) ááŸáá·áºá¡áá° Crunchy Data ááŸááŒá±ááŸááºážáá»ááºáááºáá°ááŒáá¯ááºáá»á¬ážááŸá¯ááœááºááá¯ááá¯áá»á±á¬áºááŒá¬ážáá±á¬ááá±á¬áá»ááºááá¯áá»á±á¬áºááœááºáá±ááŒá®ááŒá áºáááºá
âáá±á«ááºážá¡á¯á¶ážá¡á±á¬ááºâ á€á¡á±á¬áºááá±áá¬ááẠá¡áá»áááºá ááºážáááºááŒá±ááŸááºážáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááº-
- Patroni ááŸáá·áº
Spilo áá¬ážáá±á¬ááºážááŒááºážá -
WAL-E - Backup ááœá±á¡ááœááºá -
PgBouncer - áá»áááºáááºááŸá¯áá±áááºá¡ááŒá áºá
Zalando á០á¡á±á¬áºááá±áá¬áááá¯áá¬áááºáá¬ááᯠá€áá²á·ááá¯á·áááºááŒáá¬ážáááºá
á¡á±á¬áºááá±áá¬ááẠá
áááºááŒáá¯ááºá¡áááºážá¡ááŒá
áºáá»á¬ážááŸáááá·áº á¡ááŒáá·áºá¡áá
á®áá¶ááá·áºááœá²ááŒá®áž ááœááºááááºáá¬áá»á¬ážá០StatefulSet ááᯠá¡ááá¯á¡áá»á±á¬ááºáááºáá®ážáá±ážáᬠá¡áá»áá¯ážáá»áá¯ážáá±á¬ááá¯ááºáá¬ážáá»á¬ážááᯠáá°ážáá²ááá¯á·ááá·áºááŒááºážááŒáá·áº á
áááºááŒáá¯ááºááŒááºáááºááá¯ááºáááºá á€á¡áá¬á¡á¬ážáá¯á¶ážááẠCrunchy Data ááŸá¡á±á¬áºááá±áá¬áá»á¬ážááŸáá·áºááŸáá¯ááºážááŸááºáá»áŸááºáááááá¬áá¬á¡á¬ážáá¬áá»ááºááŒá
áºáááºá
ááá·áºááœááºážá ááºážá á¬ážáá¬ážááá·áº ááœá±ážáá»ááºá áᬠ3 áá¯áá²á០Zalando á០ááŒá±ááŸááºážáá»ááºááᯠáá»áœááºá¯ááºááá¯á·ááœá±ážáá»ááºáá²á·áááŒáá·áº áááºážáá áœááºážáá±á¬ááºáááºáá»á¬ážá áá±á¬ááºáááºáá±á¬áºááŒáá»ááºáá áºáá¯ááᯠá¡áá¯á¶ážáá»ááŸá¯á¡áá±á·á¡áá»áá·áºááŸáá·áºá¡áá° á¡á±á¬ááºááœáẠáá±á¬áºááŒáá«áááºá
Zalando á០Postgres á¡á±á¬áºááá±áá¬ááŸáá·áº áá±á·áá»áá·áºáá«á
á¡á±á¬áºááá±áᬠááŒáá·áºáá»ááºááŒááºážááẠá¡ááœááºááá¯ážááŸááºážáá«áááº- GitHub á០áááºááŸáááœááºááŸáááŸá¯ááᯠáá±á«ááºážáá¯ááºáá¯ááºááŒá®áž YAML ááá¯ááºáá»á¬ážááᯠáááºážááœáŸááºá០á¡áá¯á¶ážááŒá¯áá«á
áááºáááºááŒá®ážáá±á¬ááºá áááºááẠáááºáááºááŒááºážá¡ááœáẠá
áááºáá°ááá·áºáááºá 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 áᯠá¡á
á¯á¡áá±ážááᯠááŒáá·áºáá»ááºáá¬ážáááºá
ááááá¬ážááá»áá¯ážáááºáááºá áááºá
á®áá¶ááá·áºááœá²áá±ážá¡ááœá²á· -
PostgreSQL á¡á
á¯á¡áá±ážáá»á¬ážá
á¬áááºáž
Backup á
á®áá¶ááá·áºááœá²ááŸá¯
áá±á¬ááºáááºá
áááºáááºá
á¬ážááá¯á·áá±á¬ááºážáá²á· feature ááá±á¬á· support ááŒá
áºáá«áááºá
ááŒá¿áá¬áá»á¬ážááŸáá·áº ááŒá±ááŸááºážáá»ááºáá»á¬áž
ááá¯á·áá±á¬áºá á¡á±á¬áºááá±áá¬á¡áá¯á¶ážááŒá¯ááŸá¯ááẠáááŒá¬áá®ááœáẠáááá¬áááºááŸá¬ážáá±á¬ áá»áá¯á·ááœááºážáá»ááºáá»á¬ážá áœá¬ááᯠáá¯ááºáá±á¬áºááŒááá²á·áááº-
- nodeSelector áá¶á·ááá¯ážááŸá¯ áááŸáááŒááºážá
- á¡áááºááááºážáááºážááŸá¯áá»á¬ážááᯠááááºááẠáá áœááºážáá±á¬ááºááá¯ááºááŒááºážá
- áá±áá¬áá±á·á áºáááºáá®ážááŸá¯ áá¯ááºáá±á¬ááºáá»ááºááᯠá¡áá¯á¶ážááŒá¯ááá·áºá¡áá«á áá¯á¶áá±á¡ááœáá·áºá¡áá±ážáá»á¬áž áá±á«áºáá¬áááºááá¯ááºáá«á
- áá áºáá«áá áºáá¶ááœáẠá á¬ááœááºá á¬áááºážáá»á¬áž áá»á±á¬ááºáá¯á¶ážáá±ááẠááá¯á·ááá¯áẠáá±á¬ááºážáá±áá«áááºá
áá¶áá±á¬ááºážáá±á¬ááºáá áœá¬á áá°ááá¯á·áá±á¬áºáá±á¬áºáá»á¬ážáá»á¬ážááá¯ááŒá±ááŸááºážááá¯ááºáá«áááºá á¡áá¯á¶ážááá±á ááŒáá«á áá¯á· - ááŒá¿áá¬áá»á¬ážááŸáá·áºá¡áá° á á¬ááœááºá á¬áááºáž.
ááŒá
áºááá¯ááºáááºááŸá¬á á¡áááºááááºážáááºážááᯠááŸááºáá¯á¶áááºáááºážááŸáá·áº á¡áááºáá¯á¶ážááᯠá¡á±á¬áºááá±áᬠUI ááŸáá·áº áááºááá¯á·áá»áááºáááºááááºááᯠá¡ááŒá²ááŸááºážááŸááºážáááºážáááºážáááááá±ážááá·áºá¡áá»ááºááᯠáááºááŒá¯á¶ááœá±á·áááá¯ááºáááºá á
á¬ááœááºá
á¬áááºážááẠá€á¡ááŒá±á¬ááºážááᯠááŒááºáááºážá
ááºááœáẠááŒá±á¬ááá¯áá±á¬áºáááºáž áááá·áºáá±á¬áºááŒáá»ááºááœáẠáá«ááŸááá±áá«áááºá
- áá»áŸáá¯á·ááŸááºáá»ááºáá áºáá¯ááŒá¯áá¯ááºáááºááá¯á¡ááºáááºá
- áááºážááᯠááá·áºáááºáá»ááºáá
áºáá¯á¡ááŒá
Ạá¡á±á¬áºááá±áá¬áᶠáá±ážááá¯á·áá«á
pod_environment_secret_name
á¡á±á¬áºááá±áá¬áááºáááºáá»á¬ážáá«ááŸááá±á¬ CRD ááœáẠááá¯á·ááá¯áẠConfigMap ááœáẠ(á¡á±á¬áºááá±áá¬á¡á¬áž áááºááá·áºááœááºážááẠáááºáá¯á¶ážááŒááºáá¯á¶áá±á«áº áá°áááºá)á
ááá¯á·áá±á¬áºáááºáž ááœááºáá±á«áº áá¬ááá·áºá¡ááá¯ááºážá á€áááºááŸá¬ áá±á¬áá±á¬ááẠáááŒá
áºááá¯ááºáá±á á¡á²áá«ááŒá±á¬áá·áº áá»áœááºáá±á¬áºááá¯á· á
á¯áá±á¬ááºážáááºá
á¡áááºá áááºááẠá¡á±á¬áºááá±áá¬áᶠá¡áááºáá°ážáá°ááẠáá±á¬ááºáá»á¬ážááᯠáá»á±á¬áºááœá¬ážáá«áá wal_s3_bucket
ááŒá®ážáá»áŸáẠAWS S3 ááœáẠáá±á¬á·áá»á¬ážáááºáá±á¬ááºáá«á á¡áá¬á¡á¬ážáá¯á¶ážááᯠbackup áá¯ááºáá¬ážáááá·áºáááºá: áá¯ááºáá¯ááºááŸá¯ááœáẠá¡ááŒá±áá¶áá¬áá áá¬ááºáá¯á¶ááœááºáááºáž á¡ááŒá±áá¶áá«áááºá áá«á áá«ááá¯á·áá²á· áááá¯ááºáá®áá°ážá
á¡á±á¬áºááá±áá¬á¡áá¯á¶ážááŒá¯áá±á¬á¡áá«ááœáẠPgSQL á¡ááœááºá¡ááŒá±áᶠDocker wrapper ááŒá
áºááá·áº Spilo á¡ááœáẠááá·áºáááºáá±á¬ááºáá»á¬ážá áá±á¬áºááŒáá»ááºááœááºá áááºážááẠááœááºáá±á«áºáá¬áááº- áááºááẠáá±á¬ááºáá
áºáá¯ááᯠáá»á±á¬áºááœá¬ážááá¯ááºáááºá WAL_S3_BUCKET
ááá¬á ááá¯á·ááŒá±á¬áá·áº áááá¹áá°áá°ážááŒááºážááᯠááááºáá«á ááá¯á·á¡ááŒáẠáááºážáá¬á¡á¬ážáááŒá
áºáá±áááºááᯠááœá±á·ááá«áááºá enableWALArchiving: false
PostgreSQL á¡á
á¯á¡áá±ážá¡áááºážá¡ááŒá
áºáá
áºáá¯ááá¯á·á
áá¯ááºáá²á·á á¡á±á¬áºááá±áᬠ2 áá¯ááᯠáááºáááºááŒááºážááŒáá·áº ááœá²ááŒá¬ážá áœá¬ áá¯ááºáá±á¬ááºááá¯ááºáááº- áá áºáá¯ááẠá¡ááá·áºáááºááŸááºááẠ(á¡áááºááááºážáááºážááŒááºážáááŸááá²) ááŸáá·áº áá¯ááááá áºáᯠáá¯ááºáá¯ááºáááºá¡ááœáẠááŒá áºáááºá áá«áá±ááá·áº áá»áœááºáá±á¬áºááá¯á·á áá áºáá¯áá²á·áá áºáᯠáá¯ááºááá¯ááºáá²á·áá«áááºá
áá±á¬ááºážááŒá®á S3 á¡ááœáẠáá±áá¬áá±á·á áºáá»á¬ážááá¯á· áááºáá±á¬ááºááœáá·áºááᯠáááºááá¯á·ááœáŸá²ááŒá±á¬ááºážááááºááᯠáá»áœááºá¯ááºááá¯á· áá±á·áá¬áá²á·ááŒá®áž áááá¹áá°áá°ážáá°ááŸá¯áá»á¬ážááᯠááá¯ááŸá±á¬ááºáááºážáá²ááá¯á· á áááºáá±á¬ááºááŸááá²á·áááºá á¡áááºá á¬áá»ááºááŸá¬áá»á¬ážááᯠá¡á±á¬áºááá±áᬠUI ááœáẠáááºááá¯á·áá¯ááºáá±á¬ááºááá¯ááºáááºáááºážá
á¡á±á¬áºááá±áᬠ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
á¡áááºážááá¹ááá»á¬ážáááºáá®ážáááºá¡ááœáẠáá°áááºážá¡ááœáá·áºá¡áá±ážáá»á¬ážááᯠá¡áá¯á¶ážáá»áááºááá¯ááºáá«á á€á¡ááœáá·áºá¡áá±ážáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬ááºá¡áá¯á¶ážáá»ááá¯ááºááẠáá»áœááºá¯ááºááá¯á·ááẠáá¬áá±ážááẠááŒááºáááºáá±áá«áááºá
áá»áœááºá¯ááºááá¯á·ááŸáá·áº áááºááá¯ááºáá±á¬ ááá¯ážáááºááŸá¯áá»á¬ážááœáẠáá±á¬ááºáá¯á¶ážá¡áá»ááºááŸá¬-
áá¬ááŒá áºáá¬áá²?
á¡áááºáá«ááŒá¿áá¬áá»á¬ážááá¯ááŒá±ááŸááºážááŒááºážáááááºáá»á¬ážá¡áá±á«áºá¡ááŒá±áá¶ááá»áœááºá¯ááºááá¯á·ááẠPostgres á¡á±á¬áºááá±áá¬á¡á¬áž Zalando ááŸááœá²áá¯ááºáá²á·áááºá
áááºážáá¯á¶áááºážááœááœáẠáááºáá¶áá¬ážáá±á¬ PR áá»á¬ážá á¬áááºáž-
Docker ááŸá á¡á±á¬áºááá±áá¬á¡ááœáẠáá¯á¶ááŒá¯á¶áá±á«á·áá«ážáá±á¬ áá¯ááºáá¯á¶áá áºáᯠáááºáá±á¬ááºááŒááºážá ;á¡áááºááááºážáááºážááŸá¯áá»á¬ážááᯠááááºááŒááºážá ;áááºááŸá k8s áá¬ážááŸááºážáá»á¬ážá¡ááœáẠáááºážááŒá áºáá¬ážááŸááºážáá»á¬ážááᯠá¡ááºááááºáá¯ááºáá±áááºá ;Node Affinity ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážá .
á¡ááá¯ááºá¡áááºážááẠဠPR áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáááºááá¯áá«á áááºážááá¯á·ááẠá¡á±á¬áºááá±áá¬á áá±á¬ááºáá¬ážááŸááºáž (1.6) ááŒáá·áº áá±á á®ážááŒá±á¬ááºážááá¯á· áááºááŸááºážááá¯ááºáááºááŒá áºáááºá
áá±á¬áááºá áºá áá¯ááºáá¯ááºááŸá¯ ááœáŸá±á·ááŒá±á¬ááºážááŒááºáž á¡á±á¬ááºááŒááºááŸá¯ áá¬ááºáááºáž
Patroni ááᯠáááºá¡áá¯á¶ážááŒá¯áá«áá ááá¯ááºááá¯ááºáá¯ááºáá¯ááºááŒááºážááᯠá¡áá»áááºá¡áááºážáááºáá»áŸááŒáá·áº á¡á±á¬áºááá±áá¬áᶠááŒá±á¬ááºážááœáŸá±á·ááá¯ááºáá«áááºá
Spilo ááẠááá·áºá¡á¬áž S3 ááá¯ááŸá±á¬ááºááŸá¯ááŸáá
áºááá·áº á¡ááá·áºá¡áá±á¡áá¬ážááŒáá·áº á¡á
á¯á¡áá±ážáá»á¬ážááᯠáááºáá®ážááá¯ááºá
á±áá«áááºá
PostgreSQL áá¯áá¹áááááºážááŒáá·áº áá°ážáá°ááŒááºážááẠáááºáááºááŒááºážááá¯á· áá±á¬ááºáá«áááºá ááá¯á·áá±á¬áºá áá»áœááºá¯ááºááá¯á·ááẠáá¯ááºáá±ááŸá¯áá»á¬ážááŸáá·áº á á¬áááºážááœááºážááŸá¯áá»á¬ážááᯠáááºááá¯á·áááºáá®ážááááºááᯠá¡áá±ážá áááºááá±á¬áºááŒáá¬ážáá«á áá»áœááºá¯ááºááá¯á·áá¡á á®á¡á ááºááẠá¡áááºáááŒá±áá±á¬ááŒá±á¬áá·áºááŒá áºáááºá
á¡ááŸááºááŸá¬ áá±áá¬áá±á·á
áºááœáẠá¡áááºážáá±á«ááºáž áááºážááŸáá·áºáá»á®á áááºáá±á¬ááºáá¬ážáá±á¬ ááá¬ážáá»á¬ážá
áœá¬áá«ááŸáááŒá®ážá áááºážá¡ááŒáẠá¡áááºáááŒáẠááŒáá·áºááœááºážáᬠáá»ááºáá
áºáá²á·áááºá copy_data
áá¯á¶á
á¶áá°á¡áá
áºááẠáá¬á
áá¬áá¶á០á¡ááŒá±á¬ááºážá¡áá¬á¡á¬ážáá¯á¶ážááᯠáááá¹áá°áá°ážáá±á¬á¡áá«á áááºážááẠáá¬á
áá¬ááŸáá·áº ááá¯ááºáá»á±á¬áá®ááœá±áááŒá
áºááá¯ááºáá«á á¡ááŒá±á¬ááºážá¡áá¬ááᯠáá°ážáá°ááŒááºážááŸá¬ áá
áºáááºááŒá¬ áá¯ááºáá±á¬ááºáá²á·áá±á¬áºáááºáž ááááºááŸáá·áº áááœá±á·áááá«á áá±á¬ááºáá¯á¶ážáá±á¬á· ááŒá¿áá¬ááᯠááŒá±ááŸááºážááá¯á· áá°áá®áá±ážáá²á·áááºá pg_dump
. ဠalgorithm á áá»áœááºá¯ááºááá¯á· (á¡áááºážáááºááœááºážáá¶áá¬ážáá±á¬) áá¬ážááŸááºážááᯠáá»áœááºá¯ááºáá±á¬áºááŒáá«áááºá
á¡áá¯ááºáá®áá¬ááŸá¬ áááºááẠáá®ážááŒá¬ážáá¯á¶áá°ááœá¬ážááŸá¯á¡áá±á«ááºáá áºáá¯ááŸáá·áº áá»áááºáááºáá¬ážáá±á¬ ááááºá áœááºážá á¬áááºážááœááºážááŸá¯ááᯠááŒá¯áá¯ááºááá¯ááºááŒá®ážá ááá¯á·áá±á¬áẠááœá±áá±ážááœá±áá°áá¶áá«ááºááᯠááŒá¯ááŒááºááá¯ááºáááºá áá¯ááºáá¯ááºáá±áž áá¯ááºáááºážá¡ááœáẠáá¯á¶áá°áá»á¬áž áááŸáááá¯ááºáááºá áá¯á¶áá°ááẠáá áºááááºáááºáž á¡ááŸáá¯ááºáá¯á¶áá áºáᯠáááºáá®ážáááºááŸáá·áº áá¬á áá¬áá¶á០á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáááºáááºáááŸáááẠáá°áá®áá±ážáá±á¬ááŒá±á¬áá·áº áááºážááẠá¡áá±ážááŒá®ážáá«áááºá
ááœáŸá±á·ááŒá±á¬ááºážááŒááºáž áá¯ááºáááºážá ááºááᯠáá±á¬áºááŒááá·áº áá±á¬ááºáááºááœá² ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááẠá¡á±á¬ááºáá« áááºáá¶áá±á¬ááºááœááºáá±ážááá·áº ááŸááºáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«áááº-
- áá¬á áᬠ- á¡áááºážá¡ááŒá áºáá¬áá¬;
- áá¯á¶áá° á áá ááááááá - áá¯ááºáá¯ááºááŸá¯áá±á¬ááºážááœáẠáá¯á¶áá°ááœáŸáá·áºááŒááºáž;
- áá¯á¶áá° á áá ááááááá - áá¯áá¹áááá¯á¶áá°áá¯á¶á á¶á¡áá áºá
ááœáŸá±á·ááŒá±á¬ááºážááŒááºážá¡á á®á¡á ááº
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. áá¯á¶áá°ááœá¬ážááŒááºážááᯠááááºááŒá®ážáá±á¬ááºá ááá·áºááœá¬ážáá»á¬ážááᯠááŒááºááẠááá¯á¡ááºáááºá á€áááºááᯠáá±á¬ááºážá
áœá¬ áá±á¬áºááŒáá¬ážáá«áááºá
á€á¡á á®á¡á á¥áºááŒá±á¬áá·áº ááœáŸá±á·ááá¯ááºážááŸá¯ááŸá¬ á¡áááºážáááºááŸá±á¬áá·áºááŸá±ážááŸá¯ááŒáá·áº ááŒá áºááœá¬ážáá²á·áááºá
áá±á¬ááºáá»ááº
Kubernetes á¡á±á¬áºááá±áá¬áá»á¬ážááẠááá·áºá¡á¬áž K8s á¡áááºážá¡ááŒá áºáá»á¬ážáááºáá®ážááŒááºážááá¯á· áá»áŸá±á¬á·áá»ááŒááºážááŒáá·áº á¡áá»áá¯ážáá»áá¯ážáá±á¬áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠááá¯ážááŸááºážá á±áááºááœáá·áºááŒá¯áááºá ááá¯á·áá±á¬áº áááºážááá¯á·áá¡áá°á¡áá®ááŒáá·áº áá°ážáá°ážááŒá¬ážááŒá¬áž automation ááᯠá¡á±á¬ááºááŒááºááŒá®ážáá«á áááºážááẠááá»áŸá±á¬áºááá·áºáá¬ážáá±á¬ ááœá²ááŒá¬ážááŸá¯áá»á¬ážáá»á¬ážá áœá¬ááᯠáá°áá±á¬ááºáá¬áá±ážááá¯ááºááŒá±á¬ááºáž ááááááá·áºáááºá ááá¯á·ááŒá±á¬áá·áº áááºáá¡á±á¬áºááá±áá¬áá»á¬ážááᯠááá¬ááŸáá áœá¬ ááœá±ážáá»ááºáá«á
PostgreSQL á¡ááœáẠáá±áááºážá¡á á¬ážáá¯á¶áž Kubernetes á¡á±á¬áºááá±áᬠáá¯á¶ážáá¯ááᯠááá·áºááœááºážá ááºážá á¬ážááŒá®áž Zalando á០ááá±á¬áá»ááºááᯠááœá±ážáá»ááºáá²á·áááºá á¡áá»áá¯á·áá±á¬á¡áááºá¡áá²áá»á¬ážááᯠáá»áœááºá¯ááºááá¯á·áá»á±á¬áºááŒááºáá²á·ááá±á¬áºáááºáž ááááºááẠá¡ááŸááºááááºááẠáá»á±áááºá áá¬ááŒá áºáááŒáá·áº á€á¡ááœá±á·á¡ááŒá¯á¶ááᯠá¡ááŒá¬ážáá±á¬ PgSQL ááá·áºááœááºážááŸá¯á¡áá»áá¯á·ááœáẠáá»á²á·ááœááºááẠá á®á ááºáá¬ážáá«áááºá á¡áá¬ážáá°ááŒá±ááŸááºážáááºážáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá¡ááœá±á·á¡ááŒá¯á¶ááŸááá«áá á¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠááŸááºáá»ááºáá»á¬ážááœááºááœá±á·ááŒááºáááá·áºá¡ááœáẠáááºážááŒá±á¬ááºáááá«áááºá
PS
áá»áœááºá¯ááºááá¯á·áááá±á¬á·ááºááœááºáááºážáááºáá«
- «
áá±áá¬áá±á·á áºáá»á¬ážááŸáá·áº Kubernetes (ááŒááºáááºáá¯á¶ážáááºááŒááºážááŸáá·áº áá®áá®ááá¯á¡á á®áááºáá¶á á¬) "; - «
Postgres á¡ááºá¹áá«áá±á· #5- PostgreSQL ááŸáá·áº Kubernetesá CI/CD á¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŸá¯ "; - «
K8s ááŸá Redis á¡á±á¬áºááá±áá¬ááŸáá·áº áá¬ááºáááºážáá áºáá¯ááºááŸáá·áº á€áá±áá¬áá±á·á áºá០áá±áá¬áá»á¬ážááᯠááœá²ááŒááºážá áááºááŒá¬ááŒááºážá¡ááœáẠá¡áá¯á¶ážáááºááŸá¯á¡áá±ážá á¬áž áá¯á¶ážáááºáá»áẠ"á
source: www.habr.com