рдбреЗрдв рд╡рд░реНрд╖ рдЕрдШрд┐, рдорд╛рд░реНрдЪ 5, 2018 рдорд╛, рдЧреБрдЧрд▓рд▓реЗ CI/CD рдирд╛рдордХ рдпрд╕рдХреЛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдкрд╣рд┐рд▓реЛ рдЕрд▓реНрдлрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдЧрд░реНтАНрдпреЛред
NB: рд╡реИрд╕реЗ, рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рд╣рд╛рдореНрд░реЛ рд╕рд╛рдорд╛рдиреНрдп рдорд╛ Skaffold рдмрд╛рд░реЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХреБрд░рд╛ рдЧрд░рд┐рд╕рдХреЗрдХрд╛ рдЫреМрдВ
рд╕рд┐рджреНрдзрд╛рдиреНрддред рдЙрджреНрджреЗрд╢реНрдп рд░ рдХреНрд╖рдорддрд╛рд╣рд░реВ
рддреНрдпрд╕реЛрднрдП, рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рднрдиреНрдиреБрдкрд░реНрджрд╛, Skaffold рд▓реЗ CI/CD рдЪрдХреНрд░ (рдирд┐рд░реНрдорд╛рдг, рдкреБрд╢, рдбрд┐рдкреНрд▓реЛрдп рдЪрд░рдгрд╣рд░реВрдорд╛) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрд░реНрдиреЗ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджрдЫ, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рддрддреНрдХрд╛рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджреИ, рдЕрд░реНрдерд╛рддреНред рдкрдЫрд┐рд▓реНрд▓реЛ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рдкрд░рд┐рдгрд╛рдо рдЪрд╛рдБрдбреИ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ - Kubernetes рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд░реВрдкрдорд╛ред рд░ рдпрд╕рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рд╕рд░реНрдХрд┐рдЯрд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдЫ (рджреЗрд╡, рдЪрд░рдг, рдЙрддреНрдкрд╛рджрди ...), рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ Skaffold рд▓реЗ рд░реЛрд▓рдЖрдЙрдЯрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдореНрдмрдиреНрдзрд┐рдд рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрджрдЫред
Skaffold рдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб Go рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ,
рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд░ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд╣реЗрд░реМрдВред рдкрд╣рд┐рд▓реЛ рдирд┐рдореНрди рд╕рдорд╛рд╡реЗрд╢:
- Skaffold CI/CD рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред
- рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреГрд╖реНрдарднреВрдорд┐рдорд╛ рд╕реНрд░реЛрдд рдХреЛрдбрдорд╛ рднрдПрдХрд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЕрдиреБрдЧрдорди рдЧрд░реНрди рд░ рдХрдиреНрдЯреЗрдирд░ рдЫрд╡рд┐рд╣рд░реВрдорд╛ рдХреЛрдб рдЬрдореНрдорд╛ рдЧрд░реНрдиреЗ, рдпреА рдЫрд╡рд┐рд╣рд░реВрд▓рд╛рдИ рдбрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрдиреЗ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ Kubernetes рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдбрд┐рдкреНрд▓реЛрдп рдЧрд░реНрдиреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд▓рд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
- рдХрдиреНрдЯреЗрдирд░рдорд╛ рдХрд╛рд░реНрдпрд░рдд рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд╕рдБрдЧ рднрдгреНрдбрд╛рд░рдорд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рдЧрд░реНрджрдЫред
- рдХрдиреНрдЯреЗрдирд░-рд╕рдВрд░рдЪрдирд╛-рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрджрдЫред
- рдкреЛрд░реНрдЯрд╣рд░реВ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реНрдиреБрд╣реЛрд╕реНред
- рдХрдиреНрдЯреЗрдирд░рдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд▓рдЧрд╣рд░реВ рдкрдвреНрдЫред
- Java, Node.js, Python, Go рдорд╛ рд▓реЗрдЦрд┐рдПрдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдбрд┐рдмрдЧ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрджрдЫред
рдЕрдм рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдмрд╛рд░реЗ:
- Skaffold рдЖрдлреИрдВрдорд╛ рдХреБрдиреИ рдХреНрд▓рд╕реНрдЯрд░-рд╕рд╛рдЗрдб рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдЫреИрдирдиреНред рддреНрдпреЛ рд╣реЛ, рдпреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди Kubernetes рдердк рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрдиред
- рддрдкрд╛рдИрдВрдХреЛ рдЖрд╡реЗрджрдирдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рднрд┐рдиреНрди рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╣рд░реВред рдХреЗ рддрдкрд╛рдИрдВрд▓реЗ рд╡рд┐рдХрд╛рд╕ рдЧрд░рд┐рд░рд╣рдБрджрд╛ рд╕реНрдерд╛рдиреАрдп Minikube рдорд╛ рдХреЛрдб рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╕реНрдЯреЗрдЬ рд╡рд╛ рдЙрддреНрдкрд╛рджрди рдЧрд░реНрди? рдпрд╕ рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рддреНрдпрд╣рд╛рдБ рдЫрдиреН
рдкреНрд░реЛрдлрд╛рдЗрд▓рд╣рд░реБ рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ, рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рд░ рдЭрдгреНрдбрд╛рд╣рд░реВ, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдПрдЙрдЯрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рднрд┐рдиреНрди рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред - CLIред YAML рдорд╛ рдХрдиреНрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд░ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ рдорд╛рддреНрд░ред рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рддрдкрд╛рдИрдВрд▓реЗ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕рд╣рд░реВрдХреЛ рд╕рдиреНрджрд░реНрднрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ GUI , рддрдерд╛рдкрд┐, рдпрд╕ рд╕рдордпрдорд╛ рдпреЛ рд╕рдореНрднрд╡рддрдГ рдХрд╕реИрд▓рд╛рдИ рдЙрд╣рд╛рдБрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЫ рднрдиреНрдиреЗ рд╣реЛ, рддрд░ рд╡рд╛рд╕реНрддрд╡рдорд╛ рд╣реЛрдЗрдиред - рдореЛрдбреБрд▓рд░рд┐рдЯреАред Skaffold рдПрдХ рд╕реНрдЯреНрдпрд╛рдиреНрдбрдЕрд▓реЛрди рд╣рд╛рд░реНрд╡реЗрд╕реНрдЯрд░ рд╣реЛрдЗрди, рддрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рд╡рд╛ рдЕрд╡рд╕реНрдерд┐рдд рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрдЫред
рдкрдЫрд┐рд▓реНрд▓реЛрдХреЛ рджреГрд╖реНрдЯрд╛рдиреНрдд:
- рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЪрд░рдгрдорд╛ рддрдкрд╛рдИрдВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:
- рдбрдХрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдХрд╛рдирд┐рдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╡рд╛ рдЧреБрдЧрд▓ рдХреНрд▓рд╛рдЙрдб рдмрд┐рд▓реНрдбрдорд╛;
- рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ Bazel;
- Jib Maven рд░ Jib Gradle рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рд╡рд╛ Google Cloud Build рдорд╛;
- рдЕрдиреБрдХреВрд▓рди рдирд┐рд░реНрдорд╛рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдЪрд▓реНрдЫрдиреНред рдпрджрд┐ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдЕрд░реНрдХреЛ (рдердк рд▓рдЪрд┐рд▓реЛ/рдкрд░рд┐рдЪрд┐рдд/...) рдирд┐рд░реНрдорд╛рдг рд╕рдорд╛рдзрд╛рди рдЪрд▓рд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ, рдпрд╕рд▓рд╛рдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ рддрд╛рдХрд┐ Skaffold рд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕реБрд░реБ рдЧрд░реНрдЫ (
рджрд╕реНрддрд╛рд╡реЗрдЬрдмрд╛рдЯ рдЙрджрд╛рд╣рд░рдг )ред рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рдХрд▓реЗрдХреНрдЯрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬреБрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрд▓ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ;
- рдкрд░реАрдХреНрд╖рдг рдЪрд░рдгрдорд╛, рдкрд╣рд┐рд▓реЗ рдиреИ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХреЛ рдЫ
рдХрдиреНрдЯреЗрдирд░-рд╕рдВрд░рдЪрдирд╛-рдкрд░реАрдХреНрд╖рдг ; - рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рдореНрди рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫ:
- рдХреБрдмреЗрдХреНрдЯрд▓;
- рд╣реЗрд▓рдо;
- рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдзрдиреНрдпрд╡рд╛рдж, Skaffold рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рднрдиреНрди рд╕рдХрд┐рдиреНрдЫ CI/CD рдирд┐рд░реНрдорд╛рдгрдХреЛ рд▓рд╛рдЧрд┐ рдврд╛рдБрдЪрд╛ред рдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдЫ рдЬрдм рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ (рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛рдЧрдЬрд╛рддрдмрд╛рдЯ):
Skaffold рдХреЛ рдХрд╛рдо рд╕рд╛рдорд╛рдиреНрдп рд╕рд░реНрддрд╣рд░реВрдорд╛ рдХрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ?
- рдЙрдкрдпреЛрдЧрд┐рддрд╛рд▓реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрджрдЫред рдпрджрд┐ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдкрд░рд┐рдорд╛рд░реНрдЬрдирд╣рд░реВ рдЧрд░рд┐рдПрдорд╛, рддрд┐рдиреАрд╣рд░реВ Kubernetes рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреЛрдбрд╕рдБрдЧ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬ рд╣реБрдиреНрдЫрдиреНред рдпрджрд┐ рд╕рдореНрднрд╡ рдЫ рднрдиреЗ, рдЫрд╡рд┐ рдкреБрди: рд╕рдВрдпреЛрдЬрди рдмрд┐рдирд╛ред рдЕрдиреНрдпрдерд╛, рдирдпрд╛рдБ рдЫрд╡рд┐ рдЬрдореНрдорд╛ рд╣реБрдиреНрдЫред
- рднреЗрд▓рд╛ рдЧрд░рд┐рдПрдХреЛ рдЫрд╡рд┐ рдХрдиреНрдЯреЗрдирд░-рд╕рдВрд░рдЪрдирд╛-рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЬрд╛рдБрдЪ рдЧрд░рд┐рдиреНрдЫ, рдЯреНрдпрд╛рдЧ рдЧрд░реА рдбрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реАрдорд╛ рдкрдард╛рдЗрдиреНрдЫред
- рдпрд╕ рдкрдЫрд┐, рдЫрд╡рд┐ рддреИрдирд╛рдд рдЧрд░рд┐рдПрдХреЛ рдЫ - Kubernetes рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рддреИрдирд╛рддред
- рдпрджрд┐ рдкреНрд░рдХреНрд╖реЗрдкрдг рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рд╛рд░рдореНрдн рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ
skaffold dev
, рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдЕрдиреБрдкреНрд░рдпреЛрдЧрдмрд╛рдЯ рд▓рдЧрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдерд╛рд▓реНрдЫреМрдВ, рд░ Skaffold рд▓реЗ рд╕рдмреИ рдХрд╛рд░реНрдпрд╣рд░реВ рдкреБрди: рджреЛрд╣реЛрд░реНрдпрд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреНрдЫред
Skaffold рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдореБрдЦреНрдп рдЪрд░рдгрд╣рд░реВрдХреЛ рдЪрд┐рддреНрд░рдг
рдЕрднреНрдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред Skaffold рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджреИ
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 рд▓реЗ рдЧреЛ рдХреЛрдб рд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдпреЛ рдХреЛрдб рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рд╛рдзрд╛рд░рдг рдбрдХрд░рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ:
~/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/
, рдЕрд░реНрдерд╛рддреН рдЫрд╡рд┐ рд╕рдЩреНрдХрд▓рди рдЧрд░рд┐рдПрдХреЛ рд╕рдиреНрджрд░реНрдн рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫред - рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ рдЪрд░рдгрдорд╛, рдпреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ рдХрд┐ рд╣рд╛рдореА рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ kubectl рд░ рдорд╛рд╕реНрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВред
-
PortForward
: рд╣рд╛рдореА рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреЛрд░реНрдЯрд╣рд░реВ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛ рдЬрд╕реНрддреИkubectl port-forward
, рд╣рд╛рдореА Skaffold рд▓рд╛рдИ рдпреЛ рдЖрджреЗрд╢ рдХрд▓ рдЧрд░реНрди рдирд┐рд░реНрджреЗрд╢рди рджрд┐рдиреНрдЫреМрдВред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рд╕реНрдерд╛рдиреАрдп рдкреЛрд░реНрдЯ 9000 рд▓рд╛рдИ 8080 рдорд╛ рдбрд┐рдкреНрд▓реЛрдпрдореЗрдиреНрдЯ рдирд╛рдордХреЛ рд╕рд╛рде рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░рд┐рдиреНрдЫредleeroy-web
.
рдпреЛ рд╕реБрд░реБ рдЧрд░реНрдиреЗ рд╕рдордп рд╣реЛ skaffold dev
: рдЯреЛрд▓реАрд▓реЗ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ "рдлрд┐рдбрдмреНрдпрд╛рдХ рд▓реВрдк" рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫ, рдЕрд░реНрдерд╛рддреНред рдпрд╕рд▓реЗ рд╕рдмреИ рдХреБрд░рд╛ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреЗ рд░ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдбрд┐рдкреНрд▓реЛрдп рдЧрд░реНрдиреЗ рдорд╛рддреНрд░ рд╣реЛрдЗрди, рддрд░ рдЕрд╣рд┐рд▓реЗрдХреЛ рдкреЛрдбрдХреЛ рдЕрд╡рд╕реНрдерд╛рдмрд╛рд░реЗ рдкрдирд┐ рдмрддрд╛рдЙрдиреЗрдЫ, рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрдиреЗ рд░ рдкреЛрдбрд╣рд░реВрдХреЛ рдЕрд╡рд╕реНрдерд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрдиреЗред
рдпрд╣рд╛рдБ рдкреНрд░рдХреНрд╖реЗрдкрдг рдкрд░рд┐рдгрд╛рдо рдЫ skaffold dev --port-forward
рдкреБрди: рд╕рдВрдпреЛрдЬрди рдЧрд░реНрджрд╛:
рдкрд╣рд┐рд▓реЗ, рддрдкрд╛рдЗрдБ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рдХреНрдпрд╛рд╕ рдкреНрд░рдпреЛрдЧ рднрдЗрд░рд╣реЗрдХреЛ рдЫред рдЕрд░реНрдХреЛ, рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдПрд╕реЗрдореНрдмрд▓, рдбрд┐рдкреНрд▓реЛрдЗ, рд░ рдкреЛрд░реНрдЯрд╣рд░реВ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░рд┐рдиреНрдЫред рддреЛрдХрд┐рдПрджреЗрдЦрд┐ --port-forward
, рд╕реНрдХрд╛рдлреЛрд▓реНрдбрд▓реЗ рдкреЛрд░реНрдЯрд▓рд╛рдИ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реНрдпреЛ 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!!!
рдПрдХреИ рд╕рдордпрдорд╛, Skaffold рдЖрдлреИрдВрд▓реЗ рдХрдиреНрд╕реЛрд▓рдорд╛ рдкрд╣рд┐рд▓реЗ рдЬрд╕реНрддреИ рд╕рдорд╛рди рдЪреАрдЬ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдпреЛ, рдПрдХ рдмрд┐рдиреНрджреБрдХреЛ рдЕрдкрд╡рд╛рджрдХреЛ рд╕рд╛рде: рдпреЛ рдХреЗрд╡рд▓ рд░реЛрд▓ рдЖрдЙрдЯ рднрдпреЛред leeroy-app
, рд░ рд╕рдмреИ рдПрдХреИ рдкрдЯрдХ рд╣реЛрдЗрдиред
рдердк рдЕрднреНрдпрд╛рд╕
рдпреЛ рдкрдирд┐ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЫ рдХрд┐ рдирдпрд╛рдБ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛, Skaffold рдХреЛ рд▓рд╛рдЧрд┐ рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдмреБрдЯрд╕реНрдЯреНрд░реНрдпрд╛рдк рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред init
, рдЬреБрди рдзреЗрд░реИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫред рдердк рд░реВрдкрдорд╛, рддрдкрд╛рдЗрдБ рдзреЗрд░реИ рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ: рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рдЪрд░рдгрдорд╛ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред run
(рдЙрд╕реНрддреИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд╕реНрддреИ dev
, рдХреЗрд╡рд▓ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрджреИрди), рдлрд░рдХ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ред
рдХрд╛рдЯрд╛рдЪреЛрдбрд╛ рдорд╛ рдЫ
Skaffold рдХреЛ рд▓рд╛рдЧреА рдПрдХ рд╕рдореНрднрд╛рд╡рд┐рдд рдкреНрд░рдпреЛрдЧ рдХреЗрд╕ рд░рд┐рдореЛрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдорд╛ рд╡рд┐рдХрд╛рд╕ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдЫред рд╕рдмреИрдЬрдирд╛рд▓рд╛рдИ рдЖрдлреНрдиреИ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░рдорд╛ Minikube рдЪрд▓рд╛рдЙрди рд╕рд╣рдЬ рд╣реБрдБрджреИрди, рддреНрдпрд╕рдкрдЫрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдпрд╕рд▓рд╛рдИ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЖрд╢рд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН... рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, Skaffold рд▓реЗ рд╕рдорд╕реНрдпрд╛рд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдЫ, рдЬрд╕рд▓рд╛рдИ рдкреБрд╖реНрдЯрд┐ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, Reddit рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рд╣рд░реВрджреНрд╡рд╛рд░рд╛, рд╣рд╛рдореАрд╕рдБрдЧ рдЫред рдкрд╣рд┐рд▓реЗ рдиреИ рдЫрд▓рдлрд▓
рд░ рднрд┐рддреНрд░
рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛
Skaffold рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реЛ рдЬрд╕рд▓реЗ Kubernetes рдорд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрджрдЫ рд░ рдореБрдЦреНрдп рд░реВрдкрдорд╛ рд╡рд┐рдХрд╛рд╕ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрдорд╛ рдХреЗрдиреНрджреНрд░рд┐рдд рдЫред рдпрд╕рд▓реЗ "рдЫреЛрдЯреЛ" рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫ рдЬрд╕рд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рдЖрдзрд╛рд░рднреВрдд рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрдЫ, рддрд░ рдпрджрд┐ рдЪрд╛рд╣рд┐рдпреЛ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдареВрд▓рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред CI/CD рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдорд╛ Skaffold рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕реНрдкрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдордзреНрдпреЗ рдПрдХрдХреЛ рд░реВрдкрдорд╛
Skaffold рд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ GitHub рдорд╛ рд▓рдЧрднрдЧ 8000+ рддрд╛рд░рд╛рд╣рд░реВ рдЫрдиреН, Google рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рд╣реЛ рд░ рдпрд╕рдХреЛ рдЕрдВрд╢ рд╣реЛ
PS
рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ рдкрдирд┐ рдкрдвреНрдиреБрд╣реЛрд╕реН:
- ┬л
Kubernetes рдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдХрд░рдг ┬╗; - ┬л
werf - Kubernetes рдорд╛ CI / CD рдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореНрд░реЛ рдЙрдкрдХрд░рдг (рдЕрд╡рд▓реЛрдХрди рд░ рднрд┐рдбрд┐рдпреЛ рд░рд┐рдкреЛрд░реНрдЯ) ┬╗; - ┬л
рдмрдЧреИрдЪрд╛ v0.10.0: рддрдкрд╛рдИрдВрдХреЛ рд▓реНрдпрд╛рдкрдЯрдкрд▓рд╛рдИ Kubernetes рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди ┬╗; - ┬л
Kubernetes рдЯрд┐рдкреНрд╕ рд░ рдЯреНрд░рд┐рдХреНрд╕: рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рд░ Telepresence рдмрд╛рд░реЗрдорд╛ "ред
рд╕реНрд░реЛрдд: www.habr.com