рджреАрдб рд╡рд░реНрд╖рд╛рдкреВрд░реНрд╡реА, 5 рдорд╛рд░реНрдЪ 2018 рд░реЛрдЬреА, Google рдиреЗ CI/CD рдирд╛рд╡рд╛рдЪреНрдпрд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдЪреА рдкрд╣рд┐рд▓реА рдЕрд▓реНрдлрд╛ рдЖрд╡реГрддреНрддреА рдкреНрд░рд╕рд┐рджреНрдз рдХреЗрд▓реА.
NB: рддрд╕реЗ, рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рдЬрдирд░рд▓рдордзреНрдпреЗ рд╕реНрдХреЕрдлреЛрд▓реНрдбрдмрджреНрджрд▓ рдереЛрдбрдХреНрдпрд╛рдд рдмреЛрд▓рд▓реЛ рдЖрд╣реЛрдд
рд╕рд┐рджреНрдзрд╛рдВрдд. рдЙрджреНрджреЗрд╢ рдЖрдгрд┐ рдХреНрд╖рдорддрд╛
рддрд░, рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рд╕реНрдХреЕрдлреЛрд▓реНрдб CI/CD рд╕рд╛рдпрдХрд▓ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рддреЗ (рдмрд┐рд▓реНрдб, рдкреБрд╢, рдбрд┐рдкреНрд▓реЙрдп рд╕реНрдЯреЗрдЬрд╡рд░), рдбреЗрд╡реНрд╣рд▓рдкрд░рд▓рд╛ рддреНрд╡рд░рд┐рдд рдлреАрдбрдмреЕрдХ рдСрдлрд░ рдХрд░рддреЗ, рдЙрджрд╛. рддреНрдпрд╛рдирдВрддрд░рдЪреНрдпрд╛ рдХреЛрдб рдмрджрд▓рд╛рдВрдЪреЗ рдкрд░рд┐рдгрд╛рдо рддреНрд╡рд░реАрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ - рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЕрджреНрдпрддрдирд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд. рдЖрдгрд┐ рддреЗ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рд░реНрдХрд┐рдЯреНрд╕ (рджреЗрд╡, рд╕реНрдЯреЗрдЬ, рдЙрддреНрдкрд╛рджрди...) рдордзреНрдпреЗ рдХрд╛рд░реНрдп рдХрд░реВ рд╢рдХрддреЗ, рдЬреНрдпрд╛рд╕рд╛рдареА рд╕реНрдХреЕрдлреЛрд▓реНрдб рд░реЛрд▓рдЖрдЙрдЯрд╕рд╛рдареА рд╕рдВрдмрдВрдзрд┐рдд рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдЪреЗ рд╡рд░реНрдгрди рдХрд░рдгреНрдпрд╛рд╕ рдорджрдд рдХрд░рддреЗ.
рд╕реНрдХреЕрдлреЛрд▓реНрдбрдЪрд╛ рд╕реНрддреНрд░реЛрдд рдХреЛрдб Go рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ,
рдЪрд▓рд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдпреЗ рдЖрдгрд┐ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдкрд╛рд╣реВ. рдкреНрд░рдердо рдЦрд╛рд▓реАрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯреАрдд рдЖрд╣реЗ:
- Skaffold CI/CD рдкрд╛рдЗрдкрд▓рд╛рдЗрди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЯреВрд▓реНрд╕ рдСрдлрд░ рдХрд░рддреЗ.
- рддреБрдореНрд╣рд╛рд▓рд╛ рдкрд╛рд░реНрд╢реНрд╡рднреВрдореАрддреАрд▓ рд╕реЛрд░реНрд╕ рдХреЛрдбрдордзреАрд▓ рдмрджрд▓рд╛рдВрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рдХрдВрдЯреЗрдирд░ рдЗрдореЗрдЬрдордзреНрдпреЗ рдХреЛрдб рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдгреНрдпрд╛рдЪреА, рдпрд╛ рдЗрдореЗрдЬ рдбреЙрдХрд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реАрдордзреНрдпреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рдЪреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ.
- рдХрдВрдЯреЗрдирд░рдордзреАрд▓ рдХрд╛рд░реНрдпрд░рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрд╕рд╣ рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдордзреАрд▓ рдлрд╛рдЗрд▓реНрд╕ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдХрд░рддреЗ.
- рдХрдВрдЯреЗрдирд░-рд╕реНрдЯреНрд░рдХреНрдЪрд░-рдЪрд╛рдЪрдгреА рд╡рд╛рдкрд░реВрди рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдЪрд╛рдЪрдгреА рдХрд░рддреЗ.
- рдкреЛрд░реНрдЯ рдлреЙрд░рд╡рд░реНрдб рдХрд░рддреЗ.
- рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреЗ рд▓реЙрдЧ рд╡рд╛рдЪрддреЗ.
- Java, Node.js, Python, Go рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдбреАрдмрдЧ рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░рддреЗ.
рдЖрддрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдмрджреНрджрд▓:
- рд╕реНрдХрд╛рдлреЛрд▓реНрдбрдордзреНрдпреЗ рд╕реНрд╡рддрдГрдЪ рдХреНрд▓рд╕реНрдЯрд░-рд╕рд╛рдЗрдб рдШрдЯрдХ рдирд╛рд╣реАрдд. рдореНрд╣рдгрдЬреЗрдЪ, рдпрд╛ рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд▓рд╛ рдЖрдгрдЦреА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА.
- рддреБрдордЪреНрдпрд╛ рдЕрд░реНрдЬрд╛рд╕рд╛рдареА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди. рддреБрдореНтАНрд╣реА рд╡рд┐рдХрд╕реАрдд рдХрд░рдд рдЕрд╕рддрд╛рдирд╛ рддреБрдореНтАНрд╣рд╛рд▓рд╛ рд╕реНтАНрдерд╛рдирд┐рдХ Minikube рд╡рд░ рдХреЛрдб рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдгреНтАНрдпрд╛рдЪреА рдЖрд╡рд╢реНтАНрдпрдХрддрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдирдВрддрд░ рд╕реНтАНрдЯреЗрдЬ рдХрд┐рдВрд╡рд╛ рдкреНрд░реЙрдбрдХреНтАНрд╢рдирд╕рд╛рдареА? рдпрд╛ рд╣реЗрддреВрдиреЗ рдЖрд╣реЗрдд
рдкреНрд░реЛрдлрд╛рдЗрд▓ рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди, рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд▓ рдЖрдгрд┐ рдзреНрд╡рдЬ, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕рд╛рдареА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирдЪреЗ рд╡рд░реНрдгрди рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддрд╛рдд. - CLI. YAML рдордзреНрдпреЗ рдлрдХреНрдд рдХрдиреНрд╕реЛрд▓ рдпреБрдЯрд┐рд▓рд┐рдЯреА рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди. рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдЖрдкрдг рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдпрддреНрдирд╛рдВрдЪреЗ рд╕рдВрджрд░реНрдн рд╢реЛрдзреВ рд╢рдХрддрд╛
рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ GUI , рддрдерд╛рдкрд┐, рдпрд╛ рдХреНрд╖рдгреА рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдПрдЦрд╛рджреНрдпрд╛рд▓рд╛ рддреНрдпрд╛рдЪреА рдЧрд░рдЬ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЦрд░реЛрдЦрд░ рдирд╛рд╣реА. - рдореЙрдбреНрдпреБрд▓реЕрд░рд┐рдЯреА. рд╕реНрдХреЕрдлреЛрд▓реНрдб рд╣рд╛ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдХрд╛рдкрдгреА рдпрдВрддреНрд░ рдирд╛рд╣реА, рдкрд░рдВрддреБ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдВрд╕рд╛рдареА рд╡реИрдпрдХреНрддрд┐рдХ рдореЙрдбреНрдпреВрд▓ рдХрд┐рдВрд╡рд╛ рд╡рд┐рджреНрдпрдорд╛рди рдЙрдкрд╛рдп рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЛ.
рдирдВрддрд░рдЪреЗ рдЙрджрд╛рд╣рд░рдг:
- рдЕрд╕реЗрдВрдмреНрд▓реА рд╕реНрдЯреЗрдЬрд╡рд░ рдЖрдкрдг рд╣реЗ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛:
- рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рд╕реНрдерд╛рдирд┐рдХ рдкрд╛рддрд│реАрд╡рд░, рдХрдирд┐рдХреЛ рд╡рд╛рдкрд░реВрди рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдХрд┐рдВрд╡рд╛ Google рдХреНрд▓рд╛рдЙрдб рдмрд┐рд▓реНрдбрдордзреНрдпреЗ;
- рд╕реНрдерд╛рдирд┐рдХ рдкрд╛рддрд│реАрд╡рд░ рдмреЕрдЭреЗрд▓;
- Jib Maven рдЖрдгрд┐ Jib Gradle рд╕реНрдерд╛рдирд┐рдХ рдкрд╛рддрд│реАрд╡рд░ рдХрд┐рдВрд╡рд╛ Google рдХреНрд▓рд╛рдЙрдб рдмрд┐рд▓реНрдбрдордзреНрдпреЗ;
- рд╕рд╛рдиреБрдХреВрд▓ рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдерд╛рдирд┐рдХ рдкрд╛рддрд│реАрд╡рд░ рдЪрд╛рд▓рддрд╛рдд. рддреБрдореНрд╣рд╛рд▓рд╛ рджреБрд╕рд░реЗ (рдЕрдзрд┐рдХ рд▓рд╡рдЪрд┐рдХ/рдкрд░рд┐рдЪрд┐рдд/...) рдмрд┐рд▓реНрдб рд╕реЛрд▓реНрдпреВрд╢рди рдЪрд╛рд▓рд╡рд╛рдпрдЪреЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреНрдпрд╛рдЪреЗ рд╡рд░реНрдгрди рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреНрдпреЗ рдХреЗрд▓реЗ рдЖрд╣реЗ рдЬреЗрдгреЗрдХрд░реВрди рд╕реНрдХреЕрдлреЛрд▓реНрдб рддреЗ рд▓реЙрдиреНрдЪ рдХрд░реЗрд▓ (
рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рддреАрд▓ рдЙрджрд╛рд╣рд░рдг ). рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдХрд▓реЗрдХреНрдЯрд░рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ рдЬреНрдпрд╛рд▓рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░реВрди рдХреЙрд▓ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ;
- рдЪрд╛рдЪрдгреА рдЯрдкреНрдкреНрдпрд╛рд╡рд░, рдЖрдзреАрдЪ рдирдореВрдж рдХреЗрд▓реЗ рдЖрд╣реЗ
рдХрдВрдЯреЗрдирд░-рд╕реНрдЯреНрд░рдХреНрдЪрд░-рдЪрд╛рдЪрдгреА ; - рдЙрдкрдпреЛрдЬрдирд╛рд╕рд╛рдареА рдЦрд╛рд▓реАрд▓ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЖрд╣реЗрдд:
- рдХреБрдмреЗрдХреНрдЯрд▓;
- рд╣реЗрд▓реНрдо;
- рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХрд░рд╛.
рдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рд╕реНрдХрд╛рдлреЛрд▓реНрдбрд▓рд╛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдореНрд╣рдЯрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рд╕реАрдЖрдп/рд╕реАрдбреА рдмрд╛рдВрдзрдгреНрдпрд╛рд╕рд╛рдареА рдлреНрд░реЗрдорд╡рд░реНрдХ. рд╣реЗ рд╡рд╛рдкрд░рддрд╛рдирд╛ рд╡рд░реНрдХрдлреНрд▓реЛрдЪреЗ рдЙрджрд╛рд╣рд░рдг рдпреЗрдереЗ рдЖрд╣реЗ (рдкреНрд░реЛрдЬреЗрдХреНрдЯ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдгрд╛рддреВрди):
рд╕реНрдХреЕрдлреЛрд▓реНрдбрдЪреЗ рдХрд╛рд░реНрдп рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рдХрд╕реЗ рджрд┐рд╕рддреЗ?
- рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╕реНрддреНрд░реЛрдд рдХреЛрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрддреАрд▓ рдмрджрд▓рд╛рдВрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ. рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ рдмрджрд▓ рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреЗ Kubernetes рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЙрдбрд╕рд╣ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЭ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рд╢рдХреНрдп рдЕрд╕рд▓реНрдпрд╛рд╕, рдкреНрд░рддрд┐рдорд╛ рдкреБрдиреНрд╣рд╛ рдПрдХрддреНрд░ рди рдХрд░рддрд╛. рдЕрдиреНрдпрдерд╛, рдПрдХ рдирд╡реАрди рдкреНрд░рддрд┐рдорд╛ рдПрдХрддреНрд░ рдХреЗрд▓реА рдЬрд╛рддреЗ.
- рдХрдВрдЯреЗрдирд░-рд╕реНрдЯреНрд░рдХреНрдЪрд░-рдЯреЗрд╕реНрдЯ рд╡рд╛рдкрд░реВрди рдПрдХрддреНрд░рд┐рдд рдХреЗрд▓реЗрд▓реА рдкреНрд░рддрд┐рдорд╛ рддрдкрд╛рд╕рд▓реА рдЬрд╛рддреЗ, рдЯреЕрдЧ рдХреЗрд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрд▓рд╛ рдкрд╛рдард╡рд┐рд▓реА рдЬрд╛рддреЗ.
- рдпрд╛рдирдВрддрд░, рдкреНрд░рддрд┐рдорд╛ рддреИрдирд╛рдд рдХреЗрд▓реА рдЬрд╛рддреЗ - рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рддреИрдирд╛рдд рдХреЗрд▓реА рдЬрд╛рддреЗ.
- рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВрди рд▓рд╛рдБрдЪ рд╕реБрд░реВ рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕
skaffold dev
, рддреНрдпрд╛рдирдВрддрд░ рдЖрдореНрд╣рд╛рд▓рд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдордзреВрди рдиреЛрдВрджреА рдорд┐рд│рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рд╣реЛрддреЗ рдЖрдгрд┐ рд╕реНрдХреЕрдлреЛрд▓реНрдб рд╕рд░реНрд╡ рдХреНрд░рд┐рдпрд╛ рдкреБрдиреНрд╣рд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдмрджрд▓рд╛рдВрдЪреА рд╡рд╛рдЯ рдкрд╛рд╣рддреЛ.
рд╕реНрдХрд╛рдлреЛрд▓реНрдб рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рдореБрдЦреНрдп рдЯрдкреНрдкреНрдпрд╛рдВрдЪреЗ рдЪрд┐рддреНрд░рдг
рд╕рд░рд╛рд╡. Skaffold рдкреНрд░рдпрддреНрди рдХрд░рдд рдЖрд╣реЗ
Skaffold рдЪрд╛ рд╡рд╛рдкрд░ рджрд╛рдЦрд╡рдгреНрдпрд╛рд╕рд╛рдареА, рдореА рдПрдХ рдЙрджрд╛рд╣рд░рдг рдШреЗрдИрди
рд╕реНрдХрд╛рдлреЛрд▓реНрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛:
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64
chmod +x skaffold
sudo mv skaffold /usr/local/bin
skaffold version
v0.37.1
рдЖрд╡рд╢реНрдпрдХ рдЙрджрд╛рд╣рд░рдгрд╛рдВрд╕рд╣ рд╕реНрдХреЕрдлреЛрд▓реНрдбрдЪреНрдпрд╛ рднрд╛рдВрдбрд╛рд░рд╛рдЪреЗ рдХреНрд▓реЛрди рдХрд░реВрдпрд╛:
git clone https://github.com/GoogleContainerTools/skaffold
cd skaffold/examples/microservices
рдореА рджреЛрди рдкреЙрдбреНрд╕рд╕рд╣ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдирд┐рд╡рдбрд▓реЗ, рдкреНрд░рддреНрдпреЗрдХрд╛рдордзреНрдпреЗ рдПрдХ рд▓рд╣рд╛рди рдЧреЛ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд╣реЗ. рдПрдХ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдлреНрд░рдВрдЯрдПрдВрдб (leeroy-web) рдЖрд╣реЗ, рдЬреЛ рд╡рд┐рдирдВрддреАрд▓рд╛ рджреБрд╕рд▒реНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдХрдбреЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреЛ - рдмреЕрдХрдПрдВрдб (leeroy-app). рддреЗ рдХрд╕реЗ рджрд┐рд╕рддреЗ рддреЗ рдкрд╛рд╣реВрдпрд╛:
~/skaffold/examples/microservices # tree
.
тФЬтФАтФА leeroy-app
тФВ тФЬтФАтФА app.go
тФВ тФЬтФАтФА Dockerfile
тФВ тФФтФАтФА kubernetes
тФВ тФФтФАтФА deployment.yaml
тФЬтФАтФА leeroy-web
тФВ тФЬтФАтФА Dockerfile
тФВ тФЬтФАтФА kubernetes
тФВ тФВ тФФтФАтФА deployment.yaml
тФВ тФФтФАтФА web.go
тФЬтФАтФА README.adoc
тФФтФАтФА skaffold.yaml
4 directories, 8 files
leeroy-app рдЖрдгрд┐ leeroy-web рдордзреНрдпреЗ рд╣рд╛ рдХреЛрдб рд╕реНрдерд╛рдирд┐рдХ рдкрд╛рддрд│реАрд╡рд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Go рдХреЛрдб рдЖрдгрд┐ рд╕рд╛рдзреНрдпрд╛ рдбреЙрдХрд░рдлрд╛рдИрд▓реНрд╕ рдЕрд╕рддрд╛рдд:
~/skaffold/examples/microservices # cat leeroy-app/Dockerfile
FROM golang:1.12.9-alpine3.10 as builder
COPY app.go .
RUN go build -o /app .
FROM alpine:3.10
CMD ["./app"]
COPY --from=builder /app .
рдореА рдЕрд░реНрдЬ рдХреЛрдб рджреЗрдгрд╛рд░ рдирд╛рд╣реА - рд╣реЗ рдЬрд╛рдгреВрди рдШреЗрдгреЗ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ leeroy-web
рд╡рд┐рдирдВрддреНрдпрд╛ рд╕реНрд╡реАрдХрд╛рд░рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рддреЛ leeroy-app
. рдореНрд╣рдгреВрди рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ Deployment.yaml
рдлрдХреНрдд рд╕рд╛рдареА рд╕реЗрд╡рд╛ рдЖрд╣реЗ app
(рдЕрдВрддрд░реНрдЧрдд рд░рд╛рдЙрдЯрд┐рдВрдЧрд╕рд╛рдареА). рдкреЙрдб рдкреЛрд░реНрдЯ web
рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдд рджреНрд░реБрдд рдкреНрд░рд╡реЗрд╢рд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рддреЗ рд╕реНрд╡рддрдГрдХрдбреЗ рдкрд╛рдард╡реВ.
рдЕрд╕реЗ рджрд┐рд╕рддреЗ skaffold.yaml
:
~/skaffold/examples/microservices # cat skaffold.yaml
apiVersion: skaffold/v1beta13
kind: Config
build:
artifacts:
- image: leeroy-web
context: ./leeroy-web/
- image: leeroy-app
context: ./leeroy-app/
deploy:
kubectl:
manifests:
- ./leeroy-web/kubernetes/*
- ./leeroy-app/kubernetes/*
portForward:
- resourceType: deployment
resourceName: leeroy-web
port: 8080
localPort: 9000
рд╡рд░ рдирдореВрдж рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдЯрдкреНрдкреНрдпрд╛рдВрдЪреЗ рдпреЗрдереЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ. рдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЬрд╛рдЧрддрд┐рдХ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрд╕рд╣ рдПрдХ рдлрд╛рдЗрд▓ рджреЗрдЦреАрд▓ рдЖрд╣реЗ - ~/.skaffold/config
. рд╣реЗ рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рдХрд┐рдВрд╡рд╛ CLI рджреНрд╡рд╛рд░реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ - рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдпрд╛рд╕рд╛рд░рдЦреЗ:
skaffold config set --global local-cluster true
рд╣реА рдХрдорд╛рдВрдб рдЧреНрд▓реЛрдмрд▓ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░реЗрд▓ local-cluster
рдЕрд░реНрде рдордзреНрдпреЗ true
, рдЬреНрдпрд╛рдирдВрддрд░ Skaffold рд░рд┐рдореЛрдЯ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реАрдордзреНрдпреЗ рдкреНрд░рддрд┐рдорд╛ рдврдХрд▓рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рддреБрдореНтАНрд╣реА рд╕реНтАНрдерд╛рдирд┐рдХрд░рд┐рддреНрдпрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдд рдЕрд╕рд▓реНтАНрдпрд╛рд╕, рддреБрдореНтАНрд╣реА рд╕реНтАНрдерд╛рдирд┐рдХрдкрдгреЗ рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХрд░рдгреНтАНрдпрд╛рд╕рд╛рдареА рдпрд╛ рдХрдорд╛рдВрдбрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВ рд╢рдХрддрд╛.
рдкрд░рдд skaffold.yaml
:
- рдордВрдЪрд╛рд╡рд░
build
рдЖрдореНтАНрд╣реА рдирдореВрдж рдХрд░рддреЛ рдХреА рддреБрдореНтАНрд╣рд╛рд▓рд╛ рд╕реНтАНрдерд╛рдирд┐рдХрд░рд┐рддреНрдпрд╛ рдкреНрд░рддрд┐рдорд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реВрди рдЬрддрди рдХрд░рдгреНтАНрдпрд╛рдЪреА рдЖрд╡рд╢реНтАНрдпрдХрддрд╛ рдЖрд╣реЗ. рдмрд┐рд▓реНрдб рдкреНрд░рдердордЪ рдЪрд╛рд▓рд▓реНрдпрд╛рдирдВрддрд░, рдЖрдореНрд╣реА рдкреБрдвреАрд▓ рдЧреЛрд╖реНрдЯреА рдкрд╛рд╣реВ:// ╤В.╨║. Minikube ╤Б╨╛╨╖╨┤╨░╨╡╤В ╨║╨╗╨░╤Б╤В╨╡╤А ╨▓ ╨╛╤В╨┤╨╡╨╗╤М╨╜╨╛╨╣ ╨▓╨╕╤А╤В╤Г╨░╨╗╤М╨╜╨╛╨╣ ╨╝╨░╤И╨╕╨╜╨╡, // ╨┐╤А╨╕╨┤╨╡╤В╤Б╤П ╨┐╤А╨╛╨╜╨╕╨║╨╜╤Г╤В╤М ╨▓╨╜╤Г╤В╤А╤М, ╤З╤В╨╛╨▒╤Л ╨╜╨░╨╣╤В╨╕ ╨╛╨▒╤А╨░╨╖╤Л # minikube ssh $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE leeroy-app 7d55a50803590b2ff62e47e6f240723451f3ef6f8c89aeb83b34e661aa287d2e 7d55a5080359 4 hours ago 13MB leeroy-app v0.37.1-171-g0270a0c-dirty 7d55a5080359 4 hours ago 13MB leeroy-web 5063bfb29d984db1ff70661f17d6efcc5537f2bbe6aa6907004ad1ab38879681 5063bfb29d98 5 hours ago 13.1MB leeroy-web v0.37.1-171-g0270a0c-dirty 5063bfb29d98 5 hours ago 13.1MB
рдЬрд╕реЗ рдЖрдкрдг рдкрд╛рд╣реВ рд╢рдХрддрд╛, рд╕реНрдХрд╛рдлреЛрд▓реНрдбрдиреЗ рд╕реНрд╡рддрдГ рдкреНрд░рддрд┐рдорд╛ рдЯреЕрдЧ рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд. рддрд╕реЗ, рдЕрдиреЗрдХ рдЯреЕрдЧрд┐рдВрдЧ рдзреЛрд░рдгреЗ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗрдд.
- рдкреБрдвреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рддреЗ рд╕реВрдЪрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ
context: ./leeroy-app/
, рдореНрд╣рдгрдЬреЗ рдЬреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдордзреНрдпреЗ рдкреНрд░рддрд┐рдорд╛ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ рддреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ. - рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рд╕реНрдЯреЗрдЬрд╡рд░, рд╣реЗ рдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ рдХреА рдЖрд╡рд╢реНрдпрдХ рдореЕрдирд┐рдлреЗрд╕реНрдЯрд╕рд╛рдареА рдЖрдореНрд╣реА рдХреБрдмреЗрдХреНрдЯрд▓ рдЖрдгрд┐ рдорд╛рд╕реНрдХ рд╡рд╛рдкрд░реВ.
-
PortForward
: рдЖрдореНрд╣реА рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдХрд╕реЗ рд╡рд╛рдкрд░реВрди рдкреЛрд░реНрдЯ рдлреЙрд░рд╡рд░реНрдб рдХрд░рддреЛ рддреНрдпрд╛рдкреНрд░рдорд╛рдгреЗkubectl port-forward
, рдЖрдореНрд╣реА Skaffold рд▓рд╛ рдпрд╛ рдХрдорд╛рдВрдбрд▓рд╛ рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реВрдЪрдирд╛ рджреЗрддреЛ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рд╕реНрдерд╛рдирд┐рдХ рдкреЛрд░реНрдЯ 9000 рдирд╛рд╡рд╛рд╕рд╣ рддреИрдирд╛рддреАрдордзреНрдпреЗ 8080 рд╡рд░ рдкрд╛рдард╡рд▓реЗ рдЬрд╛рддреЗ.leeroy-web
.
рдкреНрд░рдХреНрд╖реЗрдкрдг рдХрд░рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрд▓реА рдЖрд╣реЗ skaffold dev
: рдХрд╛рд░реНрдпрд╕рдВрдШ рдПрдХ рд╕рддрдд "рдлреАрдбрдмреЕрдХ рд▓реВрдк" рддрдпрд╛рд░ рдХрд░реЗрд▓, рдЙрджрд╛. рддреЗ рдХреЗрд╡рд│ рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЧреЛрд│рд╛ рдХрд░реЗрд▓ рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рддреИрдирд╛рдд рдХрд░реЗрд▓, рдкрд░рдВрддреБ рддреНрдпрд╛ рдХреНрд╖рдгреА рдкреЙрдбреНрд╕рдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрдмрджреНрджрд▓ рджреЗрдЦреАрд▓ рд╕рд╛рдВрдЧреЗрд▓, рдмрджрд▓рд╛рдВрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрд▓ рдЖрдгрд┐ рдкреЙрдбреНрд╕рдЪреА рд╕реНрдерд┐рддреА рдЕрджреНрдпрддрдирд┐рдд рдХрд░реЗрд▓.
рдпреЗрдереЗ рдкреНрд░рдХреНрд╖реЗрдкрдг рдкрд░рд┐рдгрд╛рдо рдЖрд╣реЗ skaffold dev --port-forward
рдкреБрдиреНрд╣рд╛ рдПрдХрддреНрд░ рдХрд░рддрд╛рдирд╛:
рдкреНрд░рдердо, рдЖрдкрдг рдкрд╛рд╣реВ рд╢рдХрддрд╛ рдХреА рдХреЕрд╢реЗ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдд рдЖрд╣реЗ. рдкреБрдвреЗ, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХрддреНрд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рддреИрдирд╛рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдкреЛрд░реНрдЯ рдлреЙрд░рд╡рд░реНрдб рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реНрдпрд╛рдкрд╛рд╕реВрди --port-forward
, Skaffold рдиреЗ рдкреЛрд░реНрдЯрд▓рд╛ рдлреЙрд░рд╡рд░реНрдб рдХреЗрд▓реЗ web
, рддреНрдпрд╛рд▓рд╛ рд╡рд┐рдЪрд╛рд░рд▓реЗ рд╣реЛрддреЗ, рдкрдг app
рддреНрдпрд╛рдиреЗ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╡рд┐рд╡реЗрдХрдмреБрджреНрдзреАрдиреБрд╕рд╛рд░ рдлреЗрдХрд▓реЗ (рд╕рд░реНрд╡рд╛рдд рдЬрд╡рд│рдЪреЗ рд╡рд┐рдирд╛рдореВрд▓реНрдп рдирд┐рд╡рдбрд▓реЗ). рдпрд╛рдирдВрддрд░, рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдХрдбреВрди рдкреНрд░рдердо рд▓реЙрдЧ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛рдд.
рдЪрд▓рд╛ рддреЗ рдХрд╛рдо рдХрд░рддреЗ рдХрд╛ рддреЗ рддрдкрд╛рд╕реВрдпрд╛?
~/skaffold/examples/microservices # kubectl get po
NAME READY STATUS RESTARTS AGE
leeroy-app-6998dfcc95-2nxvf 1/1 Running 0 103s
leeroy-web-69f7d47c9d-5ff77 1/1 Running 0 103s
~/skaffold/examples/microservices # curl localhost:9000
leeroooooy app!!!
рдлрд╛рдЗрд▓ рд╕реБрдзрд╛рд░рд┐рдд рдХрд░рдд рдЖрд╣реЗ leeroy-app/app.go
- рдХрд╛рд╣реА рд╕реЗрдХрдВрдж рдирд┐рдШреВрди рдЬрд╛рддрд╛рдд... рдЖрдгрд┐:
~/skaffold/examples/microservices # kubectl get po
NAME READY STATUS RESTARTS AGE
leeroy-app-ffd79d986-l6nwp 1/1 Running 0 11s
leeroy-web-69f7d47c9d-5ff77 1/1 Running 0 4m59s
~/skaffold/examples/microservices # curl localhost:9000
leeroooooy Habr!!!
рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рд╕реНрдХреЕрдлреЛрд▓реНрдбрдиреЗ рд╕реНрд╡рддрдГ рдХрдиреНрд╕реЛрд▓рдордзреНрдпреЗ рдкреВрд░реНрд╡реАрдкреНрд░рдорд╛рдгреЗрдЪ рддреАрдЪ рдЧреЛрд╖реНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реА, рдПрдХрд╛ рдмрд┐рдВрджреВрдЪрд╛ рдЕрдкрд╡рд╛рдж рд╡рдЧрд│рддрд╛: рддреЗ рдлрдХреНрдд рд░реЛрд▓ рдЖрдЙрдЯ рдЭрд╛рд▓реЗ leeroy-app
, рдЖрдгрд┐ рд╕рд░реНрд╡ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдирд╛рд╣реА.
рдЕрдзрд┐рдХ рд╕рд░рд╛рд╡
рд╣реЗ рджреЗрдЦреАрд▓ рдирдореВрдж рдХрд░рдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА рдирд╡реАрди рдкреНрд░рдХрд▓реНрдк рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛, рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВрди рд╕реНрдХреЕрдлреЛрд▓реНрдбрд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧ рдмреВрдЯрд╕реНрдЯреНрд░реЕрдк рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. init
, рдЬреЗ рдЦреВрдк рд╕реЛрдпреАрд╕реНрдХрд░ рдЖрд╣реЗ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рддреБрдореНрд╣реА рдЕрдиреЗрдХ рдХреЙрдиреНрдлрд┐рдЧреНрд╕ рд▓рд┐рд╣реВ рд╢рдХрддрд╛: рдбреАрдлреЙрд▓реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╡рд░ рд╡рд┐рдХрд╛рд╕ рдХрд░рд╛ рдЖрдгрд┐ рдирдВрддрд░ рдХрдорд╛рдВрдбрд╕рд╣ рд╕реНрдЯреЗрдЬрд╡рд░ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рд╛ run
(рд╕рдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ dev
, рдлрдХреНрдд рдмрджрд▓рд╛рдВрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдд рдирд╛рд╣реА), рднрд┐рдиреНрди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡рд╛рдкрд░реВрди.
рдХрдЯрд╛рдХреЛрдбрд╛рд╡рд░ рдЖрд╣реЗ
рд╕реНрдХреЕрдлреЛрд▓реНрдбрд╕рд╛рдареА рдПрдХ рд╕рдВрднрд╛рд╡реНрдп рд╡рд╛рдкрд░ рдХреЗрд╕ рдореНрд╣рдгрдЬреЗ рд░рд┐рдореЛрдЯ рдХреНрд▓рд╕реНрдЯрд░рд╡рд░ рд╡рд┐рдХрд╛рд╕ рдХрд░рдгреЗ. рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░рд╡рд░ Minikube рдЪрд╛рд▓рд╡рдгреЗ, рддреНрдпрд╛рдирдВрддрд░ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдгреЗ рдЖрдгрд┐ рддреЗ рдкреБрд░реЗрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдЪреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдгреЗ рд╕реЛрдпреАрд╕реНрдХрд░ рдирд╕рддреЗ... рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, Skaffold рд╕рдорд╕реНрдпреЗрдЪреЗ рдЙрддреНрддрдо рдкреНрд░рдХрд╛рд░реЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рддреЗ, рдЬреНрдпрд╛рдЪреА рдкреБрд╖реНрдЯреА рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, Reddit рдЕрднрд┐рдпрдВрддреЗ, рдЬрд╕реЗ рдХреА рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЖрд╣реЗ. рдЖрдзреАрдЪ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реА рдЖрд╣реЗ
рдЖрдгрд┐ рдордзреНрдпреЗ
рдирд┐рд╖реНрдХрд░реНрд╖
рд╕реНрдХрд╛рдлреЛрд▓реНрдб рд╣реЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕реЛрдпреАрд╕реНрдХрд░ рд╕рд╛рдзрди рдЖрд╣реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╕рд╛рдареА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдгреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ рдЖрдгрд┐ рддреЗ рдкреНрд░рд╛рдореБрдЦреНрдпрд╛рдиреЗ рд╡рд┐рдХрд╛рд╕рд╛рдЪреНрдпрд╛ рдЧрд░рдЬрд╛рдВрд╡рд░ рдХреЗрдВрджреНрд░рд┐рдд рдЖрд╣реЗ. рд╡рд┐рдХрд╕рдХрд╛рдЪреНрдпрд╛ рдореВрд▓рднреВрдд рдЧрд░рдЬрд╛ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрдгрд╛рд░реА "рд▓рд╣рд╛рди" рдкрд╛рдЗрдкрд▓рд╛рдЗрди рддрдпрд╛рд░ рдХрд░рдгреЗ рд╣реЗ рдЕрдЧрджреА рд╕реЛрдкреЗ рдХрд░рддреЗ, рдкрд░рдВрддреБ рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рдЖрдкрдг рдореЛрдареНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдпреЛрдЬрд┐рдд рдХрд░реВ рд╢рдХрддрд╛. рд╕реАрдЖрдп/рд╕реАрдбреА рдкреНрд░рдХреНрд░рд┐рдпреЗрдордзреНрдпреЗ рд╕реНрдХрд╛рдлреЛрд▓реНрдб рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреЗ рд╕реНрдкрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдгрд╛рдВрдкреИрдХреА рдПрдХ рдореНрд╣рдгреВрди
GitHub рд╡рд░ рд╕реНрдХреЕрдлреЛрд▓реНрдбрдХрдбреЗ рдЖрдзреАрдкрд╛рд╕реВрдирдЪ рдЬрд╡рд│рдкрд╛рд╕ 8000+ рддрд╛рд░реЗ рдЖрд╣реЗрдд, Google рдиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдЪрд╛ рдПрдХ рднрд╛рдЧ рдЖрд╣реЗ
PS
рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдЪрд╛:
- ┬л
Kubernetes рд╡рд░ рдЪрд╛рд▓рдгрд╛рд░реНтАНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рд╡рд┐рдХрд╕рдХрд╛рдВрд╕рд╛рдареА рд╕рд╛рдзрдиреЗ "; - ┬л
werf - Kubernetes рдордзреАрд▓ CI/CD рд╕рд╛рдареА рдЖрдордЪреЗ рд╕рд╛рдзрди (рд╡рд┐рд╣рдВрдЧрд╛рд╡рд▓реЛрдХрди рдЖрдгрд┐ рд╡реНрд╣рд┐рдбрд┐рдУ рдЕрд╣рд╡рд╛рд▓) "; - ┬л
рдЧрд╛рд░реНрдбрди v0.10.0: рддреБрдордЪреНрдпрд╛ рд▓реЕрдкрдЯреЙрдкрд▓рд╛ Kubernetes рдЪреА рдЧрд░рдЬ рдирд╛рд╣реА "; - ┬л
рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдЯрд┐рдкреНрд╕ рдЖрдгрд┐ рдпреБрдХреНрддреНрдпрд╛: рд╕реНрдерд╛рдирд┐рдХ рд╡рд┐рдХрд╛рд╕ рдЖрдгрд┐ рдЯреЗрд▓рд┐рдкреНрд░реЗрд╕реЗрдиреНрд╕рдмрджреНрджрд▓ ┬╗.
рд╕реНрддреНрд░реЛрдд: www.habr.com