Kubernetes: рдкреЙрдбреНрд╕ рдХрд╛ рд░реЛрд▓рд┐рдВрдЧ рдкреБрдирд░рд╛рд░рдВрдн

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рд╕рд┐рддре░ 2015  ┬╖  108рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: kubernetes/kubernetes

kubectl rolling-update рдПрдХ рдирдП рдкреНрд░рддрд┐рдХреГрддрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдореМрдЬреВрджрд╛ рдкреНрд░рддрд┐рдХреГрддрд┐ рдирд┐рдпрдВрддреНрд░рдХ рд╣реИ рдФрд░ рдЖрдк рдЙрди рд╕рднреА рдкреЙрдбреНрд╕ рдХрд╛ рд░реЛрд▓рд┐рдВрдЧ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдирдП рдирд╛рдо рдФрд░ рдЙрд╕реА рд╕реНрдкреЗрдХ рдХреЗ рд╕рд╛рде рдЖрд░рд╕реА рдХреЛ рдиреЛ-рдСрдк рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЖрд░рд╕реА рдХреЛ рдмрджрд▓рдиреЗ рдпрд╛ рдЖрд░рд╕реА рд╕реНрдкреЗрдХ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рд░реЛрд▓рд┐рдВрдЧ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдХреБрдмреЗрдХреНрдЯрд▓ рддрдХ рдкрд╣реБрдВрдЪ рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕реНрдкреЗрдХ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣реА рд╣реИ / рдЕрдк рдЯреВ рдбреЗрдЯ, рдЖрджрд┐ред рдпрд╣ рдХреБрдЫ рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

  1. рдПрдХ рдирдпрд╛ рдХрдорд╛рдВрдб, kubectl rolling-restart рдЬреЛ RC рдирд╛рдо рд▓реЗрддрд╛ рд╣реИ рдФрд░ RC рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╕рднреА рдкреЙрдбреНрд╕ рдХреЛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рд╣рдЯрд╛рддрд╛ рд╣реИ рдФрд░ RC рдХреЛ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  2. 1 рдХреЗ рд╕рдорд╛рди, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХрдорд╛рдВрдб рдкреЙрдбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ "рдкреБрдирд░рд╛рд░рдВрдн" рдХрдорд╛рдВрдб рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ (рдХреНрдпрд╛ рдпрд╣ рдореМрдЬреВрдж рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдкреИрдЯрд░реНрди рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ?) рдЗрд╕рдХрд╛ рдПрдХ рдлрд╛рдпрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкреЙрдбреНрд╕ рдХреЛ рдЕрдиреНрдп рдорд╢реАрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдкреБрдирд░реНрд╕рдВрддреБрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  3. kubectl rolling-update рдПрдХ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЬреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдкреБрд░рд╛рдиреА RC рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ 1 рдпрд╛ 2 рдХреЗ рддрд░реНрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИред
  4. kubectl rolling-update рдПрдХ рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдЬреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдкреБрд░рд╛рдиреА рдЖрд░рд╕реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкреБрд░рд╛рдиреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдпрд╛ рдЖрд░рд╕реА рд╕реНрд╡рдд: рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реЛрд▓рд┐рдВрдЧ рдЕрдкрдбреЗрдЯ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИред

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

@nikhiljindal @kubernetes/kubectl

areapp-lifecycle kinfeature lifecyclfrozen prioritbacklog siapps

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдареАрдХ рд╣реИ, kubectl rollout restart рдХрд╛ рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ!

рд╕рднреА 108 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cc @ironcladlou @bgrant0607

рд╕реНрдкреЗрдХ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрджрд▓рд╛рд╡ рдХреЗ рдкреЙрдбреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рд╣реИ?

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдкреЙрдбреНрд╕ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдкрд░ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рд▓рдЧреЗ рддреЛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд░реЛрд▓рдмреИрдХ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

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

рдпрджрд┐ рдкрд╣рд▓рд╛ рдкреЙрдб рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдкрд░ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЬрд╛рд░реА рд░рд╣рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ рдпрд╛ рдкреЙрдб рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ред

рд╕рд╛рде рд╣реА, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд░реЛрд▓рд┐рдВрдЧ рдкреБрдирд░рд╛рд░рдВрдн рдкреЙрдбреНрд╕ рдХреЛ рдкреБрди: рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ
рд╕рдореВрд╣ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЗрд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рдЪрд╛рд╣реВрдВрдЧрд╛
рдлрд▓реА рдпрд╣ рдПрдХ рд░реЛрд▓рд┐рдВрдЧ рд▓реЗрдмрд▓ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирдпрд╛ рдбрд╛рдпрдирд╛рдорд┐рдХ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ
рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд┐рддрд┐ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдпрд╛ рд╕рд╛рдлрд╝ рдХрд░реЗрдВред

рдмреБрдзрд╡рд╛рд░, 2 рд╕рд┐рддрдВрдмрд░, 2015 рдХреЛ рджреЛрдкрд╣рд░ 12:01 рдмрдЬреЗ, рд╕реИрдо рдШреЛрдбреНрд╕ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

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

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

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/13488#issuecomment -136931790
.

рдХреНрд▓реЗрдЯрди рдХреЛрд▓рдореИрди | рд▓реАрдб рдЗрдВрдЬреАрдирд┐рдпрд░, рдУрдкрдирд╢рд┐рдлреНрдЯ

@smarterclayton рдХреНрдпрд╛ рдпрд╣ рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдореЗрд░реЗ рд╡рд┐рдХрд▓реНрдк 2 рдХреА рддрд░рд╣ рд╣реИ? рд╣рд╛рд▓рд╛рдВрдХрд┐ рд▓реЗрдмрд▓ рдХреНрдпреЛрдВ рдмрджрд▓реЗ рдЬрд╛рдПрдВрдЧреЗ?

рдкреБрдирдГред рд╡реЗрдЬреНрдб: рдпрд╣реА рд▓рд┐рд╡рдиреЗрд╕ рдкреНрд░реЛрдм рдХреЗ рд▓рд┐рдП рд╣реИред

рдкреБрдирдГред рдкреБрдирд░реНрд╕рдВрддреБрд▓рди: рджреЗрдЦреЗрдВ #12140

рдЕрдЧрд░ рд╣рдордиреЗ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛, рддреЛ рдореИрдВ рдЗрд╕реЗ #9043 рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛ - рдЙрд╕реА рддрдВрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдореИрдВ рдЧрд▓рдд рд╣реВрдВред

рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рд╕рд┐рд░реНрдл рдПрдХ рдкреЙрдб рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдмрд╕ рдорд╛рд░ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрд░рд╕реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

@bgrant0607 рдХреНрдпрд╛ рд╣рдордиреЗ рддрдп рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

@gmarek рдХреБрдЫ рднреА рдирд╣реАрдВ, рдЕрднреА рдХреЗ рд▓рд┐рдПред рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣реА рд╣реИрдВред

рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрд╕ рд╕рд╛рдорд╛рди рдХреЗ рд▓рд┐рдП post v1.1 рдореАрд▓ рдХрд╛ рдкрддреНрдерд░ (рдпрд╛ рдХреБрдЫ рдФрд░) рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдиреНрд╣реЗрдВ рддреБрд░рдВрдд рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдЧреЛрдВ рдХреА рдХрдореА рд╣реИ?

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

рдореИрдВ рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдВред рдХреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рд╕рднреА рдкреЙрдбреНрд╕ рдХреЛ рдирдИ рдкреБрд╢ рдХреА рдЧрдИ рдбреЙрдХ рдЗрдореЗрдЬ ( imagePullPolicy: Always ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рд╣реИрдХреА рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ: рдЫрд╡рд┐ рдирд╛рдо рдкрд░ :latest рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдпрд╛ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рд░реЛрд▓рд┐рдВрдЧ-рдЕрдкрдбреЗрдЯред

рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛: рд░рд╣рд╕реНрдпреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдирд╛ред

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

рдпрд╣рд╛рдБ рдореИрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

kubectl get pod | grep 'pod-name' | cut -d " " -f1 - | xargs -n1 -P 10 kubectl delete pod

рдпрд╣ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдкреЙрдбреНрд╕ 10 рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреЙрдб рдЖрд╡рдВрдЯрди рдпрд╛ рдирдП рдкреЙрдбреНрд╕ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдЬреИрд╕реА рдХрд┐рд╕реА рднреА рдЪрд┐рдВрддрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдпрд╣ рдПрдХ рддреНрд╡рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░реЛрд▓рд┐рдВрдЧ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдореБрдЦреНрдп рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо ConfigMap рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ ENV рдЪрд░ рдХреЛ рдкреЙрдбреНрд╕ рдореЗрдВ рдлреАрдб рдХрд░реЗрдВрдЧреЗ рдФрд░ рдлрд┐рд░ рдпрджрд┐ рд╣рдо рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рд╣рдореЗрдВ рдЙрд╕ ConfigMap рдХреЗ рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рд╣рд╛рдВ, рдРрд╕реЗ рдХрдИ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрдм рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреЙрдб/рдХрдВрдЯреЗрдирд░ рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрджрд▓рд╛рд╡ рдХреЗ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ ...
рдХреЙрдиреНрдлрд┐рдЧ, рдХреИрд╢реЗ, рдмрд╛рд╣рд░реА рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рдЖрджрд┐ред рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЬрд╛рдПрдЧреАред

рдЪрд╛рд░реЛрдВ рдУрд░ рдЫреЛрдЯрд╛ рдХрд╛рдо (рдореИрдВ рддреИрдирд╛рддреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЫрд╡рд┐/рдкреЙрдб рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдмрд┐рдирд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ):

  • рдХреЙрдиреНрдлрд┐рдЧ рдореИрдк рдмрдирд╛рдПрдВ
  • рдХрд┐рд╕реА рднреА рдХрдВрдЯреЗрдирд░ рдореЗрдВ ENV рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдмрдирд╛рдПрдВ (рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рд╕рдВрдХреЗрддрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ)
  • рдЕрджреНрдпрддрди configMap
  • рдЕрджреНрдпрддрди рдкрд░рд┐рдирд┐рдпреЛрдЬрди (рдЗрд╕ ENV рдЪрд░ рдХреЛ рдмрджрд▓реЗрдВ)

k8s рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдмрджрд▓ рджреА рдЧрдИ рд╣реИ рдФрд░ рдкреЙрдбреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧреА
рдкреБрдирд╢реНрдЪ:
рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ

рдзрдиреНрдпрд╡рд╛рдж @paunin

@paunin рдареАрдХ рд╡рд╣реА рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрд╣рд╛рдБ рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рд╣рдореЗрдВ ConfigMap рдорд╛рдиреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ рдФрд░ рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рднреАрддрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рд░реЛрд▓-рдЖрдЙрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕ рджреМрд░рд╛рди рдХреЛрдИ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рд╕рднреА рдХрдВрдЯреЗрдирд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рд╕реЗрдХрдВрдб рдХрд╛ рдЖрдВрд╢рд┐рдХ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╣реЛрдЧрд╛

from (рдереЛрдбрд╝реЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд # 9043): @paunin рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдПрдХ-рд▓рд╛рдЗрдирд░, рдЬрд╣рд╛рдВ RESTART_ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рдЖрдИрдПрд╕рдУ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдкрд░ рд╕реЗрдЯ рд╣реИ:

kubectl patch deployment mydeployment \
-p'{"spec":{"template":{"spec":{"containers":[{"name":"mycontainer","env":[{"name":"RESTART_","value":"$(date -uIseconds)"}]}]}}}}'

(рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ _ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ env value рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рддрд╛рд░ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ)

@paunin @rcoup рдЖрдЬрдХрд▓ рд╣рдо рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ env var рд╣реИ рдЬрд┐рд╕реЗ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ "DUMMY_VAR_FOR_NO_OP_DEPLOYMENT" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐?

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬреЛрдбрд╝ рд╕реАрдПрд▓рдЖрдИ рдПрдкреАрдЖрдИ рдХреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕реВрдЬрди рд╣реИред рдЗрд╕реЗ @paunin рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкрд░рд┐рд╡реЗрд╢ рдЪрд░ рдорд╛рдиреЛрдВ

рд╣рдо рдЗрд╕реЗ kubectl restart deployment some-api рдЬреИрд╕реЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рднреА рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдкреЙрдбреНрд╕ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЛ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред
рдореИрдВ рдиреИрддрд┐рдХ рд░реБрдЦ рдХреЛ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ 'рдЗрд╕реЗ рдмрдВрдж рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд░реЗрдВ' рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд╛рдВрдЫрд┐рдд рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ... рдХрдо рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рдЯреНрд░рд┐рдХреНрд╕ рдЬреИрд╕реЗ:

  • рдлрд▓реА рд╣рдЯрд╛рдирд╛
  • рдбрдореА рд▓реЗрдмрд▓
  • рдбрдореА рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░
  • рдбрдореА рдХреЙрдиреНрдлрд┐рдЧ рдореИрдкреНрд╕ рдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рдореИрдк рдХрд┐рдпрд╛ рдЧрдпрд╛
  • рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдбреНрд╕ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рдирд╛
  • рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдХреА рд╢рдХреНрддрд┐ рдореЗрдВ рдХрдЯреМрддреА

'рдирд╣реАрдВ, рдирд╣реАрдВ, рдореИрдВ рдХреБрдЫ рднреА рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рдмрд╕ рдпрд╣рд╛рдБ рдЗрд╕ рд▓реЗрдмрд▓ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдкреЛ рдХреЛ рдареАрдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ'

рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ kubectl apply рд╕рд╛рде рдЬреЛрдбрд╝реА рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА: apply рдкреНрд░рддрд┐рдХреГрддрд┐ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рд╕рд╣рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдкреЙрдбреНрд╕ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрди рдкреЙрдбреНрд╕ рдХреЛ рдмреНрд▓реВ-рдЧреНрд░реАрди рддрд░реАрдХреЗ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@DmitryRomanenko рдкреНрд░рддрд┐рдХреГрддрд┐

@kargakis рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ: рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реЗрдЯ рдФрд░ рдкреЙрдбреНрд╕ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
kubectl apply рд╣рдо ConfigMaps, Services рдЖрджрд┐ рдХреЛ рднреА рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред

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

@tyranron , рдзрдиреНрдпрд╡рд╛рдж! рд╕рдВрд╕реНрдХрд░рдг ConfigMap s рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдореБрдЭреЗ рдирдП рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднрд┐рдиреНрди рдирд╛рдо рд╕реЗ рдирдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдореИрдк рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

@DmitryRomanenko рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВ рдирд╣реАрдВ? рд▓реЗрдХрд┐рди рдРрд╕реЗ рдореЗрдВ рдЖрдкрдХреЛ рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рджреВрд╕рд░реА рдУрд░ рдпрд╣ рд░реЛрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд▓реЗрдмрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди configmap рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рджреНрд░рд╖реНрдЯрд╛ рдпрд╛ рд╣реИрд╢-рд╕рдо рдЪреЗрдХрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╕реНрддреБрдУрдВ/рдкреЙрдбреНрд╕ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдХреБрдЫ рднреА configmap , secret )ред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ k8s рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдХреБрдЫ рд╕реБрд▓рдн рд╣реИ рд╣рд╛рд▓рд╛рдВрдХрд┐ ...

рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд░рдВрдн рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП configmap|secret рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рд░рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВред

@tyranron ,

рддреЛ Kubectl рдХреЗ рд╕рд╛рде рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреА рдпреБрдХреНрддрд┐ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреЙрдбреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рд╕рдордЭрд╛рдПрдБрдЧреЗ? рдХреНрдпрд╛ рдореБрдЭреЗ рдХреЗрд╡рд▓ рдЕрджреНрдпрддрди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд╕рд╛рде kubectl apply -f new_config.yml рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпреЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд░реЛрд▓рд┐рдВрдЧ-рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдВрдЧреЗ?

@DmitryRomanenko рд╣рд╛рдБ, рдмрд┐рд▓реНрдХреБрд▓ред

@DmitryRomanenko рдирдП рдЪрд╢реНрдореЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЖрдк рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЕрджреНрдпрддрди рдкрд░ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдкрд░ рдЗрд╕рдХреА рдпреБрдХреНрддрд┐ рдмрджрд▓ рджреА рдЧрдИ рд╣реИред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рд░рдгрдиреАрддрд┐ рд╣реИ RollingUpdate , рд▓реЗрдХрд┐рди рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдФрд░ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

90d рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдореБрджреНрджреЗ рдкреБрд░рд╛рдиреЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
/remove-lifecycle stale рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рддрд╛рдЬрд╝рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВред
рдЕрддрд┐рд░рд┐рдХреНрдд 30d рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдмрд╛рдж рдмрд╛рд╕реА рдореБрджреНрджреЗ рд╕рдбрд╝ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрддрддрдГ рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред

/lifecycle frozen рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕реНрд╡рддрдГ рдмрдВрдж рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХреЗрдВред

рдЕрдЧрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрднреА рдмрдВрдж рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рддреЛ рдХреГрдкрдпрд╛ /close рд╕рд╛рде рдРрд╕рд╛ рдХрд░реЗрдВред

рд╕рд┐рдЧ-рдЯреЗрд╕реНрдЯрд┐рдВрдЧ, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕/рдЯреЗрд╕реНрдЯ-рдЗрдиреНрдлреНрд░рд╛ рдФрд░/рдпрд╛ @fejta рдХреЛ рдлреАрдбрдмреИрдХ рднреЗрдЬреЗрдВред
/рдЬреАрд╡рдирдЪрдХреНрд░ рдмрд╛рд╕реА

@rcoup рдХреЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд░рд┐рд╡рд░реНрддрди : рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ date рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рд╢реЗрд▓ рдХреЗ рднреАрддрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

kubectl patch deployment mydeployment -p '{"spec":{"template":{"spec":{"containers":[{"name":"mycontainer","env":[{"name":"RESTART_","value":"'$(date +%s)'"}]}]}}}}'

/рдирд┐рдХрд╛рд▓реЗрдВ-рдЬреАрд╡рдирдЪрдХреНрд░ рдмрд╛рд╕реА
/рдЬреАрд╡рдирдЪрдХреНрд░ рдЬрдореЗ рд╣реБрдП

рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЭреБрдВрдб рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд▓рдЪреАрд▓рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореИрдВ рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ (рдкрдврд╝реЗрдВ: рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреЙрдбреНрд╕), рдХреЗрд╡рд▓ рдПрдХ рдмрд▓ рдЕрджреНрдпрддрди (рдЪрд╢реНрдорд╛ рдореЗрдВ рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ) рдХреЗ рд░реВрдк рдореЗрдВ docker service update --force <service-name> ред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рднреА рдРрд╕рд╛ рд╣реА рдХрд░реЗрдЧрд╛ред
рдХреЙрдиреНрдлрд┐рдЧрдореИрдкреНрд╕ рдФрд░ рд░рд╣рд╕реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЭреБрдВрдб рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЙрдиреНрд╣реЗрдВ рдШреБрдорд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рдирдП рдХреЙрдиреНрдлрд┐рдЧрдореИрдкреНрд╕/рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдмрдирд╛рдХрд░, рдирдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд┐рд╕ рд╕реНрдкреЗрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдХреЗ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВред рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЖрдкрдХреЗ рдХреЙрдиреНрдлрд┐рдЧрдореИрдкреНрд╕/рд╕реЗрдХрд░реНрдЯреНрд╕ рдХреЛ рд╡рд░реНрдЬрди рдХрд░рдХреЗ рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддреИрдирд╛рддреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдХреЗ рдКрдкрд░ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд░реЛрдЯреЗрд╢рди рдХрд╛ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рдкреНрд░рдореБрдЦ рдХрд╛рд░рдг рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЭреБрдВрдб рдЫреЛрдбрд╝рд╛ рд╣реИ! рд╕реНрдерд╛рдиреАрдп рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд░рдЦрдирд╛, рдЕрджреНрдпрддрди рдХрд░рдирд╛, рдлрд┐рд░ рдирдП рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдирд╛ рдФрд░ рдЕрдВрдд рдореЗрдВ рдЖрд╢реНрд░рд┐рдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЙрд╕рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдЭреБрдВрдб рдореЗрдВ рд░рд╣рд╕реНрдпреЛрдВ рдХреЛ рдПрдкреАрдЖрдИ рд╕реЗ рдирд╣реАрдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдпрд╛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдирд┐рд╖реНрдкрд╛рджрди рдЬреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ), рдлрд┐рд░ cat рдЙрдирдХреА рдлрд╛рдЗрд▓реЗрдВред
рд╕рдВрдмрдВрдзрд┐рдд рдиреЛрдЯ рдкрд░, рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдУрдкрдирд╢рд┐рдлреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдПрдирд╡реА/рдХреЙрдиреНрдлрд┐рдЧрдореИрдк/рдЧреБрдкреНрдд рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдкреЙрдбреНрд╕ рдХреЛ рдСрдЯреЛ-рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рддрд╛ рд╣реИ? рдореИрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд╣реА рдЦрдбрд╝рд╛ рд╣реВрдБред

рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдРрдк рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреЙрдиреНрдлрд┐рдЧрдореИрдк/рд╕реАрдХреНрд░реЗрдЯ рдкрд░ рдЪреЗрдХрд╕рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

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

kubectl get po -l release=my-app -o name | cut -d"/" -f2 | while read p;do kubectl  delete po $p;sleep 30;done

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк ctrl+c рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ рдЫреЛрдбрд╝рд╛ рдерд╛, рд╡рд╣рд╛рдВ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ

@ so0k , рд╡реИрдХрд▓реНрдкрд┐рдХ рдЖрджреЗрд╢:

kubectl get pods|grep somename|awk '{print $1}' | xargs -i sh -c 'kubectl delete pod -o name {} && sleep 4'

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

реиренрежреорез #рейрейремремрек https://github.com/kubernetes/helm/issues/2639

https://stackoverflow.com/questions/41735829/update-a-deployment-image-in-kubernetes

kubectl scale --replicas=0 deployment application
kubectl scale --replicas=1 deployment application

https://stackoverflow.com/questions/40366192/kubernetes-how-to-make-deployment-to-update-image

рдПрдХ рдФрд░ рдЪрд╛рд▓ рд╢реБрд░реВ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ:

kubectl set image deployment/my-deployment mycontainer=myimage:latest

рдФрд░ рдлрд┐рд░:

kubectl set image deployment/my-deployment mycontainer=myimage

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░реЛрд▓рд┐рдВрдЧ-рдЕрдкрдбреЗрдЯ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛ рд▓реЗрдХрд┐рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ imagePullPolicy: "Always" рд╕реЗрдЯ рднреА рд╣реИред

рдПрдХ рдФрд░ рддрд░рдХреАрдм рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓реА, рдЬрд╣рд╛рдБ рдЖрдкрдХреЛ рдЫрд╡рд┐ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рд╡рд╣ рд╣реИ рдЙрд╕ рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рдХреЛ рдмрджрд▓рдирд╛ рдЬреЛ рдПрдХ рд░реЛрд▓рд┐рдВрдЧ рдЕрдкрдбреЗрдЯ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛, рдЬреИрд╕реЗ рдЯрд░реНрдорд┐рдиреЗрд╢рдирдЧреНрд░реЗрд╕рдкреАрд░рд┐рдпреЛрдбрд╕реЗрдХрдВрдбред рдЖрдк рдЗрд╕реЗ kubectl рдПрдбрд┐рдЯ рдкрд░рд┐рдирд┐рдпреЛрдЬрди your_deployment рдпрд╛ kubectl apply -f your_deployment.yaml рдпрд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

kubectl patch deployment your_deployment -p \
  '{"spec":{"template":{"spec":{"terminationGracePeriodSeconds":31}}}}'

http://rancher.com/docs/rancher/v1.4/hi/cattle/upgrading/

# Force an upgrade even though the docker-compose.yml for the services didn't change
$ rancher-compose up --force-upgrade

@ so0k @KIVAgant рдкреЙрдбреНрд╕ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдорддрд▓рдм рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╣реИ, рднрд▓реЗ рд╣реА рдХрдИ рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдЪрд▓ рд░рд╣реЗ рд╣реЛрдВред рдЬрдм рдХреЛрдИ strategy.rollingUpdate.maxUnavailable = 0 рд╕рд╛рде рдПрдХрд▓ рдкреЙрдб рдЪрд▓рд╛рддрд╛ рд╣реИ рддреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкрд╣рд▓реЗ рдореМрдЬреВрджрд╛ рдкреЙрдб рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдирдпрд╛ рдкреЙрдб рдмрдирд╛рддрд╛ рд╣реИред kubectl patch deployment рдЯреНрд░рд┐рдХ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреА рд╣реИ, рдкреЙрдбреНрд╕ рдХреЛ рд╣рдЯрд╛рдирд╛ рдирд╣реАрдВ рд╣реИред рдорд╛рдВрдЧ рдкрд░ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЧреИрд░-рд╣реИрдХреА рддрд░реАрдХрд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдм.рдбреЙрдХрд░ рдбреЙрдЯ рдХреЙрдо рд╕реЗ рдЗрдореЗрдЬ рдЪрд▓рд╛рддреЗ рд╕рдордп, рд╕реБрд░рдХреНрд╖рд╛ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рдЯреИрдЧ рдХреЛ рдкреИрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдирд╡реАрдирддрдо рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЦреАрдВрдЪрдирд╛" рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдХрд┐рд╕реА рднреА рдкреБрд░рд╛рдиреА рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЛрд▓рд┐рдВрдЧ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

ConfigMap/рдЧреБрдкреНрдд рдЕрджреНрдпрддрдиреЛрдВ рдХрд╛ рд░реЛрд▓рдЖрдЙрдЯ #22368 . рд╣реИ
рдирдИ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЖрд╕рд╛рди рд░реЛрд▓рдЖрдЙрдЯ #1697 . рд╣реИ
рдЗрди-рдкреНрд▓реЗрд╕ рд░реЛрд▓рд┐рдВрдЧ рдЕрдкрдбреЗрдЯ #9043 . рд╣реИ

рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рдкрд░ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ :
рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд░реЛрд▓рдЖрдЙрдЯ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЯреНрд░рд┐рдХ рдХреА рд╣реЗрд▓реНрдо рд╢рд┐рдЦрд░ рдкреНрд░рд╕реНрддреБрддрд┐: https://www.youtube.com/watch?v=dSw0w1x96ak

@ bgrant0607 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рдЬреЛ рдЕрдиреНрдп рдЯрд┐рдХрдЯреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ: https://github.com/kubernetes/kubernetes/issues/13488#issuecomment -136946912

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

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдореИрдВ рдЧрд▓рдд рд╣реВрдВред

рдореИрдВ рдореИрдиреНрдпреБрдЕрд▓ рдЪрд╛рд▓ рдХреЗ рдмрд┐рдирд╛ рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЛрд▓рд┐рдВрдЧ рдкреБрдирд░рд╛рд░рдВрдн рдХреЛ рдордЬрдмреВрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореЗрд░реЗ рдкрд╛рд╕ @rcoup рдФрд░ @paunin рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рдорд╛рди рдПрдХ-рд▓рд╛рдЗрдирд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ JSON рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП jq рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ bashrc рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХрд╣реАрдВ рднреА рдХреЙрд▓ рдХрд░ рд╕рдХреВрдВ

kubectl-restart() {
  kubectl get deploy $1 -o json | jq \
    'del(
      .spec.template.spec.containers[0].env[]
      | select(.name == "RESTART_"))
    | .spec.template.spec.containers[0].env += [{name: "RESTART_", value: now|tostring}]' | kubectl apply -f -
}

рдпрд╣ рдореБрдЭреЗ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: kubectl-restart my-deployment-name рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рдХрдВрдЯреЗрдирд░ рдореЗрдВ RESTART_ env var рдХреЛ рд╡рд░реНрддрдорд╛рди рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдкрд░ "рдЕрдкрдбреЗрдЯ" рдХрд░реЗрдЧрд╛ред рдореИрдВ рдПрдХ jq рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореВрд▓ рд░реВрдк рд╕реЗ рдпрд╣ рдкреБрд░рд╛рдиреЗ RESTART_ env var рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ (рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ) рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд╡рд╛рдкрд╕ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рд╡рд░реНрддрдорд╛рди рд╕рдордпред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдореВрд▓ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ ... рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рд╕реЗ рднрд░рд╛ рдХрдорд░рд╛ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реЛрдЧрд╛ рдХрд┐ "рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдиреЗ" рдХреА рдХреНрд╖рдорддрд╛ рдХреБрдЫ рдРрд╕реА рд╣реИ рдЬреЛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИрдХ рдФрд░ рд╕рдм рдХреБрдЫ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдмрдбрд╝рд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рд╣реИред рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдЖрдк kubectl apply -f рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рдШрдЯрдХ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдЗрд╕рдореЗрдВ RESTART_xxx env var рд╣реИ, рднрд▓реЗ рд╣реА рдХреБрдЫ рдФрд░ рди рдмрджрд▓реЗред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдЕрдЧрд▓реА рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкрд░ рдирдХрд▓реА рдкреБрдирд░рд╛рд░рдВрдн рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдпрджрд┐ рдЗрд╕реЗ рдкрд┐рдЫрд▓реЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рдЗрд╕ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рдмреАрдЪ рдХрднреА рднреА рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдЖрджрд░реНрд╢ рдирд╣реАрдВ...

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд░реЛрд▓рд┐рдВрдЧ-рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдмреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╢реАрд░реНрд╖ рдкрд░ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВрдиреЗ " terminationGracePeriodSeconds рдХреА рдкреИрдЪ рдкрд░рд┐рдирд┐рдпреЛрдЬрди" рд░рдгрдиреАрддрд┐ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреИрд╢ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрд╛ рдерд╛ @whereisaaron рдКрдкрд░ рдЙрдирдХреА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдЙрджреНрдзреГрдд (рд╕реНрд░реЛрдд: https://stackoverflow.com/a/40368520/90442)ред

# $1 is a valid namespace
function refresh-all-pods() {
  echo
  DEPLOYMENT_LIST=$(kubectl -n $1 get deployment -o json|jq -r .items[].metadata.name)
  echo "Refreshing pods in all Deployments"
  for deployment_name in $DEPLOYMENT_LIST ; do
    TERMINATION_GRACE_PERIOD_SECONDS=$(kubectl -n $1 get deployment "$deployment_name" -o json|jq .spec.template.spec.terminationGracePeriodSeconds)
    if [ "$TERMINATION_GRACE_PERIOD_SECONDS" -eq 30 ]; then
      TERMINATION_GRACE_PERIOD_SECONDS='31'
    else
      TERMINATION_GRACE_PERIOD_SECONDS='30'
    fi
    patch_string="{\"spec\":{\"template\":{\"spec\":{\"terminationGracePeriodSeconds\":$TERMINATION_GRACE_PERIOD_SECONDS}}}}"
    kubectl -n $1 patch deployment $deployment_name -p $patch_string
  done
  echo
}

рдпрд╣рд╛рдБ рд╕рд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯрд┐рдкреНрдкрдгреА/рдЕрдкрдбреЗрдЯ

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

@ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ / рд╕рд┐рдЧ-рдРрдкреНрд╕-рдлреАрдЪрд░-рдЕрдиреБрд░реЛрдз @ kow3ns @janetkuo

@gjcarneiro рдХреНрдпрд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ RESTART_xxx env var рд╣реИ рдпрд╛ рдирд╣реАрдВ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореИрдВ рд▓рд╛рдЗрд╡ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд env var рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВред

cc @apelisse

@gjcarneiro рд╣рд╛рдБ, @mattdodge рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд▓рд╛рдЧреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдЕрдВрддрд┐рдо рд▓рд╛рдЧреВ рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрдЪ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдмрд╣реБрдд рд╣реА рдмреБрдирд┐рдпрд╛рджреА рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд▓рдЧрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдирд╣реАрдВ рд╣реИ рдФрд░ рди рд╣реА # 22368 рдкрд░, рд▓реЗ рдЖрд╣ :-(

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

@alcohol , рдЗрд╕реЗ рдЬрд╛рдВрдЪреЗрдВ https://github.com/kubernetes/kubernetes/issues/13488#issuecomment -356892053

рдкрд╛рд░рд┐рддреЛрд╖рд┐рдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :-)

Openshift рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЯреНрд░рд┐рдЧрд░ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ, рдЬреЛ рдЫрд╡рд┐ рдкрд░рд┐рд╡рд░реНрддрди, рд╡реЗрдмрд╣реБрдХ рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рд░реЛрд▓рдЖрдЙрдЯ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреАред рд╕рд╛рде рд╣реА рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореИрдиреБрдЕрд▓ рд░реЛрд▓рдЖрдЙрдЯред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдбреЙрдХрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╣реИ рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ рд░реЛрд▓рдмреИрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ - .spec.template рд╕реЗ рдЙрддреНрдкрдиреНрди рдкреЙрдб рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЦреАрдВрдЪрддреЗ рд╕рдордп image-tag:@digest рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд░реЛрд▓рдмреИрдХ рдкрд┐рдЫрд▓реЗ рд░реЛрд▓рдЖрдЙрдЯ рдХреА рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭ рд░рд╣рд╛ рд╣реВрдБред рдмрд╕ рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдкреЙрдб> рдЯреЗрдореНрдкреНрд▓реЗрдЯ> рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рддрд╣рдд рдХрд┐рд╕реА рд▓реЗрдмрд▓ рдХреЗ рдорд╛рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдмрд╛рдж kubectl apply -f file.yaml рдмрд╛рдж рдПрдХ рд░реЛрд▓рд┐рдВрдЧ рдЕрдкрдбреЗрдЯ рд╣реЛрддрд╛ рд╣реИ

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

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдЖрдк рдПрдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк kubectl apply -f some.yaml , рд╣реИ рдирд╛? рдЖрдо рддреМрд░ рдкрд░, рдЕрдЧрд░ some.yaml рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ рддреЛ рдХреБрдЫ рднреА рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

рд▓реЗрдХрд┐рди рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдХрд┐рд╕реА рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдмрд▓ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред рдЕрдЧрд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкрд░ рдЖрдк рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ kubectl apply -f some.yaml рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ yaml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдорд╛рди рд▓реЗрдмрд▓ рдирд╣реАрдВ рд╣реИ, рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

@gjcarneiro рдпрджрд┐ рдЖрдк apply рдХрд░рддреЗ рд╣реИрдВ, рддреЛ kubectl.kubernetes.io/last-applied-configuration рдПрдиреЛрдЯреЗрд╢рди рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЕрдЧрд▓рд╛ apply рдПрдХ рдФрд░ рдкреБрдирд░рд╛рд░рдВрдн рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдореИрдВ kubectl рдореЗрдВ рд░реЛрд▓рд┐рдВрдЧ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрдорд╛рдВрдб рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмреАрдЪ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░):

kubectl patch deployment mydeployment -p '{"spec":{"template":{"spec":{"containers":[{"name":"mycontainer","env":[{"name":"RESTART_","value":"'$(date +%s)'"}]}]}}}}'

рдЗрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ .bashrc рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрдВрддрд░рд┐рдо рд╕рдорд╛рдзрд╛рди рд╣реИред

рдЖрд╣, рдЕрдЪреНрдЫрд╛, рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛, рдзрдиреНрдпрд╡рд╛рдж!

рдореБрдЭреЗ рдмреИрд╢ рдЙрдкрдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдореЗрд░реА рдХрдВрдкрдиреА рдореЗрдВ рд╣рдордиреЗ Python+aiohttp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Kubernetes рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдУрдкрди рд╕реЛрд░реНрд╕рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛, рдмрд╕ рдЖрд▓рд╕реА рд╣реЛ рдЧрдпрд╛ ...

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рд╡рд╣реА рд╕рдорд╛рдзрд╛рди рд╕рдорд╛рдзрд╛рди рджреЛрд╣рд░рд╛ рд░рд╣реЗ рд╣реИрдВ - рдХреГрдкрдпрд╛ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░рд╛ рдереНрд░реЗрдб рдкрдврд╝реЗрдВ

@joelittlejohn рдореИрдВрдиреЗ рдЖрдкрдХрд╛ рдореИрдХреНрд░реЛ рдЪрд▓рд╛рдпрд╛ рдФрд░ рдЗрд╕рдиреЗ рдореЗрд░реЗ рдкреЙрдбреНрд╕ рдХреЗ рд░рд┐рдмреВрдЯ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдЧрдПред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд░реЛрд▓рд┐рдВрдЧ рд░реАрдмреВрдЯ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛, рдирд╣реАрдВ?

@Macmee рдпрд╣ рдЖрдкрдХреЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдЖрджреЗрд╢ рд╕рд┐рд░реНрдл рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред рдкреЙрдбреНрд╕ рдХреЛ рдЖрдкрдХреЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд░реЛрд▓ рдЖрдЙрдЯ strategy рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдХреА рддрд░рд╣ рд╣реА рд╣реИред

рдпрд╣ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХрд╛ .spec.strategy.rollingUpdate.maxUnavailable рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

@japzio рдЬреИрд╕рд╛ рдХрд┐ рд╣реЗрд▓реНрдо рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рдХреЙрдиреНрдлрд┐рдЧрдореИрдк рдХрд╛ рдЪреЗрдХрд╕рдо рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рдЖрдпрд╛ рд╣реИ? рд╣рдо рднреА рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред @bgrant0607 @nikhiljindal

@ рднреЛрд▓рд╛рдЧрдмреНрдмрд░-рдПрдордЯреА рдЖрдкрдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реИ?

cc @kow3ns @janetkuo

@bgrant0607 @kow3ns @janetkuo рд╣рдорд╛рд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдХрдИ рдЧреБрдирд╛ рд╣реИред

  1. рд░рд╣рд╕реНрдп рдЕрджреНрдпрддрди рдХрд░рдирд╛ - рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рдорд╣рд╕реВрд╕ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдореЗрд░реА рдЬреИрд╕реА рдХрдИ рдХрдВрдкрдирд┐рдпрд╛рдВ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд╛рд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрдиреА рдХрдВрдЯреЗрдирд░ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬрд┐рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреЛ рдЧреБрдкреНрдд рд╕реБрдЭрд╛рд╡ рдЯрд┐рдкреНрдкрдгреА рдФрд░ рдЕрдиреНрдп рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рджреЗрд╡ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ ConfigMaps рд╕реЗ рд░рд╣рд╕реНрдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкреЙрдбреНрд╕ рдХреЛ рдорд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреБрдЫ рд╕реЗрдХрдВрдб рдХрд╛ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╣реЛрдЧрд╛ред рдпрд╣ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред рд░реЛрд▓рд┐рдВрдЧ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧрдХреЗрд╕ рд╣реИред

  2. рдпрд╣ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдордЧреНрд░ рджрд╛рдпрд░рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ, рдЕрд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Play рдврд╛рдВрдЪреЗ рдкрд░ рдЪрд▓ рд░рд╣реЗ 4-5 рднрд╛рд░реА рдЬрд╛рд╡рд╛ рдРрдкреНрд╕ рд╣реИрдВред рд╣рдо рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдЬрд╛рд╡рд╛ рдкреЙрдбреНрд╕ рдХреА рдореЗрдореЛрд░реА рдЦрдкрдд рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рдмрдврд╝ рдЬрд╛рддреА рд╣реИ рдФрд░ рдореЗрдореЛрд░реА рдХреА рд╕реАрдорд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдкреЙрдбреНрд╕ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдХреЗ рд╕рд╛рде рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЬрд╛рд╡рд╛ рдореБрджреНрджрд╛ рд╣реИ stackoverflow рдореБрджреНрджрд╛ рдФрд░ Kubernetes рдореБрджреНрджрд╛ рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред 3-4 рдШрдВрдЯреЗ рдХреА рдЕрд╡рдзрд┐ рдореЗрдВ рд╕рднреА рдкреЙрдбреНрд╕ рдХрд╛ рд░реЛрд▓рд┐рдВрдЧ-рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдореЗрдореЛрд░реА рдЦрдкрдд рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░ рджреЗрдЧрд╛ рдФрд░ рд╣рдорд╛рд░реЗ рдРрдкреНрд╕ рдХреЛ рдмрд┐рдирд╛ рд╕реНрдкрд╛рдЗрдХреНрд╕ рдХреЗ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдЖрд╢реНрд╡рд╕реНрдд рдерд╛ рдФрд░ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

@ рднреЛрд▓рд╛рдЧрдмреНрдмрд░-рдПрдордЯреА рдмрд╕ рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдмрджрд▓реЗрдВ рдФрд░ рдпрд╣ рдПрдХ рд░реЛрд▓рд┐рдВрдЧ рддреИрдирд╛рддреА рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдЧрд╛:

kubectl patch deployment mydeployment -p '{"spec":{"template":{"spec":{"containers":[{"name":"mycontainer","env":[{"name":"LAST_MANUAL_RESTART","value":"'$(date +%s)'"}]}]}}}}'

@montanaflynn рдпрд╣ рдПрдХрджрдо рд╕рд╣реА рд╣реИред рд╣рдордиреЗ рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЛ рдЖрдЬ рд╣реА рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдареАрдХ рдЪрд▓рддрд╛ рд╣реИред рдЕрдиреЗрдХ рдЕрдиреЗрдХ рдзрдиреНрдпрд╡рд╛рдж!

рд╕реАрд╕реА @huzhengchuan

рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛: рдХрдВрдЯреЗрдирд░рдб рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рдореИрдВ рд╕рднреА рдкреЙрдбреНрд╕ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред https://seclists.org/oss-sec/2019/q1/119 рдпрд╛ рддреЛ рдХреНрд▓рд╕реНрдЯрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдиреАрдЪреЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдПрдХ рд░реЛрд▓рд┐рдВрдЧ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИред рдкреБрдирд░рд╛рд░рдВрдн рдЖрджреЗрд╢ рд╣реЛрдиреЗ рд╕реЗ рдмрд╣реБрдд рдлрд░реНрдХ рдкрдбрд╝реЗрдЧрд╛!

рдЕрджреНрдпрддрди , рд╕рдорд╛рдзрд╛рди:

kubectl set env --all deployment --env="LAST_MANUAL_RESTART=$(date +%s)" --namespace=...
kubectl set env --all daemonset --env="LAST_MANUAL_RESTART=$(date +%s)" --namespace=...

@realfresh рдЖрдк рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рд╣реИрдВред рд░реИрдВрдЪрд░ рдореЗрдВ annotation:{creatTime: 12312312} рдЬреЛрдбрд╝реЗрдВ!

kubectl set env deployment mydeployment --env="LAST_RESTART=$(date)" --namespace ...

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдиреНрдпреВрдирддрдо рдЖрджреЗрд╢ рд╣реИ рдЬреЛ рдПрдХ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИред

cc @monopole @apelisse

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

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

рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рдореБрджреНрджрд╛ (рд╕реНрд╡рдпрдВ рдХреЛ рдиреЛрдЯ)

  1. рдореБрдЭреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рддрд░реНрдХ рдХреЛ рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рдПрдкреАрдЖрдИ рдореЗрдВ рдмрд╣рдиреЗ рджрд┐рдП рдмрд┐рдирд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдПрдкреАрдЖрдИ рдХреЛ рдШреЛрд╖рдгрд╛рддреНрдордХ рд░рдЦрдиреЗ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдореЗрдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реАрдЖрдИ/рд╕реАрдбреА рдкреНрд░рдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрддрддрд╛рдУрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд╣рдорд╛рд░реЗ рд╕рдореНрдореЗрд▓рди рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  2. рдореИрдВ рдПрдХ рд░реЛрд▓рд┐рдВрдЧ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдПрдкреАрдЖрдИ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рд░реЛрд▓рд┐рдВрдЧ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рд╕рдВрд╕рд╛рдзрди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдирд┐рд╖реНрдХрд╛рд╕рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 1 рд╕реЗ 1 рдкреЙрдбреНрд╕ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ рджрд┐рдпрд╛ (рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╡реНрдпрд╡рдзрд╛рди рдмрдЬрдЯ рдХрд╛ рд╕рдореНрдорд╛рди), рд▓реЗрдХрд┐рди рдРрд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд╕реАрдЖрд░рдбреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╛рдиреА рдореБрдЭреЗ рдХрд╛рд░рдг рдкрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ рд╣рдореЗрдВ рдЗрд╕реЗ рдкреЗрдбрд╝ рдореЗрдВ рдХрд░рдирд╛ рд╣реИ)ред
  3. рдШреЛрд╖рдгрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП lastRestartedAt=TIMESTAMP рдПрдиреЛрдЯреЗрд╢рди рдЬреЛрдбрд╝рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╣реИрдХ рдЬреИрд╕рд╛ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
  4. рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдпреЛрдЧрджрд╛рди рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ (рдкреЗрдбрд╝ рдореЗрдВ рдпрд╛ рдЕрдиреНрдпрдерд╛) рддреЛ рдХреГрдкрдпрд╛ рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ рд░реЗрдкреЛ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреЗрдИрдкреА рдкреАрдЖрд░ рд▓рд┐рдЦрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдпрджрд┐ рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рд╡рд░реНрдХрд▓реЛрдб рдПрдкреАрдЖрдИ рдореЗрдВ рд╕рдореАрдХреНрд╖рд╛/рд╢реЗрдкрд░реНрдб рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рдпрджрд┐ [2] рдЬреИрд╕реЗ рд╕реАрдЖрд░рдбреА рдирд┐рдпрдВрддреНрд░рдХ рдХреА рдкреЗрд╢рдХрд╢ рдХреА рдЬрд╛рддреА рд╣реИ рддреЛ рд╣рдо рдЗрд╕реЗ рд╕рдореБрджрд╛рдп рдкреНрд░рд╛рдпреЛрдЬрд┐рдд рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрд╕рдЖрдИрдЬреА рдРрдкреНрд╕ рдореЗрдВ рдкреНрд░рд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдШреЛрд╖рдгрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП lastRestartedAt=TIMESTAMP рдПрдиреЛрдЯреЗрд╢рди рдЬреЛрдбрд╝рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╣реИрдХ рдЬреИрд╕рд╛ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рд╣реИрдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдХреЛрдИ рдХреНрд░реВ рдкреНрд▓рдЧрдЗрди рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреИрдЪ рднреЗрдЬрддрд╛ рд╣реИред kubectl restart-deployment <deployment_name> ?

kubectl rollout restart рдЬреЛ рдПрдХ рдирдП 'рд░реЛрд▓рдЖрдЙрдЯ' рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдирд┐рдпреЛрдЬрди/рдбреЗрдореЙрдирд╕реЗрдЯ/рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ рдХреЛ рдкреИрдЪ рдХрд░рддрд╛ рд╣реИ?

рдпрд╣ @kow3ns рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг (3) рдХреЗ kubectl rollout рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛ред

@whereisaaron рдореИрдВ рд╕рдЬрд╛ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ)

рдирдП рд░рд╣рд╕реНрдпреЛрдВ рдФрд░ рдХреЙрдиреНрдлрд┐рдЧрдореИрдкреНрд╕ рдХреЛ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░реА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдЕрднреА рднреА #22368 рд╣реИ: рдирдП рдмрдирд╛рдПрдВред рдпрд╣ рд░реЛрд▓рдЖрдЙрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рдиреЗ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╣рдореЗрдВ рдкреБрд░рд╛рдиреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЬреАрд╕реА рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:
https://github.com/kubernetes/community/pull/1163
https://github.com/kubernetes/community/pull/2287

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

рд╕реАрд╕реА @ рдореЛрдиреЛрдкреЛрд▓

рдирдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, CI/CD рдпрд╛ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдЬреЛ рдЯреИрдЧ рдХреЛ рдкрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд▓ рдХрд░рддрд╛ рд╣реИ: #1697ред

рдирд╛рдЦреБрд╢ рдкреЙрдбреНрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ descheduler (https://github.com/kubernetes-incubator/descheduler) рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ, рдЬреЛ рдХрдВрдЯреЗрдирд░ рд╕реНрдерд┐рддрд┐, рдХреЛрд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдХрд╕реНрдЯрдо рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:

https://github.com/kubernetes/community/blob/master/contributors/design-proposals/scheduling/rescheduler.md
https://github.com/kubernetes/community/blob/master/contributors/design-proposals/scheduling/rescheduling.md

рд╕рд╛рде рд╣реА, рд╕реАрдХреНрд░реЗрдЯ рдФрд░ рдХреЙрдиреНрдлрд┐рдЧрдореИрдк рдХреЛ рдХреИрд╕реЗ рд╣реИрдВрдбрд▓ рдХрд░реЗрдВ, рдЗрд╕ рдкрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ: https://kubectl.docs.kubernetes.io/pages/app_management/secrets_and_configmaps.html

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

рдареАрдХ рд╣реИ, kubectl rollout restart рдХрд╛ рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ!

рд▓рдЧрднрдЧ 4 рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕реБрдирдХрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛, рдзрдиреНрдпрд╡рд╛рдж!

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдорд░реНрдЬ рдХрд┐рдП рдЧрдП рдкреАрдЖрд░ рдХреЗрд╡рд▓ рддреИрдирд╛рддреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?

рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдиреЗ рдбреЗрдореЛрдирд╕реЗрдЯ рдФрд░ рд╕реНрдЯреЗрдЯрдлреБрд▓рд╕реЗрдЯ рдХреЛ рднреА рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡реНрдпрдХреНрдд рдХреА рд╣реИред

@apelisse рдПрд╕рдбреАрдХреЗ рдпрд╛ рд╕рд┐рд░реНрдл рдХреБрдмреЗрдХреНрдЯрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

@ рдИ-рдирд┐рдХреЛрд▓реЛрд╡ рдПрд╕рдбреАрдХреЗ рдХреНрдпрд╛ рд╣реИ?

рдореЗрд░рд╛ рдорддрд▓рдм рдЧреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдерд╛ рдЬрд┐рд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдЧреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдирд╣реАрдВ, рдЖрдкрдХреЛ Kubectl рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП (рдмрд╣реБрдд рд╣реА рд╕рд░рд▓) рддрд░реНрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдареАрдХ рд╣реИ, kubectl рд░реЛрд▓рдЖрдЙрдЯ рдкреБрдирд░рд╛рд░рдВрдн рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ!

рдЗрд╕рдХрд╛ рдХреМрди рд╕рд╛ kubectl рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдЧрд╛?

рдЗрд╕рдХрд╛ рдХреБрдмреЗрдХреНрдЯрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреНрдпрд╛ рд╣реЛрдЧрд╛?

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.15

"рд░реИрдкрд┐рдб" рд░рд┐рд▓реАрдЬрд╝ рдЪреИрдирд▓ рдкрд░ рд╣рдорд╛рд░реЗ GKE рдХреНрд▓рд╕реНрдЯрд░ рдиреЗ рдЦреБрдж рдХреЛ Kubernetes 1.16 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдм kubectl rollout restart рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ:

Kubectl рд░реЛрд▓рдЖрдЙрдЯ рдкреБрдирд░рд╛рд░рдВрдн рдкрд░рд┐рдирд┐рдпреЛрдЬрди myapp
рддреНрд░реБрдЯрд┐: рдЕрдЬреНрдЮрд╛рдд рдЖрджреЗрд╢ "рдкрд░рд┐рдирд┐рдпреЛрдЬрди myapp рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ"

@nikhiljindal рдиреЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рд╕реНрдкреЗрдХреНрд╕ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрджрд▓рд╛рд╡ рдХреЗ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рдореИрдВ рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдкрд┐рдЫрд▓реА рдореЙрдбрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЛ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣ рдЯреНрд░реЗрдб-рдСрдл рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдореЙрдбрд▓ рдХреЛ рдРрдк рдХреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рд▓рд╛рдиреЗ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрд▓ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛рдпрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдХреБрдЫ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ)ред

рдЕрд░реЗ @dimileeh

рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдм рдЖрдк рдХреБрдмреЗрдХреНрдЯрд▓ рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдФрд░ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛? рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдкреНрд░рддрд┐рдЧрдорди рдерд╛, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИ рдереАред

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

рд╣рд╛рдп @apelisse , рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдЬрдм рдореИрдВ Google рдХреНрд▓рд╛рдЙрдб рдЯрд░реНрдорд┐рдирд▓ рд╕реЗ kubectl version рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдирд┐рдореНрди рдорд┐рд▓рддрд╛ рд╣реИ:

Client Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.11-dispatcher", GitCommit:"2e298c7e992f83f47af60cf4830b11c7370f6668", GitTreeState:"clean", BuildDate:"2019-09-19T22:20:12Z", GoVersion:"go1.11.13", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.0-gke.20", GitCommit:"d324c1db214acfc1ff3d543767f33feab3f4dcaa", GitTreeState:"clean", BuildDate:"2019-11-26T20:51:21Z", GoVersion:"go1.12.11b4", Compiler:"gc", Platform:"linux/amd64"}

рдЬрдм рдореИрдВрдиреЗ kubectl рдХреЛ gcloud components update рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рддреЛ рдЙрд╕рдиреЗ рдХрд╣рд╛ рдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рднреА рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ kubectl рд╕рдВрд╕реНрдХрд░рдг рд╡рд╣реА рд░рд╣рд╛, рдЬрдмрдХрд┐ K8S рдХреНрд▓рд╕реНрдЯрд░ 1.15 рд╕реЗ 1.16 рддрдХ рдЕрдкрдЧреНрд░реЗрдб рд╣реБрдЖред

Kubenetes рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ 1.17, 1.16 рдФрд░ 1.15 рдореЗрдВ kubectl rollout restart рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рддреЛ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдмрд╣реБрдореВрд▓реНрдп рдпреЛрдЧрджрд╛рди 1.16 рд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рд╕рдХрддрд╛ рдерд╛?


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

рдореИрдВ рдпрд╣рд╛рдВ рдбреЙрдХреНрд╕ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ:
https://v1-16.docs.kubernetes.io/docs/reference/generated/kubectl/kubectl-commands# -em-restart-em-

рдЖрд╣, рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдпрд╣рд╛рдБ рджреЗрдЦ рд░рд╣рд╛ рдерд╛:
https://v1-16.docs.kubernetes.io/docs/reference/kubectl/cheatsheet/

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

рдЧреБрд░реБ, 19 рджрд┐рд╕рдВрдмрд░, 2019 рдХреЛ рджреЛрдкрд╣рд░ 12:40 рдмрдЬреЗ рджрд┐рдорд┐рддреНрд░реА рд▓рд┐рд╣рд╣рддреНрд╕реЛрд╡ рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдЖрд╣, рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдпрд╣рд╛рдБ рджреЗрдЦ рд░рд╣рд╛ рдерд╛:
https://v1-16.docs.kubernetes.io/docs/reference/kubectl/cheatsheet/

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/kubernetes/kubernetes/issues/13488?email_source=notifications&email_token=AAOXDLCDSTPYK6EGBQWSRADQZPL5BA5CNFSM4BOYZ5Z2YY3PNVWWK3TUL52HS4DFVREXG43VMVVBJ65ZLOORNMVX
рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAOXDLHWCU4T6NCSHOYZIELQZPL5BANCNFSM4BOYZ5ZQ
.

@dimileeh PTAL https://github.com/kubernetes/website/pull/18224 (рд╡рд┐рд▓рдп рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдореИрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рдЪреЗрд░реА-рдкрд┐рдХ рдХрд░реВрдВрдЧрд╛)ред

@dimileeh рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЖрдкрдХреЗ kubectl рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИ, рд╣рдо рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред

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

@anuragtr рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдк рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ

kubectl rollout restart deploy NAME

рдореИрдВ рдЙрд╕ [1] рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЦреБрд╢реА рд╣реИ рдХрд┐ рдпрд╣ рдЕрдм рдорд╛рдирдХ рдХреБрдмреЗрдХреНрдЯрд▓ рдореЗрдВ рд╣реИ! рдзрдиреНрдпрд╡рд╛рдж

[рез] https://github.com/mauri870/kubectl-renew

@anuragtr рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдк рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ

kubectl rollout restart deploy NAME

@ рджреЗрд╢рджреНрд░реЛрд╣реА

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

tbchj picture tbchj  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

montanaflynn picture montanaflynn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jason-riddle picture jason-riddle  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sanjana-bhat picture sanjana-bhat  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

zetaab picture zetaab  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ