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


рдЯреАрдПрд▓, рдбреЙ


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

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


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


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


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


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



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


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



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


LivenessProbe


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


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

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


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


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


 kubectl apply -f pod.yaml 

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


 kubectl describe pods node500 

рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЦреЛрдЬреЗрдВред


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


рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ NideJS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреИрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдпрд╣рд╛рдВ app.js рдФрд░ Dockerfile рджрд┐рдП рдЧрдП рд╣реИрдВ:


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 error\n"); }); server.listen(3000, function() { console.log('Server is running at 3000') }) 

Dockerfile


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

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


readinessProbe


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


рдЖрдЗрдП рдПрдХ readinessProbe рдкрд░рд┐рднрд╛рд╖рд╛ рд▓рд┐рдЦреЗрдВ рдЬреЛ 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 рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдкрд░ kubectl рдиреЗ рдкреЙрдб рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЙрд╕рдиреЗ рдЕрдиреБрд░реЛрдз рд░рджреНрдж рдХрд░ рджрд┐рдпрд╛ред рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЕрдиреНрдп, рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреЙрдбреНрд╕ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


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


рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП: рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд╢реЛрдзрд┐рдд app.js рдлрд╝рд╛рдЗрд▓ рд╣реИ:


 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("Hello\n"); }) }); server.listen(3000, function() { console.log('Server is running at 3000') }) 

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


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


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


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

Source: https://habr.com/ru/post/hi467155/


All Articles