рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд╕рд╛рде, рд╣рдо рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдЦреБрдж рдХреЛ (рдСрдкрд░реЗрд╢рди) рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдЬреЛ рдХрд┐ рд╣рд░ рджрд┐рди рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рд╣реЛрддреЗ рд╣реИрдВред рдЙрди рд╕рднреА рдХреЛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рд╕реЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрднрд╡ рд╕реЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рдордп рдХреЗ рд╕рд╛рде рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЖрджрд░реНрд╢ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ - рдЙрдиреНрд╣реЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рд░рд┐рдХреНрддрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЭреЗрдВред
рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рддреНрд╡рд░рд┐рдд рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП MySQL рдФрд░ PostgreSQL рдЬреИрд╕реЗ рдмрдбрд╝реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрдВрдк рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ "рдЯреНрд░рд┐рдХ" рд╕реЗ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ - рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ред рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рд╣рдорд╛рд░рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдФрд░ рд╕реАрдЖрдИ / рд╕реАрдбреА рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯрд▓реИрдм (рдФрд░
рдбреИрдк ) рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!

рд╕реБрд╡рд┐рдзрд╛ рд╢рд╛рдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдореБрдЦреНрдп рджрд░реНрдж рдмрдбрд╝реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЙрддреНрдкрд╛рджрди рд╕реЗ рдкреВрд░реНрдг (рдпрд╛ рд▓рдЧрднрдЧ рдкреВрд░реНрдг) рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг / рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
- 1 рдЯреАрдмреА рдФрд░ 10 рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП MySQL рдореЗрдВ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬреЛ рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
- рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░реАрдХреНрд╖рдг рд▓реВрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдФрд░ / рдпрд╛ рдбреЗрдореЛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реВрдкреНрд╕ред
- рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╕рдВрдд рд╕рдордп рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдЙрддреНрдкрд╛рджрди рдЖрдзрд╛рд░ рдХреЗ рдирд╛рдЗрдЯ рдбрдВрдк рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдХреНрд▓рд╛рдЗрдВрдЯ рдпрд╛ рдмрдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
- рдЕрдВрдд рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рд╕реЗ рдХрдо 150 рдЬреАрдмреА рддрдХ рдХрдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ - рдЗрддрдирд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рдмрдЪрд╛рдПрдВред рдпрд╛рдиреА рд╣рдореЗрдВ рдЕрднреА рднреА рдХрд┐рд╕реА рддрд░рд╣ рдбрдВрдк рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдиреЛрдЯ : рдЖрдорддреМрд░ рдкрд░ рд╣рдо рдкреЗрд░рдХреЛрдирд╛ рд╕реЗ рдЗрдиреЛрдмреИрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ MySQL рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рд╕рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ ... - рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╡рд╣ рд╕рдм рдХреБрдЫ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдРрд╕рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕реЗ рд▓реЗрдЦ рдореЗрдВ рдЖрдЧреЗ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдмреИрдХрдЕрдк рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВредрддреЛ, рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмреИрдХрдЕрдк рд╣реИред рдЖрдЧреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?
рдЪрд░рдг 1: рдбрдВрдк рд╕реЗ рдПрдХ рдирдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рддреИрдпрд╛рд░ рдХрд░рдирд╛
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдореЗрдВ рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рджреЛ рдЗрдирд┐рдЯ рдХрдВрдЯреЗрдирд░
(рдпрд╛рдиреА, рдРрд╕реЗ рд╡рд┐рд╢реЗрд╖ рдХрдВрдЯреЗрдирд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЪреВрд▓реНрд╣реЗ
рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдкреВрд░реНрд╡-рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ) рдФрд░ рдПрдХ рдЪреВрд▓реНрд╣рд╛ред
рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХрд╣рд╛рдВ рд░рдЦреЗрдВ? рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрдбрд╝рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ (1 рдЯреАрдмреА) рд╣реИ рдФрд░ рд╣рдо рдЗрд╕рдХреЗ рджрд╕ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЙрдард╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рд╣рдореЗрдВ рдПрдХ рдмрдбрд╝реА рдбрд┐рд╕реНрдХ (10% рдЯреАрдмреА) рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдСрд░реНрдбрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдиреЛрдб рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖
рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ
dedicated: non-prod-db
ред рдЙрд╕реА рд╕рдордп, рд╣рдо рдирд╛рдорд╛рдВрдХрд┐рдд
рдЯреЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд╣реЗрдВрдЧреЗ рдХрд┐ рдХреЗрд╡рд▓ рдРрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреЛ рдХрд┐ рдкреНрд░рддрд┐рд░реЛрдзреА (
рд╕рд╣рдирд╢реАрд▓рддрд╛ ) рд╣реИрдВ, рдЗрд╕ рдиреЛрдб рдореЗрдВ рд░реЛрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рднрд╛рд╖рд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реБрдП,
dedicated Equal non-prod-db
рдбреАрдПрд▓рдмреА
dedicated Equal non-prod-db
ред
nodeSelector
рдФрд░
tolerations
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП
tolerations
рд╡рд╛рдВрдЫрд┐рдд рдиреЛрдб (рдПрдХ рдмрдбрд╝реА рдбрд┐рд╕реНрдХ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд┐рдд) рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ:
nodeSelector: dedicated: non-prod-db tolerations: - key: "dedicated" operator: "Equal" value: "non-prod-db" effect: "NoExecute"
... рдФрд░ рдЗрд╕ рдиреЛрдб рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╡рд┐рд╡рд░рдг рд▓реЗрдВред
Init рдХрдВрдЯреЗрдирд░: get-bindump
рдкрд╣рд▓рд╛
get-bindump
рдХрдВрдЯреЗрдирд░ рдЬрд┐рд╕реЗ рд╣рдо
get-bindump
ред рдпрд╣
emptyDir
(
/var/lib/mysql
in
/var/lib/mysql
) рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдмреИрдХрдЕрдк рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛рдмреЗрд╕ рдбрдВрдк рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП: SSH рдХреБрдВрдЬрд┐рдпрд╛рдБ, рдмреИрдХрдЕрдк рд╕рд░реНрд╡рд░ рдкрддреЗред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕ рдЪрд░рдг рдореЗрдВ рд▓рдЧрднрдЧ 2 рдШрдВрдЯреЗ рд▓рдЧрддреЗ рд╣реИрдВред
рддреИрдирд╛рддреА рдореЗрдВ рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдХрд╛ рд╡рд┐рд╡рд░рдг рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
- name: get-bindump image: db-dumps imagePullPolicy: Always command: [ "/bin/sh", "-c", "/get_bindump.sh" ] resources: limits: memory: "5000Mi" cpu: "1" requests: memory: "5000Mi" cpu: "1" volumeMounts: - name: dump mountPath: /dump - name: mysqlbindir mountPath: /var/lib/mysql - name: id-rsa mountPath: /root/.ssh
рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд
get_bindump.sh
рд╕реНрдХреНрд░рд┐рдкреНрдЯ:
рдЗрдирд┐рдЯ рдХрдВрдЯреЗрдирд░: рд░реЗрдбреА-рдмрд┐рдВрджрдВрдк
рдмреИрдХрдЕрдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рджреВрд╕рд░рд╛
prepare-bindump
рдХрдВрдЯреЗрдирд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ -
prepare-bindump
ред рдпрд╣
innobackupex --apply-log
рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЪреВрдВрдХрд┐ рдлрд╛рдЗрд▓реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
/var/lib/mysql
-
get-bindump
рд╕реЗ
emptyDir
рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж) рдФрд░ MySQL рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
рдпрд╣ рдЗрд╕ init рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╣реИ рдХрд┐ рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдЪрдпрдирд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рд╣рдо рдЙрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдиреБрдореЗрдп рд╣реИ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЕрдВрджрд░ рдПрдХреНрд╕реЗрд╕ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рдЖрджрд┐ред рддрдм рд╣рдо MySQL рд╕рд░реНрд╡рд░ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдмрд╕ рдПрдХ рдЯрд╛рд░рдЧреЗрдЬ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдкреВрд░реНрдг
/var/lib/mysql
рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рдбрдВрдк 100 рдЬреАрдмреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореВрд▓ 1 рдЯреАрдмреА рд╕реЗ рдЫреЛрдЯреЗ рдкрд░рд┐рдорд╛рдг рдХрд╛ рдПрдХ рдЖрджреЗрд╢ рд╣реИред рдЗрд╕ рдЪрд░рдг рдореЗрдВ рд▓рдЧрднрдЧ 5 рдШрдВрдЯреЗ рд▓рдЧрддреЗ рд╣реИрдВред
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдореЗрдВ рджреВрд╕рд░реЗ рдЗрдирд┐рдЯ рдХрдВрдЯреЗрдирд░ рдХрд╛ рд╡рд┐рд╡рд░рдг:
- name: prepare-bindump image: db-dumps imagePullPolicy: Always command: [ "/bin/sh", "-c", "/prepare_bindump.sh" ] resources: limits: memory: "5000Mi" cpu: "1" requests: memory: "5000Mi" cpu: "1" volumeMounts: - name: dump mountPath: /dump - name: mysqlbindir mountPath: /var/lib/mysql - name: debian-cnf mountPath: /etc/mysql/debian.cnf subPath: debian.cnf
prepare_bindump.sh
рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓рд┐рдкрд┐ рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
рдиреАрдЪреЗ
рдЕрдВрддрд┐рдо рд░рд╛рдЧ рдореБрдЦреНрдп рдЪреВрд▓реНрд╣рд╛ рдХрд╛ рдкреНрд░рдХреНрд╖реЗрдкрдг рд╣реИ, рдЬреЛ рдЗрдирд┐рдЯ рдХрдВрдЯреЗрдирд░ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж рд╣реЛрддрд╛ рд╣реИред рдлрд▓реА рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд░рд▓
emtpyDir
, рдФрд░
emtpyDir
рдорд╛рдзреНрдпрдо рд╕реЗ 100 рдЬреАрдмреА рдХрд╛
emtpyDir
рд╕рдВрдкреАрдбрд╝рд┐рдд рдФрд░ рдлрд╕рд▓реА рдбрдВрдк
emtpyDir
ред рдЗрд╕ рдирдЧреНрдиреЗрдХреНрд╕ рдХрд╛ рдХрд╛рд░реНрдп рдЗрд╕ рдбрдВрдк рдХреЛ рджреЗрдирд╛ рд╣реИред
рдЪреВрд▓реНрд╣рд╛ рд╡рд┐рдиреНрдпрд╛рд╕:
- name: nginx image: nginx:alpine resources: requests: memory: "1500Mi" cpu: "400m" lifecycle: preStop: exec: command: ["/usr/sbin/nginx", "-s", "quit"] livenessProbe: httpGet: path: /healthz port: 80 scheme: HTTP timeoutSeconds: 7 failureThreshold: 5 volumeMounts: - name: dump mountPath: /usr/share/nginx/html - name: nginx-config mountPath: /etc/nginx/nginx.conf subPath: nginx.conf readOnly: false volumes: - name: dump emptyDir: {} - name: mysqlbindir emptyDir: {}
рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рддреИрдирд╛рддреА рдЕрдкрдиреЗ initContainers рдХреЗ рд╕рд╛рде рджрд┐рдЦрддрд╛ рд╣реИ ... --- apiVersion: apps/v1beta1 kind: Deployment metadata: name: db-dumps spec: strategy: rollingUpdate: maxUnavailable: 0 revisionHistoryLimit: 2 template: metadata: labels: app: db-dumps spec: imagePullSecrets: - name: regsecret nodeSelector: dedicated: non-prod-db tolerations: - key: "dedicated" operator: "Equal" value: "non-prod-db" effect: "NoExecute" initContainers: - name: get-bindump image: db-dumps imagePullPolicy: Always command: [ "/bin/sh", "-c", "/get_bindump.sh" ] resources: limits: memory: "5000Mi" cpu: "1" requests: memory: "5000Mi" cpu: "1" volumeMounts: - name: dump mountPath: /dump - name: mysqlbindir mountPath: /var/lib/mysql - name: id-rsa mountPath: /root/.ssh - name: prepare-bindump image: db-dumps imagePullPolicy: Always command: [ "/bin/sh", "-c", "/prepare_bindump.sh" ] resources: limits: memory: "5000Mi" cpu: "1" requests: memory: "5000Mi" cpu: "1" volumeMounts: - name: dump mountPath: /dump - name: mysqlbindir mountPath: /var/lib/mysql - name: log mountPath: /var/log/mysql - name: debian-cnf mountPath: /etc/mysql/debian.cnf subPath: debian.cnf containers: - name: nginx image: nginx:alpine resources: requests: memory: "1500Mi" cpu: "400m" lifecycle: preStop: exec: command: ["/usr/sbin/nginx", "-s", "quit"] livenessProbe: httpGet: path: /healthz port: 80 scheme: HTTP timeoutSeconds: 7 failureThreshold: 5 volumeMounts: - name: dump mountPath: /usr/share/nginx/html - name: nginx-config mountPath: /etc/nginx/nginx.conf subPath: nginx.conf readOnly: false volumes: - name: dump emptyDir: {} - name: mysqlbindir emptyDir: {} - name: log emptyDir: {} - name: id-rsa secret: defaultMode: 0600 secretName: somedb-id-rsa - name: nginx-config configMap: name: somedb-nginx-config - name: debian-cnf configMap: name: somedb-debian-cnf --- apiVersion: v1 kind: Service metadata: name: somedb-db-dump spec: clusterIP: None selector: app: db-dumps ports: - name: http port: 80
рдЕрддрд┐рд░рд┐рдХреНрдд рдиреЛрдЯ:
- рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо GitLab рдореЗрдВ рдЕрдиреБрд╕реВрдЪрд┐рдд рдиреМрдХрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд░ рд░рд╛рдд рдПрдХ рдирдпрд╛ рдбрдВрдк рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдпрд╛рдиреА рд╣рд░ рд░рд╛рдд, рдпрд╣ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд░реЛрд▓ рдЖрдЙрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рддрд╛рдЬрд╝рд╛ рдбрдВрдк рдЦреАрдВрдЪрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдбреЗрд╡рд▓рдкрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред
- рдХреНрдпреЛрдВ рд╣рдо рдорд╛рддреНрд░рд╛
/dump
рдХреЛ init рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдлреЗрдВрдХ рд░рд╣реЗ рд╣реИрдВ (рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ /dump/version.txt
рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА /dump/version.txt
)? рдпрд╣ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕рд░реНрд╡рд░ рдЬрд┐рд╕ рдХреЗ рддрд╣рдд рдЪрд▓рддрд╛ рд╣реИ рдЙрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдЗрд╕ рдЬрд╛рдВрдЪ рдХреЗ рдмрд┐рдирд╛, рдбрдВрдк рдлрд┐рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред рдпрджрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдПрдХ рдмрд╛рд░ рдПрдХ рдбрдВрдк рддреИрдпрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рдЕрдЧрд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ (рд╕рд░реНрд╡рд░ рд░рд┐рдмреВрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ), /dump/version.txt
рдлреНрд▓реИрдЧ /dump/version.txt
рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧреАред db-dumps
рдХреНрдпрд╛ рд╣реИ? рд╣рдо рдЗрд╕реЗ рдбреИрдк рдХреЗ рд╕рд╛рде рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ Dappfile
рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
dimg: "db-dumps" from: "ubuntu:16.04" docker: ENV: TERM: xterm ansible: beforeInstall: - name: "Install percona repositories" apt: deb: https://repo.percona.com/apt/percona-release_0.1-4.xenial_all.deb - name: "Add repository for borgbackup" apt_repository: repo="ppa:costamagnagianfranco/borgbackup" codename="xenial" update_cache=yes - name: "Add repository for mysql 5.6" apt_repository: repo: deb http://archive.ubuntu.com/ubuntu trusty universe state: present update_cache: yes - name: "Install packages" apt: name: "{{`{{ item }}`}}" state: present with_items: - openssh-client - mysql-server-5.6 - mysql-client-5.6 - borgbackup - percona-xtrabackup-24 setup: - name: "Add get_bindump.sh" copy: content: | {{ .Files.Get ".dappfiles/get_bindump.sh" | indent 8 }} dest: /get_bindump.sh mode: 0755 - name: "Add prepare_bindump.sh" copy: content: | {{ .Files.Get ".dappfiles/prepare_bindump.sh" | indent 8 }} dest: /prepare_bindump.sh mode: 0755
рдЪрд░рдг 2: рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдбреЗрд╡рд▓рдкрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛
рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рддреЗ рд╕рдордп, рдЗрд╕рдореЗрдВ GitLab рдХрд╛ рдПрдХ рдмрдЯрди рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐
RollingUpdate.maxUnavailable: 0
рд░рдгрдиреАрддрд┐ рдХреЗ рд╕рд╛рде MySQL рдХреЗ рд╕рд╛рде
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд╛ рдкреБрди: рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ
RollingUpdate.maxUnavailable: 0
:

рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?GitLab рдореЗрдВ, рдЬрдм рдЖрдк
рдкреБрдирдГ рд▓реЛрдб db рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреЗ рд╕рд╛рде
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ:
spec: strategy: rollingUpdate: maxUnavailable: 0
рдпрд╛рдиреА рд╣рдо Kubernetes рдХреЛ
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ (рдПрдХ рдирдпрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ) рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд▓рд╛рдЗрд╡ рд╣реИред рдЬрдм рд╕реЗ рдПрдХ рдирдпрд╛ рдЪреВрд▓реНрд╣рд╛ рдмрдирд╛рддреЗ рд╕рдордп рдЙрд╕рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЗрдирд┐рдЯ рдХрдВрдЯреЗрдирд░ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдирдпрд╛
рд░рдирд┐рдВрдЧ рд╕реНрдЯреЗрдЯрд╕ рдореЗрдВ
рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреБрд░рд╛рдирд╛ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд╣реИред рдФрд░ рдХреЗрд╡рд▓ рдЙрд╕ рд╕рдордп рдЬрдм MySQL рдЦреБрдж рд╢реБрд░реВ рд╣реБрдЖ (рдФрд░ рддрддреНрдкрд░рддрд╛ рдЬрд╛рдВрдЪ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛), рдЯреНрд░реИрдлрд╝рд┐рдХ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреБрд░рд╛рдирд╛ (рдкреБрд░рд╛рдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде) рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдЪреБрдирд╛ рд╣реБрдЖ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣рдореЗрдВ рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдПрдХ рдирдпрд╛ рдбрдВрдк рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдирдЬрд╝рд┐рдк рдФрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдкреБрд░рд╛рдиреЗ рдХреЛ MySQL рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рд╣рдо рдПрдХ рдирдпрд╛ рдбрдВрдк рддреИрдпрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдЪреБрдкрдЪрд╛рдк рдкреБрд░рд╛рдиреЗ рдЖрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЗрд╕
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ init рдХрдВрдЯреЗрдирд░ рдирд┐рдореНрди рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
curl "$DUMP_URL" | tar -C /var/lib/mysql/ -xvz
рдпрд╛рдиреА рд╣рдо рдЪрд░рдг 1 рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдбрдВрдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ
/var/lib/mysql
рдЕрдирдЬрд╝рд┐рдк рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ MySQL рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдм рд▓рдЧрднрдЧ 2 рдШрдВрдЯреЗ рд▓рдЧрддреЗ рд╣реИрдВред
рдФрд░ рддреИрдирд╛рддреА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ ... apiVersion: apps/v1beta1 kind: Deployment metadata: name: mysql spec: strategy: rollingUpdate: maxUnavailable: 0 template: metadata: labels: service: mysql spec: imagePullSecrets: - name: regsecret nodeSelector: dedicated: non-prod-db tolerations: - key: "dedicated" operator: "Equal" value: "non-prod-db" effect: "NoExecute" initContainers: - name: getdump image: mysql-with-getdump command: ["/usr/local/bin/getdump.sh"] resources: limits: memory: "6000Mi" cpu: "1.5" requests: memory: "6000Mi" cpu: "1.5" volumeMounts: - mountPath: /var/lib/mysql name: datadir - mountPath: /etc/mysql/debian.cnf name: debian-cnf subPath: debian.cnf env: - name: DUMP_URL value: "http://somedb-db-dump.infra-db.svc.cluster.local/mysql_bindump.tar.gz" containers: - name: mysql image: mysql:5.6 resources: limits: memory: "1024Mi" cpu: "1" requests: memory: "1024Mi" cpu: "1" lifecycle: preStop: exec: command: ["/etc/init.d/mysql", "stop"] ports: - containerPort: 3306 name: mysql protocol: TCP volumeMounts: - mountPath: /var/lib/mysql name: datadir - mountPath: /etc/mysql/debian.cnf name: debian-cnf subPath: debian.cnf env: - name: MYSQL_ROOT_PASSWORD value: "password" volumes: - name: datadir emptyDir: {} - name: debian-cnf configMap: name: somedb-debian-cnf --- apiVersion: v1 kind: Service metadata: name: mysql spec: clusterIP: None selector: service: mysql ports: - name: mysql port: 3306 protocol: TCP --- apiVersion: v1 kind: ConfigMap metadata: name: somedb-debian-cnf data: debian.cnf: | [client] host = localhost user = debian-sys-maint password = password socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = password socket = /var/run/mysqld/mysqld.sock
рдкрд░рд┐рдгрд╛рдо
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╣реЛрддрд╛ рд╣реИ , рдЬреЛ рд╣рд░ рд░рд╛рдд рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:
- рдПрдХ рдирдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрдВрдк рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
- рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ рдЗрд╕реЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдЯреЗрдмрд▓реЛрдВ рдХреЛ рдЯреНрд░реИрдВрдХреНрд╡рд┐рдЯрд┐рдЯ рдХрд░рддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ, рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдЖрджрд┐);
- рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕реАрдЖрдИ рдореЗрдВ рдПрдХ рдмрдЯрди рджрдмрд╛рдХрд░ рддреИрдирд╛рддреА рдореЗрдВ рдЕрдкрдиреЗ рдирд╛рдо рд╕реНрдерд╛рди рдкрд░ рдРрд╕реЗ рддреИрдпрд╛рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд░реЛрд▓-рдЕрдк рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ - рдЗрд╕рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдбреЗрдЯрд╛рдмреЗрд╕
mysql
рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдЬрд╛рдВрдЪ рдХреА, рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗ рдбрдВрдк рдмрдирд╛рдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 6 рдШрдВрдЯреЗ рд▓рдЧрддреЗ рд╣реИрдВ, рдПрдХ "рдмреЗрд╕ рдЗрдореЗрдЬ" рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ 7 рдШрдВрдЯреЗ рд▓рдЧрддреЗ рд╣реИрдВ, рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ 2 рдШрдВрдЯреЗ рд▓рдЧрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдкрд╣рд▓реЗ рджреЛ рдХрд╛рд░реНрдп "рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ" рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрджреГрд╢реНрдп рд╣реЛрддреЗ рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реЗ
рдЙрд╕реА 2 рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ (1 рдЯреАрдмреА рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде)
рдХреЗ рдЙрддреНрдкрд╛рджрди рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдпреЛрдЬрдирд╛ рдФрд░ рдЗрд╕рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ, рдЖрд▓реЛрдЪрдирд╛рдУрдВ рдФрд░ рд╕реБрдзрд╛рд░реЛрдВ рдХрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!
PS, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ VMware рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд░реНрдЪреБрдЕрд▓ рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛рдиреЗ рдФрд░ рд╕реНрдиреИрдкрд╢реЙрдЯ рд╕реЗ рдПрдХ рдирдпрд╛ рд╡рд╛рдпрд░рд╕рдХрд╛рд▓реНрдХрд╛ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ (рдЬреЛ рдХрд┐ рдФрд░ рднреА рддреЗрдЬ рд╣реИ), рд▓реЗрдХрд┐рди рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ рдЖрдзрд╛рд░ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рд╡рд╣реА рд╣реЛрдЧрд╛ред рд╕рдордп ... рдЗрд╕ рддрдереНрдп рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдирд╛ рдХрд┐ рд╕рднреА рдХреЗ рдкрд╛рд╕ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдпрд╛ рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред
рдкреА рдкреА рдПрд╕
K8s рдЯрд┐рдкреНрд╕ рдПрдВрдб рдЯреНрд░рд┐рдХреНрд╕ рдЪрдХреНрд░ рд╕реЗ рдЕрдиреНрдп:
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ: