рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░реНрд╕рдордзреНрдпреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдХрд╕реЗ рдЬреЛрдбрд╛рдпрдЪреЗ

рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░реНрд╕рдордзреНрдпреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдХрд╕реЗ рдЬреЛрдбрд╛рдпрдЪреЗ
рдЖрдордЪреНрдпрд╛ Kubernetes Quick Start рдпрд╛ рдорд╛рд▓рд┐рдХреЗрдд рдЖрдкрд▓реЗ рд╕реНрд╡рд╛рдЧрдд рдЖрд╣реЗ. рд╣рд╛ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕реНрддрдВрдн рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдСрдирд▓рд╛рдЗрди рдЖрдгрд┐ рдЖрдордЪреНрдпрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдгрд╛рдВрдордзреНрдпреЗ рд╕рд░реНрд╡рд╛рдд рдордиреЛрд░рдВрдЬрдХ рдкреНрд░рд╢реНрди рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛рдд. Kubernetes рддрдЬреНрдЮ рдЙрддреНрддрд░реЗ.

рдЖрдЬрдЪреЗ рддрдЬреНрдЮ рдбреЕрдирд┐рдпрд▓ рдкреЛрд▓реЗрдиреНрдЪрд┐рдХ (рдбреЕрдирд┐рдпрд▓ рдкреЛрд▓реЗрдиреНрд╕рд┐рдХ). рдбреЕрдирд┐рдпрд▓ рдпреЗрдереЗ рдЗрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЖрдгрд┐ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдбреЗрд╡реНрд╣рд▓рдкрд░ рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░рддреЛ Learn8s.

рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рдЪреЗ рдЙрддреНрддрд░ рдкреБрдвреАрд▓ рдкреЛрд╕реНрдЯрдордзреНрдпреЗ рд╣рд╡реЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рдИрдореЗрд▓рджреНрд╡рд╛рд░реЗ рдЖрдордЪреНрдпрд╛рд╢реА рд╕рдВрдкрд░реНрдХ рд╕рд╛рдзрд╛ рдХрд┐рдВрд╡рд╛ Twitter: @learnk8s.

рдорд╛рдЧреАрд▓ рдкреЛрд╕реНрдЯреНрд╕ рдЪреБрдХрд▓реНрдпрд╛? рддреНрдпрд╛рдВрдирд╛ рдпреЗрдереЗ рд╢реЛрдзрд╛.

рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░рдордзреНрдпреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдХрд╕реЗ рдЬреЛрдбрд╛рдпрдЪреЗ?

рдереЛрдбрдХреНрдпрд╛рдд: Kubefed v2 рд▓рд╡рдХрд░рдЪ рдпреЗрдд рдЖрд╣реЗ, рдЖрдгрд┐ рдореА рдпрд╛рдмрджреНрджрд▓ рд╡рд╛рдЪрдгреНрдпрд╛рдЪреА рджреЗрдЦреАрд▓ рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ рд╢рд┐рдкрд╛рдИ ╨╕ рдорд▓реНрдЯреА-рдХреНрд▓рд╕реНрдЯрд░-рд╢реЗрдбреНрдпреБрд▓рд░ рдкреНрд░рдХрд▓реНрдк.

рдмрд░реНтАНрдпрд╛рдЪрджрд╛, рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдЪреА рдкреНрд░рддрд┐рдХреГрддреА рдмрдирд╡рд┐рд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рджреЗрд╢рд╛рдВрдордзреНрдпреЗ, рд╡рд┐рд╢реЗрд╖рддрдГ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ.

рдПрдХ рдХреНрд╖реЗрддреНрд░ рдЕрдиреБрдкрд▓рдмреНрдз рдЕрд╕рд▓реНрдпрд╛рд╕, рд╡реНрдпрддреНрдпрдп рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рд░рд╣рджрд╛рд░реА рджреБрд╕рд░реНтАНрдпрд╛рдХрдбреЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ.

Kubernetes рд╕рд╣, рддреБрдореНрд╣реА рдПрдХ рд╕рдорд╛рди рд░рдгрдиреАрддреА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рд╡рд┐рд╡рд┐рдз рдХреНрд╖реЗрддреНрд░рд╛рдВрдордзреНрдпреЗ рд╡рд░реНрдХрд▓реЛрдб рд╡рд┐рддрд░рд┐рдд рдХрд░реВ рд╢рдХрддрд╛.

рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдкреНрд░рддрд┐ рд╕рдВрдШ, рдкреНрд░рджреЗрд╢, рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд┐рдВрд╡рд╛ рдпрд╛ рдШрдЯрдХрд╛рдВрдЪреЗ рд╕рдВрдпреЛрдЬрди рдПрдХ рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░ рдЕрд╕реВ рд╢рдХрддрд╛рдд.

рддреБрдордЪреЗ рдХреНрд▓рд╕реНрдЯрд░ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдврдЧрд╛рдВрдордзреНрдпреЗ рдЖрдгрд┐ рдСрди-рдкреНрд░рд┐рдорд╛рдЗрд╕реЗрд╕рдордзреНрдпреЗ рд╣реЛрд╕реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд.

рдкрдг рдЕрд╢рд╛ рднреМрдЧреЛрд▓рд┐рдХ рдкреНрд░рд╕рд╛рд░рд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдЪреЗ рдирд┐рдпреЛрдЬрди рдХрд╕реЗ рдХрд░рд╛рд▓?
рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛рдЪ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░ рдЕрдиреЗрдХ рдХреНрд▓рд╛рдЙрдб рд╡рд╛рддрд╛рд╡рд░рдгрд╛рд╕рд╛рдареА рдПрдХ рдореЛрдард╛ рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ рдХрд╛?
рдХрд┐рдВрд╡рд╛ рдЕрдиреЗрдХ рд▓рд╣рд╛рди рдХреНрд▓рд╕реНрдЯрд░ рдЖрд╣реЗрдд рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдЖрдгрд┐ рд╕рдордХреНрд░рдорд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдорд╛рд░реНрдЧ рд╢реЛрдзрд╛?

рдПрдХ рдиреЗрддреГрддреНрд╡ рдХреНрд▓рд╕реНрдЯрд░

рдПрдХрд╛ рдиреЗрдЯрд╡рд░реНрдХрд╡рд░ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЗрддрдХреЗ рд╕реЛрдкреЗ рдирд╛рд╣реА.

рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ рдХреА рддреБрдордЪрд╛ рдЕрдкрдШрд╛рдд рдЭрд╛рд▓рд╛ рдЖрд╣реЗ, рдХреНрд▓рд╕реНрдЯрд░ рд╡рд┐рднрд╛рдЧрд╛рдВрдордзреАрд▓ рд╕рдВрдкрд░реНрдХ рддреБрдЯрд▓рд╛ рдЖрд╣реЗ.

рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рдорд╛рд╕реНрдЯрд░ рд╕рд░реНрд╡реНрд╣рд░ рдЕрд╕рд▓реНрдпрд╛рд╕, рдЕрд░реНрдзреНрдпрд╛ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдирд╛ рдирд╡реАрди рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рдпреЗрдгрд╛рд░ рдирд╛рд╣реАрдд рдХрд╛рд░рдг рддреЗ рдорд╛рд╕реНрдЯрд░рд╢реА рд╕рдВрдкрд░реНрдХ рд╕рд╛рдзреВ рд╢рдХрдгрд╛рд░ рдирд╛рд╣реАрдд.

рдЖрдгрд┐ рддреНрдпрд╛рдЪ рд╡реЗрд│реА рдЖрдкрд▓реНрдпрд╛рдХрдбреЗ рдЬреБрдиреЗ рд░реВрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓реНрд╕ рдЖрд╣реЗрдд (kube-proxy рдирд╡реАрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА) рдЖрдгрд┐ рдХреЛрдгрддреЗрд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреЙрдб рдирд╛рд╣реАрдд (рдХреБрдмреЗрд▓реЗрдЯ рдЕрджреНрдпрддрдирд╛рдВрдЪреА рд╡рд┐рдирдВрддреА рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА).

рдкреНрд░рдХрд░рдг рдЖрдгрдЦреА рд╡рд╛рдИрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЬрд░ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд▓рд╛ рдиреЛрдб рджрд┐рд╕рдд рдирд╕реЗрд▓, рддрд░ рддреЗ рддреНрдпрд╛рд▓рд╛ рдЕрдирд╛рде рдореНрд╣рдгреВрди рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рдЧрд╣рд╛рд│ рдкреЙрдбреНрд╕ рд╡рд┐рджреНрдпрдорд╛рди рдиреЛрдбреНрд╕рдордзреНрдпреЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ.

рдкрд░рд┐рдгрд╛рдореА, рдЖрдкрд▓реНрдпрд╛рдХрдбреЗ рджреБрдкреНрдкрдЯ рд╢реЗрдВрдЧрд╛ рдЖрд╣реЗрдд.

рддреБрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рджреЗрд╢рд╛рд╕рд╛рдареА рдПрдХ рдорд╛рд╕реНрдЯрд░ рд╕рд░реНрд╡реНрд╣рд░ рдмрдирд╡рд▓реНрдпрд╛рд╕, etcd рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдПрдХрдордд рдЕрд▓реНрдЧреЛрд░рд┐рджрдордордзреНрдпреЗ рд╕рдорд╕реНрдпрд╛ рдЕрд╕рддреАрд▓. (рдЕрдВрджрд╛рдЬреЗ рдПрдб тАФ рдЦрд░рдВ рддрд░, etcd рдбреЗрдЯрд╛рдмреЗрд╕ рдорд╛рд╕реНрдЯрд░ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рд╕реНрдерд┐рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА. рд╣реЗ рддреНрдпрд╛рдЪ рдкреНрд░рджреЗрд╢рд╛рддреАрд▓ рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдЧрдЯрд╛рд╡рд░ рдЪрд╛рд▓рд╡рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдЦрд░реЗ рдЖрд╣реЗ, рддреНрдпрд╛рдЪ рд╡реЗрд│реА рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рдЕрдкрдпрд╢рд╛рдЪрд╛ рдПрдХ рдмрд┐рдВрджреВ рдорд┐рд│рдд рдЖрд╣реЗ. рдкрдг рдкрдЯрдХрди.)

etcd рд╡рд╛рдкрд░рддреЗ рд░рд╛рдлреНрдЯ рдЕрд▓реНрдЧреЛрд░рд┐рджрдордбрд┐рд╕реНрдХрд╡рд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдкреВрд░реНрд╡реА рдореВрд▓реНрдп рдирд┐рдЧреЛрд╢рд┐рдПрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.
рдореНрд╣рдгрдЬреЗрдЪ, рд░рд╛рдЬреНрдп etcd рд▓рд╛ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЖрдзреА рдмрд╣реБрддрд╛рдВрд╢ рдШрдЯрдирд╛рдВрдордзреНрдпреЗ рдПрдХрдордд рд╣реЛрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдЬрд░ etcd рдШрдЯрдирд╛рдВрдордзреАрд▓ рд▓реЗрдЯрдиреНрд╕реА рдирд╛рдЯрдХреАрдпрд░реАрддреНрдпрд╛ рд╡рд╛рдврд▓реА, рдЬрд╕реЗ рдХреА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рджреЗрд╢рд╛рддреАрд▓ рддреАрди etcd рдШрдЯрдирд╛рдВрдкреНрд░рдорд╛рдгреЗрдЪ, рдореВрд▓реНрдп рдирд┐рдЧреЛрд╢рд┐рдПрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдбрд┐рд╕реНрдХрд╡рд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдмрд░рд╛рдЪ рд╡реЗрд│ рд▓рд╛рдЧрддреЛ.
рд╣реЗ Kubernetes рдирд┐рдпрдВрддреНрд░рдХрд╛рдВрдордзреНрдпреЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рд╣реЛрддреЗ.

рдирд┐рдпрдВрддреНрд░рдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХрд╛рд▓рд╛ рдмрджрд▓ рдЬрд╛рдгреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕рд▓рд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдзрд┐рдХ рд╡реЗрд│ рджреНрдпрд╛рд╡рд╛ рд▓рд╛рдЧреЗрд▓.

рдЖрдгрд┐ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдирд╕реВрди рдЕрдиреЗрдХ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЪреЗрди рд░рд┐рдЕреЕрдХреНрд╢рди рдкрд░рд┐рдгрд╛рдо рд╣реЛрддреЛ рдЖрдгрд┐ рд╕рдВрдкреВрд░реНрдг рдХреНрд▓рд╕реНрдЯрд░ рдЦреВрдк рд╣рд│реВ рдХрд╛рдо рдХрд░реВ рд▓рд╛рдЧрддреЛ.

etcd рдЗрддрдХреЗ рд╡рд┐рд▓рдВрдм рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЖрд╣реЗ рдХреА рдЕрдзрд┐рдХреГрдд рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдирд┐рдпрдорд┐рдд рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡реНрд╣рдРрд╡рдЬреА SSDs рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЗ.

рдПрдХрд╛ рдХреНрд▓рд╕реНрдЯрд░рд╕рд╛рдареА рдореЛрдареНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХрдЪреА рд╕рдзреНрдпрд╛ рдЪрд╛рдВрдЧрд▓реА рдЙрджрд╛рд╣рд░рдгреЗ рдирд╛рд╣реАрдд.

рдореБрд│рд╛рдд, рдбреЗрд╡реНрд╣рд▓рдкрд░ рд╕рдореБрджрд╛рдп рдЖрдгрд┐ SIG-рдХреНрд▓рд╕реНрдЯрд░ рдЧрдЯ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрдВрдЯреЗрдирд░реНрд╕рдЪреЗ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯ рдХрд╕реЗ рдХрд░рддрд╛рдд рддреНрдпрд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдЪреЗ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯ рдХрд╕реЗ рдХрд░рд╛рдпрдЪреЗ рд╣реЗ рд╢реЛрдзрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдд рдЖрд╣реЗрдд.

рдкрд░реНрдпрд╛рдп рез: рдХреБрдмреЗрдлреЗрдбрд╕рд╣ рдХреНрд▓рд╕реНрдЯрд░ рдлреЗрдбрд░реЗрд╢рди

SIG-рдХреНрд▓рд╕реНрдЯрд░рдХрдбреВрди рдЕрдзрд┐рдХреГрдд рдкреНрд░рддрд┐рд╕рд╛рдж - kubefed2, рдореВрд│ kube рдлреЗрдбрд░реЗрд╢рди рдХреНрд▓рд╛рдпрдВрдЯ рдЖрдгрд┐ рдСрдкрд░реЗрдЯрд░рдЪреА рдирд╡реАрди рдЖрд╡реГрддреНрддреА.

рдкреНрд░рдердордЪ, рдЖрдореНрд╣реА рдХреБрдмреЗ рдлреЗрдбрд░реЗрд╢рди рдЯреВрд▓ рд╡рд╛рдкрд░реВрди рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдЪрд╛ рд╕рдВрдЧреНрд░рд╣ рдПрдХрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдореНрд╣рдгреВрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛.

рд╕реБрд░реБрд╡рд╛рдд рдЪрд╛рдВрдЧрд▓реА рдЭрд╛рд▓реА, рдкрдг рд╢реЗрд╡рдЯреА рдХреБрдмреЗ рдлреЗрдбрд░реЗрд╢рди рдХрдзреАрд╣реА рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛрдК рд╢рдХрд▓реЗ рдирд╛рд╣реА рдХрд╛рд░рдг рддреНрдпрд╛рд▓рд╛ рд╕рд░реНрд╡ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪрд╛ рдЖрдзрд╛рд░ рдирд╡реНрд╣рддрд╛.

рд╣реЗ рдлреЗрдбрд░реЗрд╢рди рдбрд┐рд▓рд┐рд╡реНрд╣рд░реА рдЖрдгрд┐ рд╕реЗрд╡рд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ, рдкрд░рдВрддреБ рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ рдирд╛рд╣реА, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде.
рддрд╕реЗрдЪ, рдлреЗрдбрд░реЗрд╢рди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рднрд╛рд╖реНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрдгрд┐ рддреЗ рд▓рд╡рдЪрд┐рдХ рдирд╡реНрд╣рддреЗ.

рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ рдХреА рддреБрдореНрд╣реА рдлрдХреНрдд рднрд╛рд╖реНрдпреЗ рд╡рд╛рдкрд░реВрди рдлреЗрдбрд░реЗрд╢рдирдордзреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╕реНрдЯрд░рд╕рд╛рдареА рдкреНрд░рддрд┐рдХреГрддреА рд╡рд┐рднрд╛рдЬрдирд╛рдЪреЗ рд╡рд░реНрдгрди рдХрд╕реЗ рдХрд░реВ рд╢рдХрддрд╛.

рддреЛ рдПрдХ рд╕рдВрдкреВрд░реНрдг рдЧреЛрдВрдзрд│ рд╣реЛрддрд╛.

SIG-рдХреНрд▓рд╕реНрдЯрд░рдиреЗ kubefed v1 рдирдВрддрд░ рдмрд░реЗрдЪ рдХрд╛рдо рдХреЗрд▓реЗ рдЖрдгрд┐ рд╡реЗрдЧрд│реНрдпрд╛ рдХреЛрдирд╛рддреВрди рд╕рдорд╕реНрдпреЗрдХрдбреЗ рдЬрд╛рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛.

рднрд╛рд╖реНрдпрд╛рдВрдРрд╡рдЬреА, рддреНрдпрд╛рдВрдиреА рдХреНрд▓рд╕реНрдЯрд░рд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗрд▓рд╛ рдирд┐рдпрдВрддреНрд░рдХ рд╕реЛрдбрдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛. рд╣реЗ рдХрд╕реНрдЯрдо рд░рд┐рд╕реЛрд░реНрд╕ рдбреЗрдлрд┐рдирд┐рд╢рди (CRDs) рд╡рд╛рдкрд░реВрди рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

рдлреЗрдбрд░реЗрд╢рдирдЪрд╛ рднрд╛рдЧ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрдирд╛рд╕рд╛рдареА, рддреБрдордЪреНрдпрд╛рдХрдбреЗ рддреАрди рд╡рд┐рднрд╛рдЧрд╛рдВрд╕рд╣ рд╕рд╛рдиреБрдХреВрд▓ CRD рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЖрд╣реЗ:

  • рд╕рдВрд╕рд╛рдзрдирд╛рдЪреА рдорд╛рдирдХ рд╡реНрдпрд╛рдЦреНрдпрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде рдЙрдкрдпреЛрдЬрди;
  • рдзрдбрд╛ placement, рдЬреЗрдереЗ рдЖрдкрдг рдлреЗрдбрд░реЗрд╢рдирдордзреНрдпреЗ рд╕рдВрд╕рд╛рдзрди рдХрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдИрд▓ рддреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛;
  • рдзрдбрд╛ override, рдЬреЗрдереЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕рд╛рдзрдирд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рдкреНрд▓реЗрд╕рдореЗрдВрдЯрдордзреВрди рд╡рдЬрди рдЖрдгрд┐ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб рдХрд░реВ рд╢рдХрддрд╛.

рдпреЗрдереЗ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдЖрдгрд┐ рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб рд╡рд┐рднрд╛рдЧрд╛рдВрд╕рд╣ рдПрдХрддреНрд░рд┐рдд рд╡рд┐рддрд░рдгрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рдЖрд╣реЗ.

apiVersion: types.federation.k8s.io/v1alpha1
kind: FederatedDeployment
metadata:
  name: test-deployment
  namespace: test-namespace
spec:
  template:
    metadata:
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
            - image: nginx
              name: nginx
  placement:
    clusterNames:
      - cluster2
      - cluster1
  overrides:
    - clusterName: cluster2
      clusterOverrides:
        - path: spec.replicas
          value: 5

рдЬрд╕реЗ рдЖрдкрдг рдкрд╛рд╣реВ рд╢рдХрддрд╛, рдкреБрд░рд╡рдард╛ рджреЛрди рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рд╡рд┐рддрд░реАрдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ: cluster1 ╨╕ cluster2.

рдкрд╣рд┐рд▓рд╛ рдХреНрд▓рд╕реНрдЯрд░ рддреАрди рдкреНрд░рддрд┐рдХреГрддреА рдкреБрд░рд╡рддреЛ рдЖрдгрд┐ рджреБрд╕рд░рд╛ 5 рд╡рд░ рд╕реЗрдЯ рдХреЗрд▓рд╛ рдЖрд╣реЗ.

рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддрд┐рдХреГрддреАрдВрдЪреНрдпрд╛ рд╕рдВрдЦреНрдпреЗрд╡рд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рд╣рд╡реЗ рдЕрд╕рд▓реНрдпрд╛рд╕, kubefed2 рдирд╡реАрди ReplicaSchedulingPreference рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдЬреЗрдереЗ рдкреНрд░рддрд┐рдХреГрддреАрдВрдЪреЗ рд╡рдЬрди рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ:

apiVersion: scheduling.federation.k8s.io/v1alpha1
kind: ReplicaSchedulingPreference
metadata:
  name: test-deployment
  namespace: test-ns
spec:
  targetKind: FederatedDeployment
  totalReplicas: 9
  clusters:
    A:
      weight: 1
    B:
      weight: 2

CRD рд╕рдВрд░рдЪрдирд╛ рдЖрдгрд┐ API рдЕрджреНрдпрд╛рдк рддрдпрд╛рд░ рдирд╛рд╣реАрдд рдЖрдгрд┐ рдЕрдзрд┐рдХреГрдд рдкреНрд░рдХрд▓реНрдк рднрд╛рдВрдбрд╛рд░рд╛рдд рд╕рдХреНрд░рд┐рдп рдХрд╛рдо рдЪрд╛рд▓реВ рдЖрд╣реЗ.

kubefed2 рд╡рд░ рд▓рдХреНрд╖ рдареЗрд╡рд╛, рдкрд░рдВрддреБ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рддреЗ рдЕрджреНрдпрд╛рдк рдЙрддреНрдкрд╛рджрдирд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рдирд╛рд╣реА.

рдХрдбреВрди kubefed2 рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рдЬрд╛рдгреВрди рдШреНрдпрд╛ kubefed2 рдмрджреНрджрд▓ рдЕрдзрд┐рдХреГрдд рд▓реЗрдЦ Kubernetes рдмрджреНрджрд▓ рдмреНрд▓реЙрдЧ рдордзреНрдпреЗ рдЖрдгрд┐ рдордзреНрдпреЗ рдХреБрдмреЗрдлреЗрдб рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рдЕрдзрд┐рдХреГрдд рднрд╛рдВрдбрд╛рд░.

рдкрд░реНрдпрд╛рдп реи: Booking.com рд╢реИрд▓реАрдордзреНрдпреЗ рдХреНрд▓рд╕реНрдЯрд░ рдПрдХрддреНрд░ рдХрд░рдгреЗ

Booking.com рдЪреНрдпрд╛ рдбреЗрд╡реНрд╣рд▓рдкрд░реНрд╕рдиреА kubefed v2 рд╡рд░ рдХрд╛рдо рдХреЗрд▓реЗ рдирд╛рд╣реА, рдкрд░рдВрддреБ рддреЗ Shipper рд╕реЛрдмрдд рдЖрд▓реЗ - рдЕрдиреЗрдХ рдХреНрд▓рд╕реНрдЯрд░реНрд╕рд╡рд░, рдЕрдиреЗрдХ рдХреНрд╖реЗрддреНрд░рд╛рдВрдордзреНрдпреЗ рдЖрдгрд┐ рдЕрдиреЗрдХ рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рдбрд┐рд▓рд┐рд╡реНрд╣рд░реАрд╕рд╛рдареА рдСрдкрд░реЗрдЯрд░.

рд╢рд┐рдкрд╛рдИ рдХрд╛рд╣реАрд╕реЗ kubefed2 рд╕рд╛рд░рдЦреЗ.

рджреЛрдиреНрд╣реА рдЯреВрд▓реНрд╕ рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреА рдорд▓реНрдЯреА-рдХреНрд▓рд╕реНрдЯрд░ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рд╕реНрдЯреНрд░реЕрдЯреЗрдЬреА рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддрд╛рдд (рдХреЛрдгрддреЗ рдХреНрд▓рд╕реНрдЯрд░ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдХрд┐рддреА рдкреНрд░рддрд┐рдХреГрддреА рдЖрд╣реЗрдд).

рдкрдг рдбрд┐рд▓рд┐рд╡реНрд╣рд░реА рджрд░рдореНрдпрд╛рди рддреНрд░реБрдЯреАрдВрдЪрд╛ рдзреЛрдХрд╛ рдХрдореА рдХрд░рдгреЗ рд╣реЗ рд╢рд┐рдкрд░рдЪреЗ рдзреНрдпреЗрдп рдЖрд╣реЗ.

Shipper рдордзреНрдпреЗ, рддреБрдореНрд╣реА рдкрд╛рдпрд▒реНрдпрд╛рдВрдЪреА рдорд╛рд▓рд┐рдХрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реВ рд╢рдХрддрд╛ рдЬреА рдорд╛рдЧреАрд▓ рдЖрдгрд┐ рд╡рд░реНрддрдорд╛рди рддреИрдирд╛рддреА рдЖрдгрд┐ рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рд░рд╣рджрд╛рд░реАрдЪреНрдпрд╛ рд╡реНрд╣реЙрд▓реНрдпреВрдордордзреАрд▓ рдкреНрд░рддрд┐рдХреГрддреАрдВрдЪреЗ рд╡рд┐рднрд╛рдЬрди рд╡рд░реНрдгрди рдХрд░рддрд╛рдд.

рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рд╕рдВрд╕рд╛рдзрди рдкреБрд╢ рдХрд░рддрд╛, рддреЗрд╡реНрд╣рд╛ рд╢рд┐рдкрд░ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╕рд░реНрд╡ рдЬреЛрдбрд▓реЗрд▓реНрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рддреЗ рдмрджрд▓ рд╡рд╛рдврд╡рдд рдЖрдгрддреЛ.

рддрд╕реЗрдЪ, рд╢рд┐рдкрд░ рдЦреВрдк рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗ.

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╣реЗ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдЗрдирдкреБрдЯ рдореНрд╣рдгреВрди рд╕реНрд╡реАрдХрд╛рд░рддреЗ рдЖрдгрд┐ рд╡реНрд╣реЕрдирд┐рд▓рд╛ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реА.
рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджрд╛рдд, рд╢рд┐рдкрд░ рдЕрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ.

рдорд╛рдирдХ рд╡рд┐рддрд░рдгрд╛рдРрд╡рдЬреА, рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгрд╛рд░рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдВрд╕рд╛рдзрди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ:

apiVersion: shipper.booking.com/v1alpha1
kind: Application
metadata:
  name: super-server
spec:
  revisionHistoryLimit: 3
  template:
    chart:
      name: nginx
      repoUrl: https://storage.googleapis.com/shipper-demo
      version: 0.0.1
    clusterRequirements:
      regions:
        - name: local
    strategy:
      steps:
        - capacity:
            contender: 1
            incumbent: 100
          name: staging
          traffic:
            contender: 0
            incumbent: 100
        - capacity:
            contender: 100
            incumbent: 0
          name: full on
          traffic:
            contender: 100
            incumbent: 0
    values:
      replicaCount: 3

рдПрдХрд╛рдзрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╢рд┐рдкрд░ рд╣рд╛ рдПрдХ рдЪрд╛рдВрдЧрд▓рд╛ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╣реЗрд▓реНрдорд╢реА рддреНрдпрд╛рдЪрд╛ рдЬрд╡рд│рдЪрд╛ рд╕рдВрдмрдВрдз рдХреЗрд╡рд│ рдорд╛рд░реНрдЧрд╛рдд рдпреЗрддреЛ.

рдЬрд░ рдЖрдкрдг рд╕рд░реНрд╡рд╛рдВрдиреА рд╣реЗрд▓реНрдо рд╡рд░реВрди рд╕реНрд╡рд┐рдЪ рдХреЗрд▓реЗ рддрд░ рдХрд╛рдп рд╣реЛрдИрд▓ рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХрд░рд╛ рдХрд┐рдВрд╡рд╛ рдХрд░реНрдгрдзрд╛рд░?

рд╢рд┐рдкрд░ рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛ рддрддреНрддреНрд╡рдЬреНрдЮрд╛рдирд╛рдмрджреНрджрд▓ рдпреЗрдереЗ рдЕрдзрд┐рдХ рд╢реЛрдзрд╛ рд╣реЗ рдЕрдзрд┐рдХреГрдд рдкреНрд░реЗрд╕ рдкреНрд░рдХрд╛рд╢рди.

рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдХреЛрдб рдЦреЛрджрд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓ рддрд░, рдЕрдзрд┐рдХреГрдд рдкреНрд░рдХрд▓реНрдк рднрд╛рдВрдбрд╛рд░рд╛рдХрдбреЗ рдЬрд╛.

рдкрд░реНрдпрд╛рдп 3: "рдЬрд╛рджреВ" рдХреНрд▓рд╕реНрдЯрд░ рд╡рд┐рд▓реАрдиреАрдХрд░рдг

Kubefed v2 рдЖрдгрд┐ Shipper рдХреНрд▓рд╕реНрдЯрд░ рдлреЗрдбрд░реЗрд╢рдирд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд, рд╕рд╛рдиреБрдХреВрд▓ рд╕рдВрд╕рд╛рдзрди рдкрд░рд┐рднрд╛рд╖рд╛рджреНрд╡рд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдирд╛ рдирд╡реАрди рд╕рдВрд╕рд╛рдзрдиреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд.

рдкрдг рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрд╡ рдбрд┐рд▓рд┐рд╡реНрд╣рд░реА, рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯреНрд╕, рдбреЗрдордирд╕реЗрдЯреНрд╕ рдЗ. рд╡рд┐рд▓реАрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣рд╛рдпрдЪреЗ рдирд╕рд▓реНрдпрд╛рд╕ рдХрд╛рдп?

YAML рди рдмрджрд▓рддрд╛ рдлреЗрдбрд░реЗрд╢рдирдордзреНрдпреЗ рд╡рд┐рджреНрдпрдорд╛рди рдХреНрд▓рд╕реНрдЯрд░ рдХрд╕реЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рд╛рд╡реЗ?

рдорд▓реНрдЯреА-рдХреНрд▓рд╕реНрдЯрд░-рд╢реЗрдбреНрдпреБрд▓рд░ рд╣рд╛ рдЕреЕрдбрдорд┐рд░реЕрд▓рд┐рдЯреА рдкреНрд░рдХрд▓реНрдк рдЖрд╣реЗ, рдЬреЗ рдХреНрд▓рд╕реНрдЯрд░реНрд╕рд╡рд░ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рд╡рд░реНрдХрд▓реЛрдбрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ.

рдкрд░рдВрддреБ рдХреНрд▓рд╕реНрдЯрд░рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рдЪрд╛ рдирд╡реАрди рдорд╛рд░реНрдЧ рдЖрдгрдгреНрдпрд╛рдРрд╡рдЬреА рдЖрдгрд┐ рд╕рд╛рдиреБрдХреВрд▓ рдкрд░рд┐рднрд╛рд╖рд╛рдВрдордзреНрдпреЗ рд╕рдВрд╕рд╛рдзрдиреЗ рдЧреБрдВрдбрд╛рд│рдгреНрдпрд╛рдРрд╡рдЬреА, рдорд▓реНрдЯреА-рдХреНрд▓рд╕реНрдЯрд░-рд╢реЗрдбреНрдпреВрд▓рд░ рд╣реЗ рдорд╛рдирдХ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд▓рд╛рдЗрдлрд╕рд╛рдпрдХрд▓рдордзреНрдпреЗ рдПрдореНрдмреЗрдб рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдкреЙрдбреНрд╕ рддрдпрд╛рд░ рдХрд░рдгрд╛рд░реЗ рд╕рд░реНрд╡ рдХреЙрд▓ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рддреЗ.

рдкреНрд░рддреНрдпреЗрдХ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓рд╛ рдкреЙрдб рддрд╛рдмрдбрддреЛрдм рдбрдореАрдиреЗ рдмрджрд▓рд▓рд╛ рдЬрд╛рддреЛ.

рдорд▓реНрдЯреА-рдХреНрд▓рд╕реНрдЯрд░-рд╢реЗрдбреНрдпреБрд▓рд░ рд╡рд╛рдкрд░рддреЗ рдкреНрд░рд╡реЗрд╢ рд╕реБрдзрд╛рд░рдгреЗрд╕рд╛рдареА рд╡реЗрдмрд╣реБрдХрдХреЙрд▓ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдбрдореА рдкреЙрдб рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.

рдореВрд│ рдкреЙрдб рджреБрд╕рд░реНтАНрдпрд╛ рдирд┐рдпреЛрдЬрди рдЪрдХреНрд░рд╛рддреВрди рдЬрд╛рддреЛ рдЬреЗрдереЗ, рд╕рдВрдкреВрд░реНрдг рдлреЗрдбрд░реЗрд╢рдирдЪреЗ рдорддрджрд╛рди рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдирд┐рдпреБрдХреНрддреАрдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛ рдЬрд╛рддреЛ.

рд╢реЗрд╡рдЯреА, рдкреЙрдб рд▓рдХреНрд╖реНрдп рдХреНрд▓рд╕реНрдЯрд░рд▓рд╛ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

рдкрд░рд┐рдгрд╛рдореА, рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреЙрдб рдЖрд╣реЗ рдЬреЗ рдХрд╛рд╣реАрд╣реА рдХрд░рдд рдирд╛рд╣реА, рдлрдХреНрдд рдЬрд╛рдЧрд╛ рдШреЗрддреЗ.

рдлрд╛рдпрджрд╛ рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдкреБрд░рд╡рдард╛ рдПрдХрддреНрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рдирд╡реАрди рд╕рдВрд╕рд╛рдзрдиреЗ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА.

рдкреЙрдб рддрдпрд╛рд░ рдХрд░рдгрд╛рд░реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕рд╛рдзрди рдЖрдкреЛрдЖрдк рд╡рд┐рд▓реАрди рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдЖрд╣реЗ.

рд╣реЗ рдордиреЛрд░рдВрдЬрдХ рдЖрд╣реЗ, рдХрд╛рд░рдг рдЕрдЪрд╛рдирдХ рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЕрдиреЗрдХ рдкреНрд░рджреЗрд╢рд╛рдВрдордзреНрдпреЗ рдкреБрд░рд╡рдард╛ рд╡рд┐рддрд░реАрдд рдЭрд╛рд▓рд╛ рдЖрдгрд┐ рддреБрдордЪреНрдпрд╛ рд▓рдХреНрд╖рд╛рддрд╣реА рдЖрд▓реЗ рдирд╛рд╣реА. рддрдерд╛рдкрд┐, рд╣реЗ рдЦреВрдк рдзреЛрдХрд╛рджрд╛рдпрдХ рдЖрд╣реЗ, рдХрд╛рд░рдг рдпреЗрдереЗ рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЬрд╛рджреВрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЖрд╣реЗ.

рдкрд░рдВрддреБ рд╢рд┐рдкрд░ рдмрд╣реБрддреЗрдХ рд╡рд┐рддрд░рдгрд╛рдЪрд╛ рдкреНрд░рднрд╛рд╡ рдХрдореА рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдд рдЕрд╕рддрд╛рдирд╛, рдорд▓реНрдЯреА-рдХреНрд▓рд╕реНрдЯрд░-рд╢реЗрдбреНрдпреБрд▓рд░ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЗ рд╣рд╛рддрд╛рд│рддреЛ рдЖрдгрд┐ рдХрджрд╛рдЪрд┐рдд рдмреЕрдЪ рдЬреЙрдмрд╕рд╛рдареА рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓ рдЖрд╣реЗ.

рддреНрдпрд╛рдд рдкреНрд░рдЧрдд рдХреНрд░рдорд┐рдХ рд╡рд┐рддрд░рдг рдпрдВрддреНрд░рдгрд╛ рдирд╛рд╣реА.

рдорд▓реНрдЯреА-рдХреНрд▓рд╕реНрдЯрд░-рд╢реЗрдбреНрдпреБрд▓рд░рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рдпреЗрдереЗ рдЖрдврд│реВ рд╢рдХрддреЗ рдЕрдзрд┐рдХреГрдд рднрд╛рдВрдбрд╛рд░ рдкреГрд╖реНрда.

рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдорд▓реНрдЯреА-рдХреНрд▓рд╕реНрдЯрд░-рд╢реЗрдбреНрдпреБрд▓рд░ рдХреГрддреАрдордзреНрдпреЗ рд╡рд╛рдЪрд╛рдпрдЪреЗ рдЕрд╕реЗрд▓, рддрд░ Admiralty рдЖрд╣реЗ Argo рд╕рд╣ рдордиреЛрд░рдВрдЬрдХ рд╡рд╛рдкрд░ рдХреЗрд╕ тАФ рд╡рд░реНрдХрдлреНрд▓реЛ, рдЗрд╡реНрд╣реЗрдВрдЯреНрд╕, рд╕реАрдЖрдп рдЖрдгрд┐ рд╕реАрдбреА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕.

рдЗрддрд░ рд╕рд╛рдзрдиреЗ рдЖрдгрд┐ рдЙрдкрд╛рдп

рдПрдХрд╛рдзрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдХрдиреЗрдХреНрдЯ рдХрд░рдгреЗ рдЖрдгрд┐ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рд╣реЗ рдПрдХ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдп рдЖрд╣реЗ рдЖрдгрд┐ рдХреЛрдгрддреЗрд╣реА рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рдЙрдкрд╛рдп рдирд╛рд╣реА.

рддреБрдореНрд╣рд╛рд▓рд╛ рд╣рд╛ рд╡рд┐рд╖рдп рдЖрдгрдЦреА рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░рд╛рдпрдЪрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕, рдпреЗрдереЗ рдХрд╛рд╣реА рд╕рдВрд╕рд╛рдзрдиреЗ рдЖрд╣реЗрдд:

рдЖрдЬрд╕рд╛рдареА рдПрд╡рдвреЗрдЪ

рд╢реЗрд╡рдЯрдкрд░реНрдпрдВрдд рд╡рд╛рдЪрд▓реНрдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж!

рдПрдХрд╛рдзрд┐рдХ рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдиреЗ рдХрд╕реЗ рдЬреЛрдбрд╛рдпрдЪреЗ рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╣реАрдд рдЕрд╕рд▓реНрдпрд╛рд╕, рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдВрдЧрд╛.

рдЖрдореНрд╣реА рддреБрдордЪреА рдкрджреНрдзрдд рд▓рд┐рдВрдХреНрд╕рд╡рд░ рдЬреЛрдбреВ.

рдЦреНрд░рд┐рд╕ рдиреЗрд╕реНрдмрд┐рдЯ-рд╕реНрдорд┐рдердЪреЗ рд╡рд┐рд╢реЗрд╖ рдЖрднрд╛рд░ (рдЦреНрд░рд┐рд╕ рдиреЗрд╕реНрдмрд┐рдЯ-рд╕реНрдорд┐рде) рдЖрдгрд┐ рд╡реНрд╣рд┐рдиреНрд╕реЗрдВрдЯ рдбреА рд╕реНрдореЗ (рд╡реНрд╣рд┐рдиреНрд╕реЗрдВрдЯ рдбреА рд╕реНрдореЗрдЯ) (рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдЕрднрд┐рдпрдВрддрд╛ рдордзреНрдпреЗ swatmobile.io) рд▓реЗрдЦ рд╡рд╛рдЪрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдлреЗрдбрд░реЗрд╢рди рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдпрд╛рдмрджреНрджрд▓ рдЙрдкрдпреБрдХреНрдд рдорд╛рд╣рд┐рддреА рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛