рдХреБрдмреЗрд░реЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдХреБрдмреЛрдмреЙрдХреНрд╕ рдФрд░ рдЕрдиреНрдп рдХрдВрд╕реЛрд▓ рдЧреЛрд▓реЗ



рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП "рдХрдВрд╕реЛрд▓ рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛, рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рднреА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд┐рдпрд╛ рдерд╛ ред рд╣рд╛рд▓рд╛рдВрдХрд┐, K8 рдФрд░ рдЙрд╕рдХреЗ рд╕рдореБрджрд╛рдп рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде, рд╕рдВрдмрджреНрдз рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рднреА рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд┐рд░ рд╕реЗ рдХрдВрд╕реЛрд▓ рдХреЗ рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рдХреЛ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реИред рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!

kubebox


  • рдЧрд┐рдЯрд╣рдм (400+ рд╕рд┐рддрд╛рд░реЗ)
  • рднрд╛рд╖рд╛: рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ (Node.js)
  • рд▓рд╛рдЗрд╕реЗрдВрд╕: MIT

рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдореАрдХреНрд╖рд╛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдереАред рдПрдХ рдУрд░, рд╡рд╣ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╢реНрд░реЗрдгреА рдХрд╛ рдПрдХ рдЙрдЬреНрдЬреНрд╡рд▓ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реИ "рдЧреАрдХреНрд╕ geeks рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ," рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рддрд░рдл, рд╡рд╣ рдЙрд╕ рдмрд┐рдВрджреБ рддрдХ рдмрдврд╝ рдЧрдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╣ рди рдХреЗрд╡рд▓ рдЖрдВрдЦ рдХреЛ рдкреНрд░рд╕рдиреНрди рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд▓рд╛рдн рднреА рд▓рд╛рддрд╛ рд╣реИ ...

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

рдЫрд╡рд┐

рдХрд╛рд░реНрдп рдХрд╛ рдЕрд░реНрде рд╣реИ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреЙрдбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ, рд▓реЙрдЧ рджреЗрдЦрдиреЗ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреНрд░рдореБрдЦ рд╕рдВрд╕рд╛рдзрдиреЛрдВ (рд╕реАрдкреАрдпреВ, рдореЗрдореЛрд░реА, рдиреЗрдЯрд╡рд░реНрдХ) рдХреА рдЦрдкрдд рдХреЗ рдЧреНрд░рд╛рдл, рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдХрдорд╛рдВрдб рдХреЗ рджреВрд░рд╕реНрде рдирд┐рд╖реНрдкрд╛рджрдиред рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ KUBECONFIG рд╕реЗ рд▓реА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ рдпрд╛ $HOME/.kube рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЬрд╛ $HOME/.kube ред

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

рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рдПрдХ рдСрдирд▓рд╛рдЗрди рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рд╣реИ (рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЛрд░реНрд╕рд░ cors-allowed-origins рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, kubebox рдХреЛ рдПрдХ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрди-рдХреНрд▓рд╕реНрдЯрд░ рдХреНрд▓рд╛рдЗрдВрдЯ (kubectl рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХреЗ рд╕рд╛рде-рд╕рд╛рде Kubernetes рдпрд╛ OpenShift рдХреНрд▓рд╕реНрдЯрд░ ( Xterm .js рдореЗрдВ рддреИрдирд╛рдд рдПрдХ рд╕реЗрд╡рд╛ рд╕реЗ рдЯрд░реНрдорд┐рдирд▓ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

рдЕрдм рд▓рдЧрднрдЧ 2 рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП, рдлреНрд░рд╛рдВрд╕ рдХрд╛ рдПрдХ Red Hat рдХрд░реНрдордЪрд╛рд░реА kubebox рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ (рд╕рдЯреАрдХ рд╣реЛрдирд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрдо рд╕реЗ рдХрдо 10% рдХрдорд┐рдЯ рдЙрд╕рдХреЗ рд╕рд╣рдпреЛрдЧреА рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдереЗ)ред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкрд┐рдЫрд▓реЗ рдорд╣реАрдиреЗ рд╣реА ( Reddit рдФрд░ рдХрдИ рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░) рдкрд░реНрдпрд╛рдкреНрдд рд╡реНрдпрд╛рдкрдХ рдкреНрд░рдЪрд╛рд░ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЙрдореНрдореАрдж рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдЗрд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдПрдХ рдирдИ рдЧрддрд┐ рдорд┐рд▓реЗрдЧреАред

рдХреНрдпреВрдм-рд╢реЗрд▓ рдФрд░ рдХреНрдпреВрдм-рдкреНрд░реЙрдореНрдкреНрдЯ


Kube-рдЦреЛрд▓


  • рдЧрд┐рдЯрд╣рдм (950+ рд╕рд┐рддрд╛рд░реЗ)
  • рднрд╛рд╖рд╛: рдЕрдЬрдЧрд░
  • рд▓рд╛рдЗрд╕реЗрдВрд╕: рдЕрдкрд╛рдЪреЗ 2.0


(рдзреНрдпрд╛рди рджреЗрдВ, рдпрд╣ ~ 2 рдПрдордмреА рдЬреАрдЖрдИрдПрдл!)

Kube-рд╢реАрдШреНрд░


  • GitHub (700+ рд╕рд┐рддрд╛рд░реЗ)
  • рднрд╛рд╖рд╛: рдЬрд╛
  • рд▓рд╛рдЗрд╕реЗрдВрд╕: MIT



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

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

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

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

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

рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ


  • рдЧрд┐рдЯрд╣рдм (750+ рд╕рд┐рддрд╛рд░реЗ)
  • рднрд╛рд╖рд╛: рдЬрдВрдЧ
  • рд▓рд╛рдЗрд╕реЗрдВрд╕: рдЕрдкрд╛рдЪреЗ 2.0

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



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

pods //
2 //
describe //
events //
logs -c foo > /tmp/podfoo.log //
delete // ( )


рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдкрд╛рда рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреНрд▓рд┐рдХ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕реНрдХреНрд░реЗрдВрдХрд╛рд╕реНрдЯ рднреА рджреЗрдЦреЗрдВред

рд▓реЙрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ


рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ - рдЧреЛрд▓реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд▓реЙрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓ рдЯреВрд▓ред рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдХреЗрд╡рд▓ k8stail рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реЗ рд╕рдордп рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рднреА рд╣реИрдВред

рдХрдареЛрд░


  • рдЧрд┐рдЯрд╣рдм (~ 1300 рд╕рд┐рддрд╛рд░реЗ)
  • рднрд╛рд╖рд╛: рдЬрд╛
  • рд▓рд╛рдЗрд╕реЗрдВрд╕: рдЕрдкрд╛рдЪреЗ 2.0

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



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

  • рдЖрдЙрдЯрдкреБрдЯ рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдЧреЛ-рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрдИ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИрдВ);
  • рд▓реЗрдмрд▓ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди;
  • рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдорд╛рди рдореЗрдВ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдкреНрд░рддрд┐рдмрдВрдз - --since рдФрд░ / рдпрд╛ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛;
  • рдмреИрд╢ рдФрд░ zsh рдХреЗ рд▓рд┐рдП рдСрдЯреЛ-рдкреВрд░реНрдг рд╕рдорд░реНрдерди, рд╕рд╛рде рд╣реА рдирд╛рдорд╕реНрдерд╛рди рдФрд░ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЧрддрд┐рд╢реАрд▓ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдиред

Kubetail


  • рдЧрд┐рдЯрд╣рдм (~ 950 рд╕реНрдЯрд╛рд░)
  • рднрд╛рд╖рд╛: рд╢реИрд▓
  • рд▓рд╛рдЗрд╕реЗрдВрд╕: рдЕрдкрд╛рдЪреЗ 2.0

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



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

  • рдЕрдХреНрд╖рдо рдореЛрдб - рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд▓реЙрдЧ рд╕реЗ рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЬреИрд╕рд╛ рдХрд┐ tail -f );
  • --dry-run рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреБрдХреНрдд рдлрд▓реА рдФрд░ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП --dry-run ;
  • JSON рдореЗрдВ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП jq рд╕реЗрд▓реЗрдХреНрдЯрд░ рд╕рдкреЛрд░реНрдЯред

рдЧреЛрднреА


  • рдЧрд┐рдЯрд╣рдм (~ 500 рд╕рд┐рддрд╛рд░реЗ)
  • рднрд╛рд╖рд╛: рдЬрд╛
  • рд▓рд╛рдЗрд╕реЗрдВрд╕: MIT

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

  • рдЙрдирдХреА рд╕реЗрд╡рд╛ рдХреЗ рдирд╛рдо, рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯрдХрдВрдЯреНрд░реЛрд▓рд░, рд░реЗрдкреНрд▓рд┐рдХрд╛рд╕реЗрдЯ, рдкрд░рд┐рдирд┐рдпреЛрдЬрди, рдиреЛрдб рдФрд░ / рдпрд╛ рдЗрдирдЧреНрд░реЗрдб (рдпрд╛рдиреА рд╕реЗрд╡рд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╢реНрд░рд╡рдг рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЗрдирдЧреНрд░реЗрдб рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░рддрд╛ рд╣реИ) рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪреВрд▓реНрд╣реЛрдВ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз;
  • рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рди рдХреЗрд╡рд▓ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдмрд▓реНрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмрд╛рд╣рд░ рдХрд░рдирд╛;
  • рд▓реЙрдЧрд┐рдВрдЧ ( --log-level ) рдХреЗ рд╕реНрддрд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдгред



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

рдкреБрдирд╢реНрдЪ


рдЖрдкрдХреА рд░реБрдЪрд┐ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╣рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЖрдкрдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреА!

рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рднреА рдкрдврд╝реЗрдВ:

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


All Articles