
рдХрдВрдЯреЗрдирд░ рддреИрдирд╛рддреАрд╕рд╛рдареА Kubernetes рд╣реЗ рдирд┐рдГрд╕рдВрд╢рдпрдкрдгреЗ рдкреНрд░рдмрд│ рд╡реНрдпрд╛рд╕рдкреАрда рдмрдирд▓реЗ рдЖрд╣реЗ. рд╣реЗ рддреНрдпрд╛рдЪреЗ API рдЖрдгрд┐ рд╕рд╛рдиреБрдХреВрд▓ рдирд┐рдпрдВрддреНрд░рдХ рд╡рд╛рдкрд░реВрди рдЬрд╡рд│рдЬрд╡рд│ рдХрд╛рд╣реАрд╣реА рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдЬреЗ рд╕рд╛рдиреБрдХреВрд▓ рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╕рд╣ рддреНрдпрд╛рдЪреЗ API рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рддрд╛рдд.
рддрдерд╛рдкрд┐, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдиреЗ рдЕрджреНрдпрд╛рдк рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдиреЗрдордХреЗ рдХрд╕реЗ рдЙрдкрдпреЛрдЬрд┐рдд, рдХреЙрдиреНрдлрд┐рдЧрд░, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдЖрдгрд┐ рд╕реНрдХреЗрд▓ рдХрд░рд╛рд╡реЗ рдпрд╛рдмрджреНрджрд▓ рддрдкрд╢реАрд▓рд╡рд╛рд░ рдирд┐рд░реНрдгрдп рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдХреЗрд▓рд┐рдВрдЧ, рд╕рдВрд░рдХреНрд╖рдг рдЖрдгрд┐ рд░рд╣рджрд╛рд░реА рдкреНрд░рд╡рд╛рд╣рд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рд╡рд┐рд╡реЗрдХрдмреБрджреНрдзреАрдиреБрд╕рд╛рд░ рд░рд╛рд╣рддрд╛рдд. рд╣реЗ Cloud Foundry рдЖрдгрд┐ Heroku рд╕рд╛рд░рдЦреНрдпрд╛ рд╕реЗрд╡рд╛ (PaaS) рдореНрд╣рдгреВрди рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордкреЗрдХреНрд╖рд╛ Kubernetes рд╡реЗрдЧрд│реЗ рдХрд░рддреЗ.
рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордордзреНрдпреЗ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлреЗрд╕ рдЖрд╣реЗ рдЖрдгрд┐ рддреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрд╕рд╛рдареА рдЖрд╣реЗрдд рдЬреЗ рдмрд╣реБрддреЗрдХ рд╡реЗрд│рд╛ рд╡реИрдпрдХреНрддрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рдд рдЧреБрдВрддрд▓реЗрд▓реЗ рдЕрд╕рддрд╛рдд. рд░реВрдЯрд┐рдВрдЧ, рдЙрдкрдпреЛрдЬрди рдЖрдгрд┐ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд PaaS рдкреНрд░рдгрд╛рд▓реАрджреНрд╡рд╛рд░реЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╕рд╛рдареА рдкрд╛рд░рджрд░реНрд╢рдХрдкрдгреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.
рд╕реНрддреНрд░реЛрдд-рдЯреВ-рд╢рд┐рдк рд╡рд░реНрдХрдлреНрд▓реЛ PaaS рджреНрд╡рд╛рд░реЗ рд╕рд╛рдиреБрдХреВрд▓ рдХрдВрдЯреЗрдирд░ рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХрд░реВрди, рддреА рддреИрдирд╛рдд рдХрд░реВрди, рдирд╡реАрди рдорд╛рд░реНрдЧ рд╕реЗрдЯ рдХрд░реВрди рдЖрдгрд┐ рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рд░рд╣рджрд╛рд░реАрд╕рд╛рдареА DNS рд╕рдмрдбреЛрдореЗрдирджреНрд╡рд╛рд░реЗ рд╣рд╛рддрд╛рд│рд▓реЗ рдЬрд╛рддреЗ. рд╣реЗ рд╕рд░реНрд╡ рдЖрджреЗрд╢рд╛рдиреБрд╕рд╛рд░ рд╕реБрд░реВ рдХреЗрд▓реЗ рдЖрд╣реЗ git push.
Kubernetes (рдЬрд╛рдгреВрдирдмреБрдЬреВрди) рдЕрд╢рд╛ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рдлрдХреНрдд рдореБрдЦреНрдп рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдХреНрд╕ рдкреБрд░рд╡рддреЛ, рдЬреНрдпрд╛рдореБрд│реЗ рд╕рдореБрджрд╛рдпрд╛рд▓рд╛ рд╕реНрд╡рддрдГрдЪреЗ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕ рдореЛрдХрд│реАрдХ рдорд┐рд│рддреЗ. рдХрд╕реЗ :
Kubernetes рд╣реЗ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╡реНрдпрд╛рд╕рдкреАрда рдЖрд╣реЗ. рдкреНрд░рд╛рд░рдВрдн рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡реЛрддреНрддрдо рд╕реНрдерд┐рддреА, рдкрд░рдВрддреБ рдкреВрд░реНрдг рдирд╛рд╣реА.
рдкрд░рд┐рдгрд╛рдореА, рдЖрдореНрд╣реА Kubernetes рдмрд┐рд▓реНрдбрдЪрд╛ рдПрдХ рд╕рдореВрд╣ рдкрд╛рд╣рддреЛ, рддрд╕реЗрдЪ OpenShift рдЖрдгрд┐ Rancher рд╕рд╛рд░рдЦреНрдпрд╛ Kubernetes рд╕рд╛рдареА PaaS рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдгрд╛рд▒реНрдпрд╛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрдВрдкрдиреНрдпрд╛ рдкрд╛рд╣рддреЛ. рд╡рд╛рдврддреНрдпрд╛ Kube-PaaS рдорд╛рд░реНрдХреЗрдЯрдордзреНрдпреЗ, Google рдЖрдгрд┐ Pivotal рджреНрд╡рд╛рд░реЗ рдЬреБрд▓реИ 2018 рдордзреНрдпреЗ рд╕реНрдерд╛рдкрди рдХреЗрд▓реЗрд▓реА Knative, рд░рд┐рдВрдЧрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдд рдЖрд╣реЗ.
Knative рд╣реЗ IBM, RedHat рдЖрдгрд┐ Solo.im рд╕рд╛рд░рдЦреНрдпрд╛ рдЗрддрд░ рдХрдВрдкрдиреНрдпрд╛рдВрдЪреНрдпрд╛ рдереЛрдбреНрдпрд╛ рдорджрддреАрд╕рд╣ Google рдЖрдгрд┐ Pivotal рдпрд╛рдВрдЪреНрдпрд╛рддреАрд▓ рд╕рд╣рдХрд╛рд░реНрдп рд╣реЛрддреЗ. рд╣реЗ рд╕рд░реНрд╡реНрд╣рд░рд▓реЗрд╕ рдХреЙрдореНрдкреНрдпреБрдЯрд┐рдВрдЧ-рдЖрдзрд╛рд░рд┐рдд рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╕рд╛рдареА рдЙрддреНрдХреГрд╖реНрдЯ рд╕рдорд░реНрдердирд╛рд╕рд╣ Kubernetes рд▓рд╛ рд╕рдорд╛рди PaaS рдЧреЛрд╖реНрдЯреА рдСрдлрд░ рдХрд░рддреЗ. Kubernetes рдмрд┐рд▓реНрдбрдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, Knative рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕реБрд╕рдВрдЧрдд Kubernetes рдХреНрд▓рд╕реНрдЯрд░рд╡рд░ рдЕреЕрдб-рдСрди рдореНрд╣рдгреВрди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕рдВрд╕рд╛рдзрдирд╛рдВрджреНрд╡рд╛рд░реЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
Knative рдореНрд╣рдгрдЬреЗ рдХрд╛рдп?
Knative рдЪреЗ рд╡рд░реНрдгрди "рдЖрдзреБрдирд┐рдХ рд╕рд░реНрд╡реНрд╣рд░рд▓реЗрд╕ рдХрдВрдкреНрдпреБрдЯрд┐рдВрдЧ рд╡рд╛рдкрд░реВрди рд╡рд░реНрдХрд▓реЛрдб рд╡рд┐рддрд░реАрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕-рдЖрдзрд╛рд░рд┐рдд рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо" рдЕрд╕реЗ рдХреЗрд▓реЗ рдЖрд╣реЗ. рдиреЗрдЯрд┐рд╡реНрд╣, рд╕реНрд╡рддрдГрд▓рд╛ рдЕрд╕реЗ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдореНрд╣рдгреВрди рдмрд┐рд▓рд┐рдВрдЧ рдХрд░рддрд╛рдирд╛, рд╕рдорд╡рд░реНрддреА HTTP рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рдХрдВрдЯреЗрдирд░ рдСрдЯреЛрд╕реНрдХреЗрд▓ рдХрд░рддреЗ. рди рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рд╕реЗрд╡рд╛ рд╢реЗрд╡рдЯреА рд╢реВрдиреНрдпрд╛рд╡рд░ рдпреЗрддрд╛рдд, рд╕рд░реНрд╡реНрд╣рд░рд▓реЗрд╕-рд╕реНрдЯрд╛рдИрд▓ рдСрди-рдбрд┐рдорд╛рдВрдб рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд.
Knative рдордзреНрдпреЗ рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕рдЪрд╛ рд╕рдВрдЪ рдЕрд╕рддреЛ рдЬреЛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЛ рдЖрдгрд┐ рдЦрд╛рд▓реАрд▓ рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЛ:
- рд╕реНрддреНрд░реЛрдд рдХреЛрдбрдордзреВрди рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрдпрд╛рд░ рдХрд░рдгреЗ (рдШрдЯрдХрд╛рджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реЗ рддрдпрд╛рд░ рдХрд░рд╛),
- рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╡рд░ рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рдЯреНрд░реЕрдлрд┐рдХрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рдгреЗ (рдШрдЯрдХрд╛рджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реЗ рд╕реЗрд╡рд╛),
- рдорд╛рдЧрдгреАрдиреБрд╕рд╛рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдЪреЗ рд╡рд┐рддрд░рдг рдЖрдгрд┐ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рд╕реНрдХреЗрд▓рд┐рдВрдЧ (рдШрдЯрдХрд╛рджреНрд╡рд╛рд░реЗ рджреЗрдЦреАрд▓ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЬрд╛рддреЗ рд╕реЗрд╡рд╛),
- рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд╛рдБрдЪ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА (рдШрдЯрдХрд╛рджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реЗ) рдХрд╛рд░реНрдпрдХреНрд░рдорд╛рдВрдЪреЗ рд╕реНрддреНрд░реЛрдд рдУрд│рдЦрдгреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо).
рдПрдХ рдкреНрд░рдореБрдЦ рдШрдЯрдХ рдореНрд╣рдгрдЬреЗ рд╕рд░реНрд╡реНрд╣рд┐рдВрдЧ, рдЬреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА рддрд░рддреВрдж, рд╕реНрд╡рдпрдВ-рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдЖрдгрд┐ рд░рд╣рджрд╛рд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ. Knative рдЗрдВрд╕реНрдЯреЙрд▓ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЕрдЬреВрдирд╣реА Kubernetes API рдордзреНрдпреЗ рдкреВрд░реНрдг рдкреНрд░рд╡реЗрд╢ рдЖрд╣реЗ, рдЬреНрдпрд╛рдореБрд│реЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдорд┐рд│рддреЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рд░реНрдЧ, рдЖрдгрд┐ Knative рд╕реЗрд╡рд╛ рдбреАрдмрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджреЗрдЦреАрд▓ рдХрд╛рд░реНрдп рдХрд░рддреЗ, рдпрд╛ рд╕реЗрд╡рд╛ рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рдорд╛рди API рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡реНрд╕рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рддреЗ (рдореЙрдбреНрдпреВрд▓, рд╕реЗрд╡рд╛ рдЗ.).
рд╕рд░реНрд╡реНрд╣рд┐рдВрдЧрдЪреНрдпрд╛ рдорджрддреАрдиреЗ, рдирд┐рд│реНрдпрд╛-рд╣рд┐рд░рд╡реНрдпрд╛ рдЯреНрд░реЕрдлрд┐рдХ рд░рд╛рдЙрдЯрд┐рдВрдЧ рджреЗрдЦреАрд▓ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЖрд╣реЗ, рдЬреЗрд╡реНрд╣рд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреА рдЕрджреНрдпрдпрд╛рд╡рдд рдЖрд╡реГрддреНрддреА рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЛ рддреЗрд╡реНрд╣рд╛ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреНрдпрд╛ рдирд╡реАрди рдЖрдгрд┐ рдЬреБрдиреНрдпрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдордзреАрд▓ рд░рд╣рджрд╛рд░реАрдЪреЗ рдкреГрдердХреНрдХрд░рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ.
Knative рд╕реНрд╡рддрдГ рд╕реБрд╕рдВрдЧрдд рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ. рд╣рд╛ рд▓реЗрдЦ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреНрдпрд╛ рд╡реЗрд│реА рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ ╨╕ . рддреЗ рдиреЗрдЯрд┐рд╡реНрд╣-рдореЕрдиреЗрдЬреНрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдХрдбреЗ рд░рд╣рджрд╛рд░реА рдорд╛рд░реНрдЧреА рд▓рд╛рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рдкреНрд░рд╡реЗрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░реЗрд▓.
Istio рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдореЗрд╢ рд╣реЗ Knative рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╛рдареА рдПрдХ рдореЛрдареЗ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдЕрд╕реВ рд╢рдХрддреЗ рдЬреЗ Istio рдХрдВрдЯреНрд░реЛрд▓ рдкреЕрдирд▓ рд╕реНрдерд╛рдкрд┐рдд рди рдХрд░рддрд╛ рддреЗ рд╡рд╛рдкрд░реВрди рдкрд╛рд╣реВ рдЗрдЪреНрдЫрд┐рддрд╛рдд, рдХрд╛рд░рдг Knative рдлрдХреНрдд рдЧреЗрдЯрд╡реЗрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ.
рдпрд╛ рдХрд╛рд░рдгрд╛рд╕реНрддрд╡, рдмрд╣реБрддреЗрдХ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЧреНрд▓реВрд▓рд╛ рдиреЗрдЯрд┐рд╡реНрд╣рдЪреЗ рдкреНрд░рд╡реЗрд╢рджреНрд╡рд╛рд░ рдореНрд╣рдгреВрди рдкреНрд░рд╛рдзрд╛рдиреНрдп рджреЗрддрд╛рдд, рдЗрд╕реНрдЯрд┐рдУрд▓рд╛ (рдХреЗрд╡рд│ рдиреЗрдЯрд┐рд╡реНрд╣ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЙрджреНрджреЗрд╢рд╛рдиреЗ) рд╕рдорд╛рди рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд, рддрд╕реЗрдЪ рд▓рдХреНрд╖рдгреАрдп рдХрдореА рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рддрд╛рдд рдЖрдгрд┐ рдХрдореА рдСрдкрд░реЗрд╢рдирд▓ рдЦрд░реНрдЪ рдЕрд╕рддрд╛рдд.
рд╕реНрдЯрдБрдбрд╡рд░ Knative рдЪреА рдХреГрддреА рдХрд░реВ. рдореА GKE рдордзреНрдпреЗ рдирд╡реАрди рд╕реНрдерд╛рдкрд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рд╡рд╛рдкрд░рдд рдЖрд╣реЗ:
kubectl get namespace
NAME STATUS AGE
default Active 21h
kube-public Active 21h
kube-system Active 21hрдЪрд▓рд╛ Knative рдЖрдгрд┐ Gloo рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рд╕реБрд░реВ рдХрд░реВрдпрд╛. рд╣реЗ рдХреЛрдгрддреНрдпрд╛рд╣реА рдХреНрд░рдорд╛рдиреЗ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ:
# ╤Б╤В╨░╨▓╨╕╨╝ 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 44sGloo рд░рд╛рдЙрдЯрд┐рдВрдЧрд╕рд╛рдареА рддрдпрд╛рд░ рдЖрд╣реЗ, рдЪрд▓рд╛ рдПрдХ рд╕реНрд╡рдпрдВ-рд╕реНрдХреЗрд▓рд┐рдВрдЧ Knative рд╕реЗрд╡рд╛ рддрдпрд╛рд░ рдХрд░реВрдпрд╛ (рдпрд╛рд▓рд╛ kservice рдореНрд╣рдгреВрдпрд╛) рдЖрдгрд┐ рддреНрдпрд╛рдХрдбреЗ рд░рд╣рджрд╛рд░реА рдорд╛рд░реНрдЧреА рд▓рд╛рд╡реВ.
рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ+рд╕рд░реНрд╡реНрд╣рд┐рд╕+рдЗрдирдЧреНрд░реЗрд╕ рдореЙрдбреЗрд▓рдкреЗрдХреНрд╖рд╛ Knative рд╕реЗрд╡рд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рддрд░реАрдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдПрдХ рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛рдд. рдЖрдореНрд╣реА рдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░реВ:
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рдЖрдордЪреЗ 'рд╣реЕрд▓реЛрд╡рд░реНрд▓реНрдб-рдЧреЛ' рдбрд┐рд▓рд┐рд╡реНрд╣рд░ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдЖрдореНрд╣реА рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ Knative рджреНрд╡рд╛рд░реЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рд╕рдВрд╕рд╛рдзрдиреЗ рдкрд╛рд╣реВ рд╢рдХрддреЛ. kservice:
kubectl get pod -n default
NAME READY STATUS RESTARTS AGE
helloworld-go-fjp75-deployment-678b965ccb-sfpn8 2/2 Running 0 68sрдЖрдордЪреА 'helloworld-go' рдкреНрд░рддрд┐рдорд╛ рдЕрд╕рд▓реЗрд▓рд╛ рдкреЙрдб kservice рддреИрдирд╛рдд рдХреЗрд▓реНрдпрд╛рд╡рд░ рд▓реЙрдиреНрдЪ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рд░рд╣рджрд╛рд░реА рдирд╕реЗрд▓ рддрд░ рд╢реЗрдВрдЧрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рд╢реВрдиреНрдпрд╛рд╡рд░ рдпреЗрдИрд▓. рдЖрдгрд┐ рддреНрдпрд╛рдЙрд▓рдЯ, рдПрдХрд╛рдЪрд╡реЗрд│реА рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдереНрд░реЗрд╢реЛрд▓реНрдбрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЕрд╕рд▓реНрдпрд╛рд╕, рд╢реЗрдВрдЧрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рдвреЗрд▓.
kubectl get ingresses.networking.internal.knative.dev -n default
NAME READY REASON
helloworld-go TrueKnative рдЕрдВрддрд░реНрдЧрдд Knative API рдордзреАрд▓ рд╡рд┐рд╢реЗрд╖ 'рдЗрдирдЧреНрд░реЗрд╕' рд╕рдВрд╕рд╛рдзрди рд╡рд╛рдкрд░реВрди рддреНрдпрд╛рдЪреЗ рдкреНрд░рд╡реЗрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рддреЗ. рдирд┐рд│реНрдпрд╛-рд╣рд┐рд░рд╡реНрдпрд╛ рдЙрдкрдпреЛрдЬрди рдореЙрдбреЗрд▓, рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд TLS рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА, рдХрд╛рд▓рдмрд╛рд╣реНрдпрддрд╛ рдЖрдгрд┐ рдЗрддрд░ рдкреНрд░рдЧрдд рд░реВрдЯрд┐рдВрдЧ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╕рд╣ PaaS рд╕рд╛рд░рдЦреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдкреНрд░рджрд╛рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Gloo рд╣реЗ API рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдореНрд╣рдгреВрди рд╡рд╛рдкрд░рддреЗ.
рдХрд╛рд╣реА рдХрд╛рд│рд╛рдирдВрддрд░, рдЖрдореНрд╣реА рдкрд╛рд╣рддреЛ рдХреА рдЖрдордЪреНрдпрд╛ рд╢реЗрдВрдЧрд╛ рдЧрд╛рдпрдм рдЭрд╛рд▓реНрдпрд╛ рдЖрд╣реЗрдд (рдХрд╛рд░рдг рдпреЗрдгрд╛рд░реА рд╡рд╛рд╣рддреВрдХ рдирд╡реНрд╣рддреА):
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рд╢реЗрд╡рдЯреА рдЖрдореНрд╣реА рддреНрдпрд╛рдВрдЪреНрдпрд╛рдкрд░реНрдпрдВрдд рдкреЛрд╣реЛрдЪрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВ. рддреБрдореНрд╣реА рд╡рд╛рдкрд░реВрди Knative Proxy рд╕рд╛рдареА URL рд╕рд╣рдЬ рдЖрдгрд┐ рд╕рд╣рдЬ рдорд┐рд│рд╡реВ рд╢рдХрддрд╛ glooctl:
glooctl proxy url --name knative-external-proxy
http://35.190.151.188:80рд╕реНрдерд╛рдкрд┐рдд рди рдХрд░рддрд╛ glooctl рддреБрдореНрд╣реА kube рд╕реЗрд╡реЗрдордзреНрдпреЗ рдкрддреНрддрд╛ рдЖрдгрд┐ рдкреЛрд░реНрдЯ рдкрд╛рд╣реВ рд╢рдХрддрд╛:
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 рд╡рд╛рдкрд░реВрди рдХрд╛рд╣реА рдбреЗрдЯрд╛ рдЪрд╛рд▓рд╡реВ:
curl -H "Host: helloworld-go.default.example.com" http://35.190.151.188
Hello Knative user!Knative Gloo рдЪреЗ рдЙрдЪреНрдЪ-рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛, рдкреВрд░реНрдг-рд╕реНрдЯреЕрдХ API рдЧреЗрдЯрд╡реЗ рд╡рд╛рдкрд░реВрди рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ Kubernetes рд╡рд░ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрд╕рд╛рдареА рдЬрд╡рд│рдЬрд╡рд│-PaaS рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рдпрд╛ рдкреЛрд╕реНрдЯрдиреЗ рдХреЗрд╡рд│ Knative рдЪреНрдпрд╛ рд╡рд┐рд╕реНрддреГрдд рд╕рд╛рдиреБрдХреВрд▓рди рдкрд░реНрдпрд╛рдп рдЖрдгрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪрд╛ рдкреГрд╖реНрдарднрд╛рдЧ рд╕реНрдХреНрд░реЕрдЪ рдХреЗрд▓рд╛ рдЖрд╣реЗ. рдЧреНрд▓реВ рдмрд░реЛрдмрд░рдЪ!
Knative рдЕрдЬреВрдирд╣реА рдПрдХ рддрд░реБрдг рдкреНрд░рдХрд▓реНрдк рдЕрд╕реВрдирд╣реА, рддреНрдпрд╛рдЪреА рдЯреАрдо рджрд░ рд╕рд╣рд╛ рдЖрдард╡рдбреНрдпрд╛рдВрдиреА рдирд╡реАрди рдЖрд╡реГрддреНрддреНрдпрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд TLS рдЙрдкрдпреЛрдЬрди, рдирд┐рдпрдВрддреНрд░рдг рдкреЕрдиреЗрд▓рдЪреЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рдкреНрд░рдЧрдд рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реБрд░реВ рдЭрд╛рд▓реА рдЖрд╣реЗ. рдЕрдиреЗрдХ рдХреНрд▓рд╛рдЙрдб рдХрдВрдкрдиреНрдпрд╛рдВрдордзреАрд▓ рд╕рд╣рдХрд╛рд░реНрдпрд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдореНрд╣рдгреВрди рдЖрдгрд┐ Google рдЪреНрдпрд╛ рдирд╡реАрди рдХреНрд▓рд╛рдЙрдб рд░рди рдСрдлрд░рдЪрд╛ рдЖрдзрд╛рд░ рдореНрд╣рдгреВрди, Knative рд╣рд╛ рд╕рд░реНрд╡реНрд╣рд░рд▓реЗрд╕ рдХреЙрдореНрдкреНрдпреБрдЯрд┐рдВрдЧ рдЖрдгрд┐ Kubernetes рд╡рд░ PaaS рд╕рд╛рдареА рдкреНрд░рд╛рдердорд┐рдХ рдкрд░реНрдпрд╛рдп рдмрдирдгреНрдпрд╛рдЪреА рдЪрд╛рдВрдЧрд▓реА рд╕рдВрдзреА рдЖрд╣реЗ. рдмрд╛рддрдореНрдпрд╛рдВрдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рд╛!
SouthBridge рдЪреНрдпрд╛ рд╕рдВрдкрд╛рджрдХрд╛рдВрдХрдбреВрди
рд╡рд╛рдЪрдХрд╛рдВрдЪреА рдорддреЗ рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдорд╣рддреНрддреНрд╡рд╛рдЪреА рдЖрд╣реЗрдд, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рддреБрдореНрд╣рд╛рд▓рд╛ Knative, Kubernetes, рд╕рд░реНрд╡реНрд╣рд░рд▓реЗрд╕ рд╕рдВрдЧрдгрдирд╛рд╡рд┐рд╖рдпреА рднрд╡рд┐рд╖реНрдпрд╛рддреАрд▓ рд▓реЗрдЦрд╛рдВрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдПрдХрд╛ рд▓рд╣рд╛рди рд╕рд░реНрд╡реЗрдХреНрд╖рдгрд╛рдд рднрд╛рдЧ рдШреЗрдгреНрдпрд╛рд╕ рд╕рд╛рдВрдЧрддреЛ:
рдХреЗрд╡рд│ рдиреЛрдВрджрдгреАрдХреГрдд рд╡рд╛рдкрд░рдХрд░реНрддреЗрдЪ рд╕рд░реНрд╡реЗрдХреНрд╖рдгрд╛рдд рднрд╛рдЧ рдШреЗрдК рд╢рдХрддрд╛рдд. , рдЖрдкрд▓реЗ рд╕реНрд╡рд╛рдЧрдд рдЖрд╣реЗ.
рдореА рдиреЗрдЯрд┐рд╡реНрд╣ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░рд▓реЗрд╕ рдХрдВрдкреНрдпреБрдЯрд┐рдВрдЧрдмрджреНрджрд▓ рд▓реЗрдЦ рдЖрдгрд┐ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рд▓рд┐рд╣рд┐рдгреЗ рд╕реБрд░реВ рдареЗрд╡рд╛рд╡реЗ рдХрд╛?
рд╣реЛрдп рдХрд░рд╛.
рдирдХреЛ рдзрдиреНрдпрд╡рд╛рдж.
28 рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдиреА рдорддрджрд╛рди рдХреЗрд▓реЗ. 4 рд╡рд╛рдкрд░рдХрд░реНрддреЗ рджреВрд░ рд░рд╛рд╣рд┐рд▓реЗ.
рд╕реНрддреНрд░реЛрдд: www.habr.com
