рд╢реАрд░реНрд╖ 10 рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдЯрд┐рдкреНрд╕

рд╢реАрд░реНрд╖ 10 рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдЯрд┐рдкреНрд╕

рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░рд╛ рд╕рдВрджрд░реНрдн рд╕рд╛рд╣рд┐рддреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рд▓рд╛рд╣ рд╕рдмрд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛрддреА рд╣реИред рдЯреАрдо Mail.ru рд╕реЗ Kubernetes aaS рдЕрдиреБрд╡рд╛рдж рджрд╕ рддрд░рдХреАрдмреЛрдВ рдФрд░ рдпреБрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди, рдЬрд┐рд╕реЗ рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рдиреЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рд▓ рддрдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдХрддреНрд░ рдХрд┐рдпрд╛ред рдпреБрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдорд╣рддреНрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреНрд░рдордмрджреНрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╣рд░ рдХреЛрдИ рдЕрдкрдиреЗ рд▓рд┐рдП рдХреБрдЫ рди рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдвреВрдВрдвреЗрдЧрд╛ред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЖрджреЗрд╢

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

echo "source <(kubectl completion bash)" >> ~/.bashrc

рд╕реНрд╡рдд: рдкреВрд░реНрдг kubectl .bashrc рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╣рд░ рдмрд╛рд░ рд╢реЗрд▓ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд▓рдВрдмреЗ рдХрдорд╛рдВрдб рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреИрд╕реЗ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИ all-namespaces. рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдмреИрд╢ рд╕рд╣рд╛рдпрддрд╛.

рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореЗрдореЛрд░реА рдФрд░ рд╕реАрдкреАрдпреВ рд╕реАрдорд╛рдПрдБ

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

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

apiVersion: v1
kind: LimitRange
metadata:
  name: mem-limit-range
spec:
  limits:
  - default:
      memory: 512Mi
    defaultRequest:
      memory: 256Mi
    type: Container

рдРрд╕рд╛ yaml рдмрдирд╛рдПрдВ рдФрд░ рдХрд┐рд╕реА рднреА рдиреЗрдорд╕реНрдкреЗрд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рд▓рд┐рдП limit-example. рдЕрдм рдЗрд╕ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рд╕реА рднреА рдХрдВрдЯреЗрдирд░ рдХреА рд╕реАрдорд╛ 512Mi рд╣реЛрдЧреА, рдЬрдм рддрдХ рдХрд┐ рдЗрд╕ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рди рдХреА рдЬрд╛рдПред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг

рдХреНрдпреВрдмрд▓реЗрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдЬрдм var/lib/docker рдЙрдкрд▓рдмреНрдз рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдХрд╛ 90% рднрд╛рдЧ рдШреЗрд░рддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ 1.7 рддрдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЗрдиреЛрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реАрдорд╛ рдирд╣реАрдВ рдереА, рдЬреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдереАред

рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХрд╛ рдХрдВрдЯреЗрдирд░ var/lib/docker рдХреЗрд╡рд▓ 50% рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдиреЛрдб рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рд╣реЛрдВрдЧреАред

рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЗ 1.4 рд╕реЗ 1.6 рддрдХ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЖрдкрдХреЛ рдпрд╣ рдзреНрд╡рдЬ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:

--eviction-hard
=memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%

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

рдорд┐рдирд┐рдХреНрдпреВрдм... рдЫреЛрдЯреЗ рд▓реЗрдХрд┐рди рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕реНрдерд╛рдиреАрдп рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕

рдорд┐рдирд┐рдХреНрдпреВрдм рд╕реНрдерд╛рдиреАрдп рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдЪрд▓рд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

minikube start

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

рд╢реАрд░реНрд╖ 10 рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЯреНрд░рд┐рдХреНрд╕ рдФрд░ рдЯрд┐рдкреНрд╕
рдЪрд┐рддреНрд░рдг рд╕реНрд░реЛрдд

рдЪрд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП рдФрд░ рдЗрд╕реЗ рдЙрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПред рдЬрдм рддрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджреЗрд╢ рди рджрд┐рдпрд╛ рдЬрд╛рдП, рдбреЙрдХрд░ рдЫрд╡рд┐ рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА рди рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ред

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

eval $(minikube docker-env)

рдЕрдм рд╣рдо рд╕реНрдерд╛рдиреАрдп рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

Kubectl рдХреЛ рд╣рд░ рдХрд┐рд╕реА рддрдХ рдкрд╣реБрдВрдЪ рди рджреЗрдВ

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

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

рдкреЙрдб рдмрдЬрдЯ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХреИрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ? рдкреЙрдбрдбрд┐рд╕реНрд░рдкреНрд╢рдирдмрдЬрдЯ рдФрд░ рдлрд┐рд░ рдкреЙрдбрдбрд┐рд╕реНрд░рдкреНрд╢рдирдмрдЬрдЯред

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

рдиреЛрдЯ: рдкреАрдбреАрдмреА рдмрдЬрдЯ рдХреЛ рддрднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдмрдЬрдЯ рдЙрд▓реНрд▓рдВрдШрди рдкреНрд░рддрд┐рд╡рд░реНрддреА рд╣реЛ (рд╕реНрд╡реИрдЪреНрдЫрд┐рдХ рд╡реНрдпрд╡рдзрд╛рди). рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд┐рдлрд▓рддрд╛ рдЬреИрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдкреАрдбреАрдмреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг рдкреАрдбреАрдмреА:

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: app-a-pdb
spec:
  minAvailable: 2
  selector:
      matchLabels:
        app: app-a

рджреЛ рдореБрдЦреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ matchLabels ╨╕ minAvailable. рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрдЬрдЯ рдХрд┐рди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рддреИрдирд╛рддреА рд╣реИ app: app-a ╨╕ app: app-b, рддреЛ рдпрд╣ рдкреАрдбреАрдмреА рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛ред

рдкреНрд░рд╛рдЪрд▓ minAvailable рдиреЛрдб рдХреЛ рдЦрд╛рд▓реА (рд╕рдлрд╛рдИ) рдХрд░рддреЗ рд╕рдордп рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЦрд╛рд▓реА рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди, рд╕рднреА рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдХреЛ рдмреЗрджрдЦрд▓ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ app: app-a, рджреЛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ред

рдпрд╣ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рд╕рдордп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХрд┐рддрдиреЗ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЪрд▓рдиреЗ рдЪрд╛рд╣рд┐рдПред

рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдирд┐рдЧрд░рд╛рдиреА

рдРрд╕реА рдирд┐рдЧрд░рд╛рдиреА рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рдВрднрд╡ рд╣реИ: рд░реЗрдбреАрдиреЗрд╕ рдпрд╛ рд▓рд╛рдЗрд╡рдиреЗрд╕ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

рдкрд╣рд▓реА рдЬрд╛рдВрдЪ (рддрддреНрдкрд░рддрд╛) рдпрд╛рддрд╛рдпрд╛рдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдХреА рддрддреНрдкрд░рддрд╛ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред

рджреВрд╕рд░рд╛ (рд▓рд╛рдЗрд╡рдиреЗрд╕) рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрдВрдЯреЗрдирд░ рд╕реНрд╡рд╕реНрде рд╣реИ рдпрд╛ рдЙрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

рдЯреИрдЧ рд╣рд░ рдЬрдЧрд╣ рд╣реИрдВ

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

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

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдЙрд╕реА рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ dev ╨╕ qa. рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ app-a, рджреЛрдиреЛрдВ рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдореЗрдВ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ qa ╨╕ dev. рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЙрдкрдпреБрдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ environmentред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, app: app-a ╨╕ environment: dev рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдФрд░ app: app-a ╨╕ environment: qa рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП.

рдпрд╣ рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рджреЛрдиреЛрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд╕рдВрдЧрдард┐рдд рд╣реЛ рдЬрд╛рдУ

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

рдмреЗрд╢рдХ, рдПрдХ рдЕрдирд╛рде рд╕реЗрд╡рд╛ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдзреАрдорд╛ рдирд╣реАрдВ рдХрд░реЗрдЧреА, рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рдЬрдореАрди рд╕реЗ рдКрдкрд░ рддрдХ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рдмрдЬрд╛рдп рджрд╕ рд▓рд╛рдЦ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпреВрдмрд▓реЗрдЯ рдХрд╛ рджрдо рдШреБрдЯрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЖрдк рдХреЛрдИ рдкрд░рд┐рдирд┐рдпреЛрдЬрди (рдХрдВрдЯреЗрдирд░, рдЫрд╡рд┐, рдХреБрдЫ рднреА) рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдлрд╛рдИ рдХрд░реЗрдВред

рдЧреЛ рд╕реЗ рдорд┐рд▓реЗрдВ

рд╣рдордиреЗ рдореБрдЦреНрдп рд╕рд▓рд╛рд╣ рдХреЛ рдЕрдВрдд рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬ рдХрд░ рд░рдЦрд╛ рд╣реИред рдЧреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╕реАрдЦреЗрдВ.

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

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

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

Mail.ru рдХреНрд▓рд╛рдЙрдб рд╕реЙрд▓реНрдпреВрд╢рдВрд╕ рдХреЗ рд╕рдорд░реНрдерди рд╕реЗ рдЕрдиреБрд╡рд╛рджрд┐рдд

рдФрд░ рдХреНрдпрд╛ рдкрдврд╝рдирд╛ рд╣реИ:

  1. рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдСрдЯреЛрд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рддреАрди рд╕реНрддрд░ рдФрд░ рдЙрдирдХрд╛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ.
  2. рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╡рд░реНрдХрд░ рдиреЛрдбреНрд╕: рдХрдИ рдЫреЛрдЯреЗ рдпрд╛ рдХреБрдЫ рдмрдбрд╝реЗ?
  3. рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреА рддреИрдирд╛рддреА рдФрд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП 25 рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг.

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

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