Shinyproxy: Shinyproxy рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди рд░реЛрд▓рд┐рдВрдЧ рдЕрдирд╛рде рдкреЙрдб рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдЕрдЧре░ 2019  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: openanalytics/shinyproxy

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

рдкреНрд░рдЬрдирди рдХрд░рдирд╛:

  • рдХреБрдмреЗрдХреНрдЯрд▓ рд╕рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдирд╛рдо рддреИрдпрд╛рд░ рд╕реНрдерд┐рддрд┐ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдЖрдпреБ
рдкреЙрдб/рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА-7f76d48c79-8x9hs 2/2 рд░рдирд┐рдВрдЧ 0 41m

рдирд╛рдо рдкреНрд░рдХрд╛рд░ рдХреНрд▓рд╕реНрдЯрд░-рдЖрдИрдкреА рдмрд╛рд╣рд░реА-рдЖрдИрдкреА рдкреЛрд░реНрдЯ (рдПрд╕) рдЖрдпреБ:
рд╕реЗрд╡рд╛/рдЪрдордХрджрд╛рд░ NodePort 172.30.85.1918080:32094/рдЯреАрд╕реАрдкреА 40m

рдирд╛рдо рд╡рд╛рдВрдЫрд┐рдд рд╡рд░реНрддрдорд╛рди рдЕрдк-рдЯреВ-рдбреЗрдЯ рдЙрдкрд▓рдмреНрдз рдЖрдпреБ
рдкрд░рд┐рдирд┐рдпреЛрдЬрди.apps/shinyproxy 1 1 1 1 41m

рдирд╛рдо рд╡рд╛рдВрдЫрд┐рдд рд╡рд░реНрддрдорд╛рди рддреИрдпрд╛рд░ рдЖрдпреБ
рдкреНрд░рддрд┐рдХреГрддрд┐рд╕реЗрдЯ.рдПрдкреНрд╕/shinyproxy-7f76d48c79 1 1 1 41m

рдирд╛рдо рд╣реЛрд╕реНрдЯ/рдкреЛрд░реНрдЯ рдкрде рд╕реЗрд╡рд╛рдПрдВ рдкреЛрд░реНрдЯ рдЯрд░реНрдорд┐рдиреЗрд╢рди рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб
root.route.openshift.io/shinyproxy рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА-aap.apps.cpaas.service.test рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реАрдХреЛрдИ рдирд╣реАрдВ

  • рдРрдк рдкрд░ рд▓реЙрдЧрдСрди рдХрд░реЗрдВ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдПрдХ рдЪрдордХрджрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрд▓рдбреАрдПрдкреА рдСрде рдФрд░/рдРрдк_рдбрд╛рдпрд░реЗрдХреНрдЯ/ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдкреЙрдб рдХрд╛рдЯрд╛ рдЧрдпрд╛ рд╣реИ) - рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛

рдирд╛рдо рддреИрдпрд╛рд░ рд╕реНрдерд┐рддрд┐ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдЖрдпреБ
рдкреЙрдб/рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА-7f76d48c79-8x9hs 2/2 рд░рдирд┐рдВрдЧ 0 43m
рдкреЙрдб/рдПрд╕рдкреА-рдкреЙрдб-e7603441-03ba-470b-925a-22cfba1716de 1/1 рд░рдирд┐рдВрдЧ 0 12s

рдирд╛рдо рдкреНрд░рдХрд╛рд░ рдХреНрд▓рд╕реНрдЯрд░-рдЖрдИрдкреА рдмрд╛рд╣рд░реА-рдЖрдИрдкреА рдкреЛрд░реНрдЯ (рдПрд╕) рдЖрдпреБ:
рд╕реЗрд╡рд╛/рдЪрдордХрджрд╛рд░ NodePort 172.30.85.1918080:32094/рдЯреАрд╕реАрдкреА 43m

рдирд╛рдо рд╡рд╛рдВрдЫрд┐рдд рд╡рд░реНрддрдорд╛рди рдЕрдк-рдЯреВ-рдбреЗрдЯ рдЙрдкрд▓рдмреНрдз рдЖрдпреБ
рдкрд░рд┐рдирд┐рдпреЛрдЬрди.apps/shinyproxy 1 1 1 1 43m

рдирд╛рдо рд╡рд╛рдВрдЫрд┐рдд рд╡рд░реНрддрдорд╛рди рддреИрдпрд╛рд░ рдЖрдпреБ
рдкреНрд░рддрд┐рдХреГрддрд┐рд╕реЗрдЯ.рдПрдкреНрд╕/shinyproxy-7f76d48c79 1 1 1 43m

рдирд╛рдо рд╣реЛрд╕реНрдЯ/рдкреЛрд░реНрдЯ рдкрде рд╕реЗрд╡рд╛рдПрдВ рдкреЛрд░реНрдЯ рдЯрд░реНрдорд┐рдиреЗрд╢рди рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб
root.route.openshift.io/shinyproxy рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА-aap.apps.cpaas.service.test рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реАрдХреЛрдИ рдирд╣реАрдВ

  • рдирдИ рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж:

Kubectl рд╕реНрдХреЗрд▓ --replicas=0 рдкрд░рд┐рдирд┐рдпреЛрдЬрди/рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА
рдкрд░рд┐рдирд┐рдпреЛрдЬрди.рдПрдХреНрд╕рдЯреЗрдВрд╢рди/рд╢рд┐рдирд┐рдкреНрд░реЙрдХреНрд╕реА рд╕реНрдХреЗрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛

Kubectl рд╕реНрдХреЗрд▓ --replicas=1 рдкрд░рд┐рдирд┐рдпреЛрдЬрди/рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА
рдкрд░рд┐рдирд┐рдпреЛрдЬрди.рдПрдХреНрд╕рдЯреЗрдВрд╢рди/рд╢рд┐рдирд┐рдкреНрд░реЙрдХреНрд╕реА рд╕реНрдХреЗрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛

  • рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА рдФрд░ рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдирдИ рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рд╣реИред

рдирд╛рдо рддреИрдпрд╛рд░ рд╕реНрдерд┐рддрд┐ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдЖрдпреБ
рдкреЙрдб/рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА-7f76d48c79-l5fvw 0/2 рдХрдВрдЯреЗрдирд░ 0 4s рдмрдирд╛рдирд╛
рдкреЙрдб/рдПрд╕рдкреА-рдкреЙрдб-e7603441-03ba-470b-925a-22cfba1716de 1/1 рд░рдирд┐рдВрдЧ 0 1рдореА

рдирд╛рдо рдкреНрд░рдХрд╛рд░ рдХреНрд▓рд╕реНрдЯрд░-рдЖрдИрдкреА рдмрд╛рд╣рд░реА-рдЖрдИрдкреА рдкреЛрд░реНрдЯ (рдПрд╕) рдЖрдпреБ:
рд╕реЗрд╡рд╛/рдЪрдордХрджрд╛рд░ NodePort 172.30.85.1918080:32094/рдЯреАрд╕реАрдкреА 44m

рдирд╛рдо рд╡рд╛рдВрдЫрд┐рдд рд╡рд░реНрддрдорд╛рди рдЕрдк-рдЯреВ-рдбреЗрдЯ рдЙрдкрд▓рдмреНрдз рдЖрдпреБ
рдкрд░рд┐рдирд┐рдпреЛрдЬрди.apps/shinyproxy 1 1 1 0 45m

рдирд╛рдо рд╡рд╛рдВрдЫрд┐рдд рд╡рд░реНрддрдорд╛рди рддреИрдпрд╛рд░ рдЖрдпреБ
рдкреНрд░рддрд┐рдХреГрддрд┐рд╕реЗрдЯ.рдПрдкреНрд╕/shinyproxy-7f76d48c79 1 1 0 45m

рдирд╛рдо рд╣реЛрд╕реНрдЯ/рдкреЛрд░реНрдЯ рдкрде рд╕реЗрд╡рд╛рдПрдВ рдкреЛрд░реНрдЯ рдЯрд░реНрдорд┐рдиреЗрд╢рди рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб
root.route.openshift.io/shinyproxy рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА-aap.apps.cpaas.service.test рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реАрдХреЛрдИ рдирд╣реАрдВ

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

  • рдкреЙрдб рдЬреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╡рд╣ рд╕реБрд▓рдн рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдирдИ рд╕реЗрд╡рд╛ рдЕрджреНрдпрддрди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ рд╕реЗрд╡рд╛ рдХреЗ рдорд╛рд░реНрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

  • рдпрд╣ рдкрд╣рдЪрд╛рдирдирд╛ рднреА рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдкреЙрдб рдмрд╛рд╕реА рд╣реИрдВ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ

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

рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА рдпрд╛ рдХрдВрдЯреЗрдирд░рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдРрдк рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдФрд░ рдЗрдирд╛рдпрдд рд╕реЗ рдмрдВрдж рд╣реИред

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

рдореИрдВрдиреЗ рдкрдврд╝рд╛ рд╣реИ рдХрд┐ Kubernetes рдЗрди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдФрд░ рд╢рдЯрдбрд╛рдЙрди рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ v1.18 рдореЗрдВ рд╣рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ:
https://github.com/kubernetes/enhancements/issues/753
https://banzaicloud.com/blog/k8s-sidecars/

рддрдм рддрдХ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреАрд╡рдирдЪрдХреНрд░ рдПрдиреЛрдЯреЗрд╢рди рдбрд╛рд▓рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рд╣реИ:

          lifecycle:
            preStop:
              exec:
                command: ["sh", "-c", "sleep 5"] # wait 5 seconds to let shinyproxy remove the pods on graceful shutdown

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

рдирдорд╕реНрддреЗ @ramkumarg1

рдЬрдм Shinyproxy SIGTERM рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ (рдЬрдм рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЛ рдЫреЛрдЯрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рддреЛ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЙрдбреНрд╕ рдХреЛ рд░реЛрдХрдХрд░ рдЗрдирд╛рдпрдд рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЛ рдкреЙрдб рд╕реНрдкреЗрдХ рдореЗрдВ рдЕрдиреБрдЧреНрд░рд╣ рдЕрд╡рдзрд┐ terminationGracePeriodSeconds рдмрдврд╝рд╛рдиреА рдкрдбрд╝ рд╕рдХрддреА рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 30s рд╣реИ)ред рдпрджрд┐ рдЗрд╕ рдЕрд╡рдзрд┐ рдХреЗ рднреАрддрд░ рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИ, рддреЛ рдЙрд╕реЗ рдПрдХ рд╕рд┐рдЧрдХрд┐рд▓ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ рдФрд░ рдЕрдирд╛рде рдкреЙрдбреНрд╕ рдХреЛ рдкреАрдЫреЗ рдЫреЛрдбрд╝рддреЗ рд╣реБрдП рддреБрд░рдВрдд рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/

рдзрдиреНрдпрд╡рд╛рдж @dseynaev рдореИрдВрдиреЗ рдЯрд░реНрдорд┐рдиреЗрд╢рди рдЧреНрд░реЗрд╕рдкреАрд░рд┐рдпреЛрдб рд╕реЗрдХреЗрдВрдб рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдпреБрдХреНрддрд┐ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ - рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рд╛ред рдкреЙрдб рдХреЛ рддреБрд░рдВрдд рдорд╛рд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рд╢рд╛рдпрдж, рдпрд╣ рдореБрджреНрджрд╛ https://github.com/kubernetes/kubernetes/issues/47576 рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдЬрд╣рд╛рдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдХреЛ SIGTERM рдХреЛ рдЗрдирд╛рдпрдд рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

spec:
  terminationGracePeriodSeconds : 180
  containers:
  - name: shinyproxy

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

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рд╕рдорд╛рдкреНрддрд┐ рдкрд░ рдЪрдордХрджрд╛рд░/рдХрдВрдЯреЗрдирд░рдкреНрд░реЙрдХреНрд╕реА рджреНрд╡рд╛рд░рд╛ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

2020-01-30 10:56:56.785  INFO 1 --- [           main] e.o.c.ContainerProxyApplication          : Started ContainerProxyApplication in 39.115 seconds (JVM running for 43.619)
2020-01-30 10:57:01.374  INFO 1 --- [  XNIO-2 task-1] io.undertow.servlet                      : Initializing Spring FrameworkServlet 'dispatcherServlet'
2020-01-30 10:57:01.375  INFO 1 --- [  XNIO-2 task-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2020-01-30 10:57:01.507  INFO 1 --- [  XNIO-2 task-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 131 ms
2020-01-30 10:57:26.275  INFO 1 --- [ XNIO-2 task-16] e.o.containerproxy.service.UserService   : User logged in [user: **]
2020-01-30 10:57:35.802  INFO 1 --- [  XNIO-2 task-3] e.o.containerproxy.service.ProxyService  : Proxy activated [user: ***] [spec: insight] [id: 9274ad33-665a-4d47-bab5-6c4b39a618b8]
2020-01-30 10:59:02.376  INFO 1 --- [       Thread-2] ConfigServletWebServerApplicationContext : Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext<strong i="6">@2b2948e2</strong>: startup date [Thu Jan 30 10:56:24 GMT 2020]; root of context hierarchy
2020-01-30 10:59:02.377 ERROR 1 --- [pool-4-thread-1] java.io.InputStreamReader                : Error while pumping stream.
java.io.EOFException: null
    at okio.RealBufferedSource.require(RealBufferedSource.java:61) ~[okio-1.15.0.jar!/:na]
    at okio.RealBufferedSource.readHexadecimalUnsignedLong(RealBufferedSource.java:303) ~[okio-1.15.0.jar!/:na]
    at okhttp3.internal.http1.Http1Codec$ChunkedSource.readChunkSize(Http1Codec.java:469) ~[okhttp-3.12.0.jar!/:na]
    at okhttp3.internal.http1.Http1Codec$ChunkedSource.read(Http1Codec.java:449) ~[okhttp-3.12.0.jar!/:na]
    at okio.RealBufferedSource$1.read(RealBufferedSource.java:439) ~[okio-1.15.0.jar!/:na]
    at java.io.InputStream.read(InputStream.java:101) ~[na:1.8.0_171]
    at io.fabric8.kubernetes.client.utils.BlockingInputStreamPumper.run(BlockingInputStreamPumper.java:49) ~[kubernetes-client-4.2.2.jar!/:na]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_171]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_171]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_171]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_171]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_171]
2020-01-30 10:59:02.394  INFO 1 --- [       Thread-2] o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans on shutdown
2020-01-30 10:59:02.403  INFO 1 --- [       Thread-2] o.s.j.e.a.AnnotationMBeanExporter        : Unregistering JMX-exposed beans
2020-01-30 10:59:02.514  WARN 1 --- [       Thread-2] .s.c.a.CommonAnnotationBeanPostProcessor : Invocation of destroy method failed on bean with name 'proxyService': eu.openanalytics.containerproxy.ContainerProxyException: Failed to stop container
2020-01-30 10:59:02.525  INFO 1 --- [       Thread-2] io.undertow.servlet                      : Destroying Spring FrameworkServlet 'dispatcherServlet'

рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА рдпрд╛ рдХрдВрдЯреЗрдирд░рдкреНрд░реЙрдХреНрд╕реА рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ рдРрдк рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдФрд░ рдЗрдирд╛рдпрдд рд╕реЗ рдмрдВрдж рд╣реИред

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

рдореИрдВрдиреЗ рдкрдврд╝рд╛ рд╣реИ рдХрд┐ Kubernetes рдЗрди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдФрд░ рд╢рдЯрдбрд╛рдЙрди рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ v1.18 рдореЗрдВ рд╣рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ:
https://github.com/kubernetes/enhancements/issues/753
https://banzaicloud.com/blog/k8s-sidecars/

рддрдм рддрдХ рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреАрд╡рдирдЪрдХреНрд░ рдПрдиреЛрдЯреЗрд╢рди рдбрд╛рд▓рдиреЗ рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рд╣реИ:

          lifecycle:
            preStop:
              exec:
                command: ["sh", "-c", "sleep 5"] # wait 5 seconds to let shinyproxy remove the pods on graceful shutdown

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ @fmannhardt рдХрд╛ рдлрд┐рдХреНрд╕ рдЗрд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

рдирдорд╕реНрддреЗ

ShinyProxy рдХреЗ рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде (рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо ShinyProxy 2.3.1) рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд╕рд╛рдЗрдбрдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред ShinyProxy рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ Kubernetes API рдХреЗ рд╕реНрдерд╛рди рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрдкрдиреЗ рдЖрдк рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдлрд┐рд░ рднреА, рдЖрдкрдХреЗ рд╕рдордп рдФрд░ рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

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

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

lucius-verus-fan picture lucius-verus-fan  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

PauloJhonny picture PauloJhonny  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jfrubioz picture jfrubioz  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ