рдиреЗрдЯрд┐рд╡ - рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде k8s-рдЖрдзрд╛рд░рд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдП-рдП-рд╕рд░реНрд╡рд┐рд╕

рдиреЗрдЯрд┐рд╡ - рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде k8s-рдЖрдзрд╛рд░рд┐рдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдП-рдП-рд╕рд░реНрд╡рд┐рд╕

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рдХрдВрдЯреЗрдирд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдкреНрд░рдореБрдЦ рдордВрдЪ рдмрди рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдФрд░ рдХрд╕реНрдЯрдо рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрднреА рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ, рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдирд┐рд░реНрдгрдп рд▓реЗрдирд╛ рд╣реЛрдЧрд╛ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдХреЗрд▓рд┐рдВрдЧ, рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдореБрджреНрджреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рдХреНрд▓рд╛рдЙрдб рдлрд╛рдЙрдВрдбреНрд░реА рдФрд░ рд╣реЗрд░реЛрдХреВ рдЬреИрд╕реЗ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ (PaaS) рд╕реЗ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИред

рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╣реИрдВ рдЬреЛ рдЕрдХреНрд╕рд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВред рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд PaaS рдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд░реВрдЯрд┐рдВрдЧ, рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕реЛрд░реНрд╕-рдЯреВ-рд╢рд┐рдк рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХреЛ PaaS рджреНрд╡рд╛рд░рд╛ рдПрдХ рдХрд╕реНрдЯрдо рдХрдВрдЯреЗрдирд░ рдЫрд╡рд┐ рдмрдирд╛рдХрд░, рдЙрд╕реЗ рддреИрдирд╛рдд рдХрд░рдХреЗ, рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдорд╛рд░реНрдЧ рдФрд░ DNS рдЙрдкрдбреЛрдореЗрди рд╕реЗрдЯ рдХрд░рдХреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдм рдХрдорд╛рдВрдб рдкрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ git push.

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ (рдЬрд╛рдирдмреВрдЭрдХрд░) рдРрд╕реЗ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдореБрдЦреНрдп рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рдореБрджрд╛рдп рд╕реНрд╡рдпрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдХреИрд╕реЗ рдХреЗрд▓реНрд╕реА рд╣рд╛рдИрдЯреЙрд╡рд░ рдиреЗ рдХрд╣рд╛:

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рд╕реНрдерд┐рддрд┐, рд▓реЗрдХрд┐рди рд╕рдорд╛рдкрди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдмрд┐рд▓реНрдб рдХрд╛ рдПрдХ рд╕рдореВрд╣ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрдВрдкрдирд┐рдпрд╛рдВ рднреА рджреЗрдЦрддреЗ рд╣реИрдВ рдЬреЛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП PaaS рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдУрдкрдирд╢рд┐рдлреНрдЯ рдФрд░ рд░реИрдВрдЪрд░ред рдмрдврд╝рддреЗ Kube-PaaS рдмрд╛рдЬрд╝рд╛рд░ рдХреЗ рдмреАрдЪ, Google рдФрд░ Pivotal рджреНрд╡рд╛рд░рд╛ рдЬреБрд▓рд╛рдИ 2018 рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд Native, рд░рд┐рдВрдЧ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдиреЗрдЯрд┐рд╡ Google рдФрд░ Pivotal рдХреЗ рдмреАрдЪ рдПрдХ рд╕рд╣рдпреЛрдЧ рдерд╛, рдЬрд┐рд╕рдореЗрдВ IBM, RedHat рдФрд░ Solo.im рдЬреИрд╕реА рдЕрдиреНрдп рдХрдВрдкрдирд┐рдпреЛрдВ рдХреА рдереЛрдбрд╝реА рдорджрдж рдорд┐рд▓реА рдереАред рдпрд╣ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ-рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╢реАрд░реНрд╖ рдкрд╛рдпрджрд╛рди рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рд╕рдорд╛рди PaaS рдЪреАрдЬреЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред Kubernetes рдмрд┐рд▓реНрдб рдХреЗ рд╡рд┐рдкрд░реАрдд, Knative рдХреЛ рдХрд┐рд╕реА рднреА рд╕рдВрдЧрдд Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдРрдб-рдСрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореВрд▓рдирд┐рд╡рд╛рд╕реА рдХреНрдпрд╛ рд╣реИ?

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

рдиреЗрдЯрд┐рд╡ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╖рдорддрд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

  • рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг (рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛)ред рдмрдирд╛рдПрдБ),
  • рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ (рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛)ред рд╕реЗрд╡рд┐рдд),
  • рдорд╛рдВрдЧ рдкрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдбрд┐рд▓реАрд╡рд░реА рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реНрдХреЗрд▓рд┐рдВрдЧ (рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рднреА рдкреНрд░рджрд╛рди рдХреА рдЧрдИ)ред рд╕реЗрд╡рд┐рдд),
  • рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ (рдШрдЯрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛)ред рдИрд╡реЗрдВрдЯреАрдЧ).

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

рд╕рд░реНрд╡рд┐рдВрдЧ рдХреА рдорджрдж рд╕реЗ, рдмреНрд▓реВ-рдЧреНрд░реАрди рдЯреНрд░реИрдлрд╝рд┐рдХ рд░реВрдЯрд┐рдВрдЧ рднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирдП рдФрд░ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреГрдердХреНрдХрд░рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рдЕрджреНрдпрддрди рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдиреЗрдЯрд┐рд╡ рд╕реНрд╡рдпрдВ рдПрдХ рд╕рдВрдЧрдд рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдЦрди рдХреЗ рд╕рдордп рдпрд╣ рд▓реЗрдЦ рд╕рдорд░реНрдерд┐рдд рд╣реИ рдЧреНрд▓реВ рдПрдкреАрдЖрдИ рдЧреЗрдЯрд╡реЗ ╨╕ рдЗрд╕реНрддрд┐рдпреЛ рд╕рд░реНрд╡рд┐рд╕ рдореЗрд╢. рдпрд╣ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдиреЗрдЯрд┐рд╡-рдкреНрд░рдмрдВрдзрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рддрдХ рд░реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдкреНрд░рд╡реЗрд╢ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ред

рдЗрд╕реНрддрд┐рдпреЛ рд╕рд░реНрд╡рд┐рд╕ рдореЗрд╢ рдЙрди рдиреЗрдЯрд┐рд╡ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рдирд┐рд░реНрднрд░рддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рдЗрд╕реНрддрд┐рдпреЛ рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдиреЗрдЯрд┐рд╡ рдХреЗрд╡рд▓ рдЧреЗрдЯрд╡реЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧреНрд▓реВ рдХреЛ рдиреЗрдЯрд┐рд╡ рдХреЗ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдорд╛рди рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдХреЗрд╡рд▓ рдиреЗрдЯрд┐рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ), рдЬрдмрдХрд┐ рдХрд╛рдлреА рдХрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдо рдкрд░рд┐рдЪрд╛рд▓рди рд▓рд╛рдЧрдд рд░рдЦрддрд╛ рд╣реИред

рдЖрдЗрдП рд╕реНрдЯреИрдВрдб рдкрд░ рдиреЗрдЯрд┐рд╡ рдХреА рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред рдореИрдВ GKE рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдПрдХ рддрд╛рдЬрд╝рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдБрдЧрд╛:

kubectl get namespace
NAME          STATUS   AGE
default       Active   21h
kube-public   Active   21h
kube-system   Active   21h

рдЖрдЗрдП рдиреЗрдЯрд┐рд╡ рдФрд░ рдЧреНрд▓реВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред рдпрд╣ рдХрд┐рд╕реА рднреА рдХреНрд░рдо рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

# ╤Б╤В╨░╨▓╨╕╨╝ Knative-Serving
kubectl apply -f 
 https://github.com/knative/serving/releases/download/v0.8.0/serving-core.yaml
namespace/knative-serving created
# ...
# ╤Б╤В╨░╨▓╨╕╨╝ Gloo
kubectl apply -f 
  https://github.com/solo-io/gloo/releases/download/v0.18.22/gloo-knative.yaml
namespace/gloo-system created
# ...

рд╣рдо рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдкреЙрдбреНрд╕ "рдЪрд╛рд▓реВ" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ:

kubectl get pod -n knative-serving
NAME                              READY   STATUS    RESTARTS   AGE
activator-5dd55958cc-fkp7r        1/1     Running   0          7m32s
autoscaler-fd66459b7-7d5s2        1/1     Running   0          7m31s
autoscaler-hpa-85b5667df4-mdjch   1/1     Running   0          7m32s
controller-85c8bb7ffd-nj9cs       1/1     Running   0          7m29s
webhook-5bd79b5c8b-7czrm          1/1     Running   0          7m29s
kubectl get pod -n gloo-system
NAME                                      READY   STATUS    RESTARTS   AGE
discovery-69548c8475-fvh7q                1/1     Running   0          44s
gloo-5b6954d7c7-7rfk9                     1/1     Running   0          45s
ingress-6c46cdf6f6-jwj7m                  1/1     Running   0          44s
knative-external-proxy-7dd7665869-x9xkg   1/1     Running   0          44s
knative-internal-proxy-7775476875-9xvdg   1/1     Running   0          44s

рдЧреНрд▓реВ рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рдЖрдЗрдП рдПрдХ рдСрдЯреЛ-рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдиреЗрдЯрд┐рд╡ рд╕рд░реНрд╡рд┐рд╕ рдмрдирд╛рдПрдВ (рдЪрд▓рд┐рдП рдЗрд╕реЗ kservice рдХрд╣рддреЗ рд╣реИрдВ) рдФрд░ рдЯреНрд░реИрдлрд┐рдХ рдХреЛ рдЙрд╕ рдкрд░ рд░реВрдЯ рдХрд░реЗрдВред

рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди+рд╕реЗрд╡рд╛+рдкреНрд░рд╡реЗрд╢ рдореЙрдбрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдиреЗрдЯрд┐рд╡ рд╕реЗрд╡рд╛рдПрдБ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рдорд╛рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред рд╣рдо рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ:

apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
 name: helloworld-go
 namespace: default
spec:
 template:
   spec:
     containers:
       - image: gcr.io/knative-samples/helloworld-go
         env:
           - name: TARGET
             Value: Knative user

рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛, рдлрд┐рд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛:

kubectl apply -f ksvc.yaml -n default

рд╣рдо рдЕрдкрдирд╛ 'рд╣реИрд▓реЛрд╡рд░реНрд▓реНрдб-рдЧреЛ' рдбрд┐рд▓реАрд╡рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдиреЗрдЯрд┐рд╡ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ kservice:

kubectl get pod -n default
NAME                                              READY   STATUS    RESTARTS   AGE
helloworld-go-fjp75-deployment-678b965ccb-sfpn8   2/2     Running   0          68s

рдЬрдм kservice рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╣рдорд╛рд░реА 'рд╣реИрд▓реЛрд╡рд░реНрд▓реНрдб-рдЧреЛ' рдЫрд╡рд┐ рд╡рд╛рд▓рд╛ рдкреЙрдб рд▓реЙрдиреНрдЪ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдЯреНрд░реИрдлрд╝рд┐рдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреЙрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рдПрдЧреАред рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрджрд┐ рдПрдХ рд╕рд╛рде рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдкреЙрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рдЬрд╛рдПрдЧреАред

kubectl get ingresses.networking.internal.knative.dev -n default
NAME            READY   REASON
helloworld-go   True

рдиреЗрдЯрд┐рд╡ рдЖрдВрддрд░рд┐рдХ рдиреЗрдЯрд┐рд╡ рдПрдкреАрдЖрдИ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ 'рдЗрдирдЧреНрд░реЗрд╕' рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рдЗрдирдЧреНрд░реЗрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред рдЧреНрд▓реВ рдЗрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ PaaS рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмреНрд▓реВ-рдЧреНрд░реАрди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдореЙрдбрд▓, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЯреАрдПрд▓рдПрд╕ рдкреНрд░рд╡рд░реНрддрди, рдЯрд╛рдЗрдордЖрдЙрдЯ рдФрд░ рдЕрдиреНрдп рдЙрдиреНрдирдд рд░реВрдЯрд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкреЙрдб рдЧрд╛рдпрдм рд╣реЛ рдЧрдП рд╣реИрдВ (рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдирд╣реАрдВ рдерд╛):

kubectl get pod -n default

No resources found.
kubectl get deployment -n default
NAME                             DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
helloworld-go-fjp75-deployment   0         0         0            0           9m46s

рдЕрдВрддрддрдГ рд╣рдо рдЙрди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ. рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдиреЗрдЯрд┐рд╡ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд▓рд┐рдП рдпреВрдЖрд░рдПрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ glooctl:

glooctl proxy url --name knative-external-proxy
http://35.190.151.188:80

рдмрд┐рдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпреЗ glooctl рдЖрдк рдХреНрдпреВрдм рд╕реЗрд╡рд╛ рдореЗрдВ рдкрддрд╛ рдФрд░ рдкреЛрд░реНрдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

kubectl get svc -n gloo-system knative-external-proxy
NAME                     TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)                      AGE
knative-external-proxy   LoadBalancer   10.16.11.157   35.190.151.188   80:32168/TCP,443:30729/TCP   77m

рдЖрдЗрдП рдХрд░реНрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рдбреЗрдЯрд╛ рдЪрд▓рд╛рдПрдВ:

curl -H "Host: helloworld-go.default.example.com" http://35.190.151.188
Hello Knative user!

рдиреЗрдЯрд┐рд╡ рдЧреНрд▓реВ рдХреЗ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди, рдкреВрд░реНрдг-рд╕реНрдЯреИрдХ рдПрдкреАрдЖрдИ рдЧреЗрдЯрд╡реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ PaaS рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреЛрд╕реНрдЯ рдиреЗ рдХреЗрд╡рд▓ рдиреЗрдЯрд┐рд╡ рдХреЗ рд╡реНрдпрд╛рдкрдХ рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рд╕рддрд╣ рдХреЛ рдЦрд░реЛрдВрдЪ рджрд┐рдпрд╛ рд╣реИред рдЧреНрд▓реВ рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА!

рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдиреЗрдЯрд┐рд╡ рдЕрднреА рднреА рдПрдХ рдпреБрд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдЗрд╕рдХреА рдЯреАрдо рд╣рд░ рдЫрд╣ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд░рддреА рд╣реИ, рдФрд░ рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЯреАрдПрд▓рдПрд╕ рдкрд░рд┐рдирд┐рдпреЛрдЬрди, рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реНрдХреЗрд▓рд┐рдВрдЧред рдЗрд╕ рдмрд╛рдд рдХреА рдЕрдЪреНрдЫреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐, рдХрдИ рдХреНрд▓рд╛рдЙрдб рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╣рдпреЛрдЧ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдФрд░ Google рдХреА рдирдИ рдХреНрд▓рд╛рдЙрдб рд░рди рдкреЗрд╢рдХрд╢ рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдФрд░ PaaS рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд┐рд╡ рдкреНрд░рд╛рдердорд┐рдХ рд╡рд┐рдХрд▓реНрдк рдмрди рд╕рдХрддрд╛ рд╣реИред рд╕рдорд╛рдЪрд╛рд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ!

рд╕рд╛рдЙрдердмреНрд░рд┐рдЬ рдХреЗ рд╕рдВрдкрд╛рджрдХреЛрдВ рд╕реЗ
рдкрд╛рдардХреЛрдВ рдХреА рд░рд╛рдп рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЖрдкрд╕реЗ рдиреЗрдЯрд┐рд╡, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕, рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓реЗрдЦреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ:

рдХреЗрд╡рд▓ рдкрдВрдЬреАрдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реА рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдЗрди рдЗрди рдХрд░реЗрдВрдХреГрдкрдпрд╛ред

рдХреНрдпрд╛ рдореБрдЭреЗ рдиреЗрдЯрд┐рд╡ рдФрд░ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдФрд░ рдЧрд╛рдЗрдб рд▓рд┐рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП?

  • рд╣рд╛рдБ рдХреГрдкрдпрд╛ред

  • рдЬреА рдирд╣реАрдВ, рдзрдиреНрдпрд╡рд╛рджред

28 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдорддрджрд╛рди рдХрд┐рдпрд╛ред 4 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд░рд╣реЗред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ