рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕: рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕: рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ

TL, рдбреЙ

  • рдХрдВрдЯреЗрдирд░реЛрдВ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреА рдЙрдЪреНрдЪ рдЕрд╡рд▓реЛрдХрди рдХреНрд╖рдорддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧ рдФрд░ рдкреНрд░рд╛рдердорд┐рдХ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВред
  • рддреЗрдЬреА рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдФрд░ рдмрдврд╝реА рд╣реБрдИ рд▓рдЪреАрд▓рд╛рдкрди рдХреЗ рд▓рд┐рдП, рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЙрдЪреНрдЪ рдЕрд╡рд▓реЛрдХрди рд╕рд┐рджреНрдзрд╛рдВрдд (рдПрдЪрдУрдкреА) рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рдЖрд╡реЗрджрди рд╕реНрддрд░ рдкрд░, рдПрдирдУрдкреА рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ: рдЙрдЪрд┐рдд рд▓реЙрдЧрд┐рдВрдЧ, рдХрд░реАрдмреА рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрд╡рд┐рд╡реЗрдХ рдЬрд╛рдВрдЪ рдФрд░ рдкреНрд░рджрд░реНрд╢рди/рд╕рдВрдХреНрд░рдордг рдЕрдиреБрд░реЗрдЦрдгред
  • NOR рдХреЗ рдПрдХ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрддреНрдкрд░рддрд╛ рдЬрд╛рдВрдЪ ╨╕ рдЬреАрд╡рдВрддрддрд╛ рдЬрд╛рдВрдЪ Kubernetesред

рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреНрдпрд╛ рд╣реИ?

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

рдЙрдЪреНрдЪ рдЕрд╡рд▓реЛрдХрди рд╕рд┐рджреНрдзрд╛рдВрдд (HOP)

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

рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреНрд▓рд╛рдЙрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдорд╛рдирдХ I/O рд╕реНрдЯреНрд░реАрдо STDERR рдФрд░ STDOUT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдореБрдЦреНрдп рдИрд╡реЗрдВрдЯ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж рдПрдХ рд╕рд╣рд╛рдпрдХ рд╕реЗрд╡рд╛ рдЖрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓рдмреАрдЯ, рд▓реЙрдЧрд╕реНрдЯреИрд╢ рдпрд╛ рдлреНрд▓реБрдПрдВрдЯ, рдПрдХ рдХреЗрдВрджреНрд░реАрдХреГрдд рдирд┐рдЧрд░рд╛рдиреА рдкреНрд░рдгрд╛рд▓реА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдореЗрдерд┐рдпрд╕) рдФрд░ рдПрдХ рд▓реЙрдЧ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдгрд╛рд▓реА (рдИрдПрд▓рдХреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реВрдЯ) рдореЗрдВ рд▓реЙрдЧ рд╡рд┐рддрд░рд┐рдд рдХрд░рдирд╛ред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЪрд┐рддреНрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЙрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкрд░реАрдХреНрд╖рдг рдкреИрдЯрд░реНрди рдФрд░ рдЙрдЪреНрдЪ рдЕрд╡рд▓реЛрдХрди рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕: рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдкреИрдЯрд░реНрди рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?

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

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕: рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ

рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, k8s рдХрд░рддрд╛ рд╣реИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЬрд╛рдБрдЪ. рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдореЗрдВ, рдХреНрдпреВрдмрд▓реЗрдЯ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рд▓рдЧрд╛рддрд╛рд░ рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рд╡рд╣ рд╕рдордЭ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд░реБрдХ рдЧрдИ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред рдпрджрд┐ рддреНрд░реБрдЯрд┐ рдХреЛ рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдХрд┐рд╕реА рднреА рддреНрд░реБрдЯрд┐ рдкрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдирдУрдкреА рдФрд░ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдкрд░реАрдХреНрд╖рдг рдкреИрдЯрд░реНрди рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХрдорд╛рддреНрд░ рдЕрдлрд╝рд╕реЛрд╕ рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рд╕реЗ рд╕рднреА рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, k8s рдкреЙрдб рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 2 рдЧрд╣рд░реЗ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рдЬреАрд╡рдВрддрддрд╛ рдЬрд╛рдВрдЪ ╨╕ рддрддреНрдкрд░рддрд╛ рдЬрд╛рдВрдЪ.

рдЬреАрд╡рдВрддрддрд╛ рдЬрд╛рдВрдЪ

рдХреЗ рджреМрд░рд╛рди рдЬреАрд╡рдВрддрддрд╛ рдЬрд╛рдВрдЪ рдХреНрдпреВрдмрд▓реЗрдЯ 3 рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ: рди рдХреЗрд╡рд▓ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреЙрдб рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдпрд╣ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ:

  • рдкреЙрдб рдХреЗ рд▓рд┐рдП рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рд╕реЗрдЯ рдХрд░реЗрдВред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ 200 рд╕реЗ 399 рддрдХ рдХреА рд╕реАрдорд╛ рдореЗрдВ рдПрдХ HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреЛрдб 5xx рдФрд░ 4xx рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдкреЙрдб рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд▓ рд░рд╣реА рд╣реЛред
  • рдЧреИрд░-HTTP рд╕реЗрд╡рд╛рдУрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреЛрд╕реНрдЯрдлрд╝рд┐рдХреНрд╕ рдореЗрд▓ рд╕рд░реНрд╡рд░) рдХреЗ рд╕рд╛рде рдкреЙрдбреНрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
  • рдкреЙрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдордирдорд╛рдирд╛ рдЖрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ (рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ)ред рдпрджрд┐ рдХрдорд╛рдВрдб рдкреВрд░реНрдгрддрд╛ рдХреЛрдб 0 рд╣реИ рддреЛ рдЪреЗрдХ рд╕рдлрд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг. рдЕрдЧрд▓реА рдкреЙрдб рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ NodeJS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ 500 рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдРрд╕реА рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдХрдВрдЯреЗрдирд░ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рд▓рд╛рдЗрд╡рдиреЗрд╕рдкреНрд░реЛрдм рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

apiVersion: v1
kind: Pod
metadata:
 name: node500
spec:
 containers:
   - image: magalix/node500
     name: node500
     ports:
       - containerPort: 3000
         protocol: TCP
     livenessProbe:
       httpGet:
         path: /
         port: 3000
       initialDelaySeconds: 5

рдпрд╣ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкреЙрдб рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ .spec.containers.livenessProbe. рдкреИрд░рд╛рдореАрдЯрд░ httpGet рдЙрд╕ рдкрде рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ HTTP GET рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рдЧрдпрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдпрд╣ рд╣реИ)ред /, рд▓реЗрдХрд┐рди рдпреБрджреНрдз рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ /api/v1/status). рдПрдХ рдЕрдиреНрдп рд▓рд╛рдЗрд╡рдиреЗрд╕рдкреНрд░реЛрдм рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ initialDelaySeconds, рдЬреЛ рд╕рддреНрдпрд╛рдкрди рдСрдкрд░реЗрд╢рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрдХрдВрдб рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддрд╛ рд╣реИред рд╡рд┐рд▓рдВрдм рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдЯреЗрдирд░ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдкреБрдирдГ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкрд▓рдмреНрдз рд░рд╣реЗрдЧрд╛ред

рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

kubectl apply -f pod.yaml

рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж, рдЖрдк рдирд┐рдореНрди рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреЙрдб рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

kubectl describe pods node500

рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдЦреЛрдЬреЗрдВ рд╡рд╣реА рд╣реИ.

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓рд╛рдЗрд╡рдиреЗрд╕рдкреНрд░реЛрдм рдиреЗ рдПрдХ HTTP GET рдЕрдиреБрд░реЛрдз рд╢реБрд░реВ рдХрд┐рдпрд╛, рдХрдВрдЯреЗрдирд░ рдиреЗ рдПрдХ рддреНрд░реБрдЯрд┐ 500 тАЛтАЛрдЙрддреНрдкрдиреНрди рдХреА (рдЬреЛ рдХрд┐ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рдФрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рдиреЗ рдЗрд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд┐рдпрд╛ред

рдпрджрд┐ рдЖрдк рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ NideJS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреИрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдпрд╣рд╛рдВ рдРрдк.рдЬреЗрдПрд╕ рдФрд░ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

app.js

var http = require('http');

var server = http.createServer(function(req, res) {
    res.writeHead(500, { "Content-type": "text/plain" });
    res.end("We have run into an errorn");
});

server.listen(3000, function() {
    console.log('Server is running at 3000')
})

Dockerfile

FROM node
COPY app.js /
EXPOSE 3000
ENTRYPOINT [ "node","/app.js" ]

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

рддрддреНрдкрд░рддрд╛ рдЬрд╛рдВрдЪ

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

рдЖрдЗрдП рдПрдХ redinessProbe рдкрд░рд┐рднрд╛рд╖рд╛ рд▓рд┐рдЦреЗрдВ рдЬреЛ GET рдЕрдиреБрд░реЛрдз рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдХреЛ рджреЛ рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╕реЗрдЯ рдХрд░реЗрдЧреА, рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди 5 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж GET рдЕрдиреБрд░реЛрдз рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдЧрд╛ред pod.yaml рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреА рдЪрд╛рд╣рд┐рдП:

apiVersion: v1
kind: Pod
metadata:
 name: nodedelayed
spec:
 containers:
   - image: afakharany/node_delayed
     name: nodedelayed
     ports:
       - containerPort: 3000
         protocol: TCP
     readinessProbe:
       httpGet:
         path: /
         port: 3000
       timeoutSeconds: 2

рдЖрдЗрдП kubectl рдХреЗ рд╕рд╛рде рдПрдХ рдкреЙрдб рддреИрдирд╛рдд рдХрд░реЗрдВ:

kubectl apply -f pod.yaml

рдЖрдЗрдП рдХреБрдЫ рд╕реЗрдХрдВрдб рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рджреЗрдЦреЗрдВ рдХрд┐ рд░реЗрдбреАрдиреЗрд╕рдкреНрд░реЛрдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

kubectl describe pods nodedelayed

рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рдШрдЯрдирд╛рдПрдБ рд╕рдорд╛рди рд╣реИрдВ рдпрд╣ рд╡рд╛рд▓рд╛.

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

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдм рдЬрдм рдкреЙрдб рдСрдлрд▓реЛрдб рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдХреБрдмреЗрдХреНрдЯрд▓ рд░реВрдЯ рдлрд┐рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ: GET рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдЕрдм рджреЗрд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рд╕рдВрд╢реЛрдзрд┐рдд рдРрдк.рдЬреЗрдПрд╕ рдлрд╝рд╛рдЗрд▓ рд╣реИ:

var http = require('http');

var server = http.createServer(function(req, res) {
   const sleep = (milliseconds) => {
       return new Promise(resolve => setTimeout(resolve, milliseconds))
   }
   sleep(5000).then(() => {
       res.writeHead(200, { "Content-type": "text/plain" });
       res.end("Hellon");
   })
});

server.listen(3000, function() {
   console.log('Server is running at 3000')
})

TL, рдбреЙ
рдХреНрд▓рд╛рдЙрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЖрдЧрдорди рд╕реЗ рдкрд╣рд▓реЗ, рд▓реЙрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреА рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рд╕рд╛рдзрди рдереЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреЛрдИ рд╕реБрдзрд╛рд░рд╛рддреНрдордХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рд╛рдзрди рдирд╣реАрдВ рдерд╛ред рд▓реЙрдЧ рдЖрдЬ рднреА рдЙрдкрдпреЛрдЧреА рд╣реИрдВ; рдЖрдкрд╛рддрдХрд╛рд▓реАрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдФрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдФрд░ рд▓реЙрдЧ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред [рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдм рдореЛрдирд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╛рдЙрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди k8s рдХреЗ рд╕рд╛рде рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ :) - рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдиреЛрдЯред ]

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

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

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

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

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