Kubernetes рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ 10 рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓реНрддреАрд╣рд░реВ

рдиреЛрдЯред рдЕрдиреБрд╡рд╛рджред: рдпрд╕ рд▓реЗрдЦрдХрд╛ рд▓реЗрдЦрдХрд╣рд░реВ рд╕рд╛рдиреЛ рдЪреЗрдХ рдХрдореНрдкрдиреА, рдкрд╛рдЗрдкрдЯреЗрд▓рдХрд╛ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рд╣рд░реВ рд╣реБрдиреНред рддрд┐рдиреАрд╣рд░реВрд▓реЗ [рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рд╕рд╛рдзрд╛рд░рдг, рддрд░ рдЕрдЭреИ рдкрдирд┐] рдзреЗрд░реИ рджрдмрд╛рдмрдкреВрд░реНрдг рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд░ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдХреЛ рд╕рдЮреНрдЪрд╛рд▓рдирд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЧрд▓рдд рдзрд╛рд░рдгрд╛рд╣рд░реВрдХреЛ рдПрдХ рдЕрджреНрднреБрдд рд╕реВрдЪреА рд░рд╛рдЦреНрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реЗред

Kubernetes рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ 10 рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓реНрддреАрд╣рд░реВ

Kubernetes рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрдХреЛ рд╡рд░реНрд╖рд╣рд░реВрдорд╛, рд╣рд╛рдореАрд▓реЗ рдзреЗрд░реИ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реЗрдХрд╛ рдЫреМрдВ (рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░ рдЕрдкреНрд░рдмрдиреНрдзрд┐рдд - GCP, AWS рд░ Azure рдорд╛)ред рд╕рдордп рдмрд┐рддреНрджреИ рдЬрд╛рдБрджрд╛, рд╣рд╛рдореАрд▓реЗ рдпрд╛рдж рдЧрд░реНрди рдерд╛рд▓реНрдпреМрдВ рдХрд┐ рдХреЗрд╣рд┐ рдЧрд▓реНрддреАрд╣рд░реВ рд▓рдЧрд╛рддрд╛рд░ рджреЛрд╣реЛрд░реНрдпрд╛рдЗрдПрдХреЛ рдерд┐рдпреЛред рдпрджреНрдпрдкрд┐, рдпрд╕рдорд╛ рдХреБрдиреИ рд▓рд╛рдЬ рдЫреИрди: рд╣рд╛рдореАрд▓реЗ рддреАрдордзреНрдпреЗ рдзреЗрд░реИ рдЖрдлреИрд▓реЗ рдЧрд░реЗрдХрд╛ рдЫреМрдВ!

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

1. рд╕реНрд░реЛрддрд╣рд░реВ: рдЕрдиреБрд░реЛрдз рд░ рд╕реАрдорд╛рд╣рд░реВ

рдпреЛ рд╡рд╕реНрддреБ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдкрдорд╛ рдирдЬрд┐рдХрдХреЛ рдзреНрдпрд╛рди рд░ рд╕реВрдЪреАрдорд╛ рдкрд╣рд┐рд▓реЛ рд╕реНрдерд╛рдирдХреЛ рдпреЛрдЧреНрдп рдЫред

CPU рдЕрдиреБрд░реЛрдз рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпрд╛ рдд рд╕рдмреИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди рд╡рд╛ рдзреЗрд░реИ рдХрдо рдореВрд▓реНрдп рдЫ (рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрдорд╛ рд╕рдХреЗрд╕рдореНрдо рдзреЗрд░реИ рдкреЛрдбрд╣рд░реВ рд░рд╛рдЦреНрди)ред рдпрд╕рд░реА, рдиреЛрдбрд╣рд░реВ рдУрднрд░рд▓реЛрдб рд╣реБрдиреНрдЫрдиреНред рдЙрдЪреНрдЪ рднрд╛рд░рдХреЛ рд╕рдордпрдорд╛, рдиреЛрдбрдХреЛ рдкреНрд░рд╢реЛрдзрди рд╢рдХреНрддрд┐ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ рд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдпрднрд╛рд░рд▓реЗ рдпрд╕рд▓рд╛рдИ "рдЕрдиреБрд░реЛрдз рдЧрд░реЗрдХреЛ" рдорд╛рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред CPU рдереНрд░реЛрдЯрд▓рд┐рдЩред рдпрд╕рд▓реЗ рдмрдвреНрджреЛ рдЖрд╡реЗрджрди рд╡рд┐рд▓рдореНрдмрддрд╛, рдЯрд╛рдЗрдордЖрдЙрдЯ рд░ рдЕрдиреНрдп рдЕрдкреНрд░рд┐рдп рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫред (рд╣рд╛рдореНрд░реЛ рдЕрдиреНрдп рднрд░реНрдЦрд░рдХреЛ рдЕрдиреБрд╡рд╛рджрдорд╛ рдпрд╕ рдмрд╛рд░реЗ рдердк рдкрдвреНрдиреБрд╣реЛрд╕реН: "CPU рд╕реАрдорд╛ рд░ Kubernetes рдорд╛ рдЖрдХреНрд░рд╛рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ" - рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджред)

рдЙрддреНрддрдо рдкреНрд░рдпрд╛рд╕ (рдЕрддреНрдпрдиреНрддреИ рдЫреИрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдПрдХреЛ):

resources: {}

рдЕрддреНрдпрдиреНрдд рдХрдо CPU рдЕрдиреБрд░реЛрдз (рдЕрддреНрдпрдиреНрдд рдЫреИрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдПрдХреЛ):

   resources:
      Requests:
        cpu: "1m"

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

рдЕрддреНрдпрдзрд┐рдХ рдЪрдпрди (рдЕрддреНрдпрдзрд┐рдХ рдкреНрд░рддрд┐рдмрджреНрдз) рдореЗрдореЛрд░реА рд╕рдорд╕реНрдпрд╛рд▓реЗ рдареВрд▓реЛ рд╕рдорд╕реНрдпрд╛ рдирд┐рдореНрддреНрдпрд╛рдЙрди рд╕рдХреНрдЫред CPU рд╕реАрдорд╛рдорд╛ рдкреБрдЧреНрджрд╛ рдШрдбреАрдХреЛ рдЪрдХреНрд░ рдЫреЛрдбреНрдиреБ рдкрд░реНрдЫ, рдЬрдмрдХрд┐ рдореЗрдореЛрд░реА рд╕реАрдорд╛рдорд╛ рдкреБрдЧреНрджрд╛ рдкреЛрдб рдорд╛рд░реНрдиреБ рдкрд░реНрдЫред рдХреЗ рддрдкрд╛рдИрдВрд▓реЗ рдХрд╣рд┐рд▓реНрдпреИ рдЕрд╡рд▓реЛрдХрди рдЧрд░реНрдиреБрднрдпреЛ OOMkill? рд╣реЛ, рдареНрдпрд╛рдХреНрдХреИ рд╣рд╛рдореАрд▓реЗ рдХреБрд░рд╛ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВред

рдХреЗ рддрдкрд╛рдЗрдБ рдпрд╕реНрддреЛ рд╣реБрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛рд▓рд╛рдИ рдХрдо рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ? рдореЗрдореЛрд░реА рдЕрдиреБрд░реЛрдзрд▓рд╛рдИ рд╕реАрдорд╛рдорд╛ рд╕реЗрдЯ рдЧрд░реЗрд░ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреЗрдб QoS (рд╕реЗрд╡рд╛рдХреЛ рдЧреБрдгрд╕реНрддрд░) рдкреНрд░рдпреЛрдЧ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН (рддрд▓рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛)ред рдпрд╕ рдмрд╛рд░реЗ рдердк рдкрдвреНрдиреБрд╣реЛрд╕реН рдорд╛ рд╣реЗрдирд┐рдЩ рдЬреЗрдХрдмреНрд╕ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдгрд╣рд░реВ (рдЬрд╛рд▓рд╛рдиреНрдбреЛрдорд╛ рдкреНрд░рдореБрдЦ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░)ред

рдлреБрдЯреНрди рдорд┐рд▓реНрдиреЗ (OOM рдорд╛рд░рд┐рдиреЗ рдЙрдЪреНрдЪ рд╕рдореНрднрд╛рд╡рдирд╛):

   resources:
      requests:
        memory: "128Mi"
        cpu: "500m"
      limits:
        memory: "256Mi"
        cpu: 2

рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА:

   resources:
      requests:
        memory: "128Mi"
        cpu: 2
      limits:
        memory: "128Mi"
        cpu: 2

рд╕реНрд░реЛрддрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджрд╛ рдХреЗ рд╕рдореНрднрд╛рд╡рд┐рдд рд░реВрдкрдорд╛ рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫ?

рд╕рд╣рдпреЛрдЧрдХреЛ рд╕рд╛рде рдореЗрдЯреНрд░рд┐рдХреНрд╕-рд╕рд░реНрднрд░ рддрдкрд╛рдИрдВрд▓реЗ рд╣рд╛рд▓рдХреЛ CPU рд╕реНрд░реЛрдд рдЦрдкрдд рд░ рдкреЛрдбрд╣рд░реВ (рд░ рддрд┐рдиреАрд╣рд░реВ рднрд┐рддреНрд░ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ) рджреНрд╡рд╛рд░рд╛ рдореЗрдореЛрд░реА рдкреНрд░рдпреЛрдЧ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рд╕рдореНрднрд╡рддрдГ, рддрдкрд╛рдЗрдБ рдкрд╣рд┐рд▓реЗ рдиреИ рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫред рдХреЗрд╡рд▓ рдирд┐рдореНрди рдЖрджреЗрд╢рд╣рд░реВ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН:

kubectl top pods
kubectl top pods --containers
kubectl top nodes

рдпрджреНрдпрдкрд┐, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╣рд╛рд▓рдХреЛ рдкреНрд░рдпреЛрдЧ рдорд╛рддреНрд░ рджреЗрдЦрд╛рдЙрдБрдЫрдиреНред рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрд░рд┐рдорд╛рдгрдХреЛ рдХреНрд░рдордХреЛ рдХреБрдиреИ рдирд░рд╛рдореНрд░реЛ рд╡рд┐рдЪрд╛рд░ рджрд┐рди рд╕рдХреНрдЫ, рддрд░ рдЕрдиреНрддрддрдГ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдиреЗрдЫ рд╕рдордп рд╕рдВрдЧ рдореЗрдЯреНрд░рд┐рдХ рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЗрддрд┐рд╣рд╛рд╕ (рдЬрд╕реНрддреИ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдЬрд╡рд╛рдл рджрд┐рди: "рдкреАрдХ рд╕реАрдкреАрдпреВ рд▓реЛрдб рдХреЗ рдерд┐рдпреЛ?", "рд╣рд┐рдЬреЛ рдмрд┐рд╣рд╛рди рд▓реЛрдб рдХреЗ рдерд┐рдпреЛ?", рдЖрджрд┐)ред рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ Prometheus, DataDog рд░ рдЕрдиреНрдп рдЙрдкрдХрд░рдгрд╣рд░реВред рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдореЗрдЯреНрд░рд┐рдХреНрд╕-рд╕рд░реНрднрд░рдмрд╛рдЯ рдореЗрдЯреНрд░рд┐рдХрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдЫрдиреН рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдЫрдиреН, рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╕реЛрдзреНрди рд░ рддрджрдиреБрд╕рд╛рд░ рдкреНрд▓рдЯ рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред

VerticalPodAutoscaler рдпрд╕рд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдпреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ред рдпрд╕рд▓реЗ CPU рд░ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдЗрддрд┐рд╣рд╛рд╕ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрджрдЫ рд░ рдпрд╕ рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рдЖрдзрд╛рд░рдорд╛ рдирдпрд╛рдБ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд░ рд╕реАрдорд╛рд╣рд░реВ рд╕реЗрдЯ рдЕрдк рдЧрд░реНрджрдЫред

рдХрдореНрдкреНрдпреБрдЯрд┐рдЩ рдкрд╛рд╡рд░ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╕рдЬрд┐рд▓реЛ рдХрд╛рдо рд╣реЛрдЗрдиред рдпреЛ рд╕рдзреИрдВ рдЯреЗрдЯреНрд░рд┐рд╕ рдЦреЗрд▓реНрдиреБ рдЬрд╕реНрддреИ рд╣реЛред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдХрдо рдФрд╕рдд рдЦрдкрдд (~ 10% рднрдиреНрдиреБрд╣реЛрд╕реН) рд╕рдВрдЧ рдХрдореНрдкреНрдпреБрдЯ рдкрд╛рд╡рд░рдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рддрд┐рд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рд╣рд╛рдореА AWS Fargate рд╡рд╛ Virtual Kubelet рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЙрддреНрдкрд╛рджрдирд╣рд░реВ рд╣реЗрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдЫреМрдВред рддрд┐рдиреАрд╣рд░реВ рд╕рд░реНрднрд░рд░рд╣рд┐рдд/рднреБрдХреНрддрд╛рдиреА-рдкреНрд░рддрд┐-рдЙрдкрдпреЛрдЧ рдмрд┐рд▓рд┐рдЩ рдореЛрдбреЗрд▓рдорд╛ рдмрдирд╛рдЗрдПрдХрд╛ рдЫрдиреН, рдЬреБрди рддреНрдпрд╕реНрддрд╛ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВрдорд╛ рд╕рд╕реНрддреЛ рд╣реБрди рд╕рдХреНрдЫред

2. рдЬреАрд╡рдиреНрддрддрд╛ рд░ рддрддреНрдкрд░рддрд╛ рдЬрд╛рдБрдЪрд╣рд░реВ

рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, Kubernetes рдорд╛ рдЬреАрд╡рдиреНрддрддрд╛ рд░ рддрдпрд╛рд░реА рдЬрд╛рдБрдЪрд╣рд░реВ рд╕рдХреНрд╖рдо рдЫреИрдирдиреНред рд░ рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рддрд┐рдиреАрд╣рд░реВ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЦреЛрд▓реНрди рдмрд┐рд░реНрд╕рдиреНрдЫрдиреН ...

рддрд░ рддрдкрд╛рдИрдВ рдХрд╕рд░реА рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐рдХреЛ рдШрдЯрдирд╛рдорд╛ рд╕реЗрд╡рд╛ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ? рд░ рд▓реЛрдб рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░рд▓рд╛рдИ рдХрд╕рд░реА рдерд╛рд╣рд╛ рд╣реБрдиреНрдЫ рдХрд┐ рдкреЛрдб рдЯреНрд░рд╛рдлрд┐рдХ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрди рддрдпрд╛рд░ рдЫ? рд╡рд╛ рдХрд┐ рдпрд╕рд▓реЗ рдЕрдзрд┐рдХ рдЯреНрд░рд╛рдлрд┐рдХ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрди рд╕рдХреНрдЫ?

рдпреА рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдкреНрд░рд╛рдпрдГ рдПрдХ рдЕрд░реНрдХрд╛рд╕рдБрдЧ рднреНрд░рдорд┐рдд рд╣реБрдиреНрдЫрдиреН:

  • рдЬреАрд╡рдиреНрддрддрд╛ - "рдмрд╛рдБрдЪреНрдиреЗ рдХреНрд╖рдорддрд╛" рдЬрд╛рдБрдЪ, рдпрджрд┐ рдпреЛ рдЕрд╕рдлрд▓ рднрдПрдорд╛ рдкреЛрдб рдкреБрди: рд╕реБрд░реБ рд╣реБрдиреНрдЫ;
  • рддрддреНрдкрд░рддрд╛ - рддрдпрд╛рд░реА рдЬрд╛рдБрдЪ, рдпрджрд┐ рдпреЛ рдЕрд╕рдлрд▓ рднрдпреЛ рднрдиреЗ, рдпрд╕рд▓реЗ рдХреБрдмреЗрд░рдиреЗрдЯ рд╕реЗрд╡рд╛рдмрд╛рдЯ рдкреЛрдб рд╡рд┐рдЪреНрдЫреЗрдж рдЧрд░реНрджрдЫ (рдпреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред kubectl get endpoints) рд░ рдЕрд░реНрдХреЛ рдЪреЗрдХ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рдирднрдПрд╕рдореНрдо рдЯреНрд░рд╛рдлрд┐рдХ рдпрд╕рдорд╛ рдЖрдЗрдкреБрдЧреНрджреИрдиред

рдпреА рджреБрд╡реИ рдЪреЗрдХ рдкреЛрдбрдХреЛ рд╕рдореНрдкреВрд░реНрдг рдЬреАрд╡рди рдЪрдХреНрд░рдХреЛ рд╕рдордпрдорд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдПрдХреЛред рдпреЛ рдзреЗрд░реИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЫред

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

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

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

рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рдЕрд╕рдлрд▓ рд╣реБрдБрджрд╛ рджреБрд╡реИ рдкреНрд░рдХрд╛рд░рдХрд╛ рдЬрд╛рдБрдЪрд╣рд░реВ рдЕрд╕рдлрд▓ рд╣реБрдиреБ рд╣реБрдБрджреИрди, рдЕрдиреНрдпрдерд╛ рдпрд╕рд▓реЗ рд╕рдмреИ рдкреЛрдбрд╣рд░реВрдХреЛ рдХреНрдпрд╛рд╕реНрдХреЗрдбрд┐рдЩ (рд╣рд┐рдорднрд╛рд▓рд╛-рдЬрд╕реНрддреЛ) рд╡рд┐рдлрд▓рддрд╛ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫред рдЕрд░реНрдХреЛ рд╢рдмреНрджрдорд╛, рдЖрдлреИрд▓рд╛рдИ рд╣рд╛рдирд┐ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН.

3. рдкреНрд░рддреНрдпреЗрдХ HTTP рд╕реЗрд╡рд╛рдХреЛ рд▓рд╛рдЧрд┐ рд▓реЛрдб рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░

рд╕рдореНрднрд╡рддрдГ, рддрдкрд╛рдЗрдБрд╕рдБрдЧ рддрдкрд╛рдЗрдБрдХреЛ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ HTTP рд╕реЗрд╡рд╛рд╣рд░реВ рдЫрдиреН рдЬреБрди рддрдкрд╛рдЗрдБ рдмрд╛рд╣рд┐рд░реА рд╕рдВрд╕рд╛рд░рдорд╛ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реНрди рдЪрд╛рд╣рд╛рдиреБрд╣реБрдиреНрдЫред

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдпрд╕ рд░реВрдкрдорд╛ рд╕реЗрд╡рд╛ рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН type: LoadBalancer, рдпрд╕рдХреЛ рдирд┐рдпрдиреНрддреНрд░рдХ (рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рдпрдХрдХреЛ рдЖрдзрд╛рд░рдорд╛) рд▓реЗ рдмрд╛рд╣реНрдп рд▓реЛрдбрдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЙрдиреЗрдЫ рд░ рд╡рд╛рд░реНрддрд╛ рдЧрд░реНрдиреЗрдЫ (L7 рдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫреИрди, рддрд░ L4 рдорд╛ рдкрдирд┐), рд░ рдпрд╕рд▓реЗ рд▓рд╛рдЧрддрд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрди рд╕рдХреНрдЫ (рдмрд╛рд╣реНрдп рд╕реНрдерд┐рд░ IPv4 рдареЗрдЧрд╛рдирд╛, рдХрдореНрдкреНрдпреБрдЯрд┐рдЩ рдкрд╛рд╡рд░, рдкреНрд░рддрд┐-рд╕реЗрдХреЗрдиреНрдб рдмрд┐рд▓рд┐рдЩред ) рдзреЗрд░реИ рд╕рдВрдЦреНрдпрд╛рдорд╛ рддреНрдпрд╕реНрддрд╛ рд╕реНрд░реЛрддрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпреЛ рдПрдХ рдмрд╛рд╣реНрдп рд▓реЛрдб рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдзреЗрд░реИ рддрд╛рд░реНрдХрд┐рдХ рдЫ, рд╕реЗрд╡рд╛рд╣рд░реВ рдЦреЛрд▓реНрдиреЗ рд░реВрдкрдорд╛ type: NodePortред рд╡рд╛ рдЕрдЭ рд░рд╛рдореНрд░реЛ, рдЬрд╕реНрддреИ рдХреЗрд╣рд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН nginx-рдЗрдирдЧреНрд░реЗрд╕-рдирд┐рдпрдиреНрддреНрд░рдХ (рд╡рд╛ рдЯреНрд░рд╛рдлрд┐рдХ), рдЬреЛ рдПрдХ рдорд╛рддреНрд░ рд╣реБрдиреЗрдЫ рдиреЛрдбрдкреЛрд░реНрдЯ рдмрд╛рд╣реНрдп рд▓реЛрдб рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░рд╕рдБрдЧ рд╕рдореНрдмрджреНрдз рдЕрдиреНрддрд┐рдо рдмрд┐рдиреНрджреБ рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЯреНрд░рд╛рдлрд┐рдХ рдорд╛рд░реНрдЧ рдЧрд░реНрдиреЗрдЫ рдЗрдиреНрдЯреНрд░реЗрд╕- Kubernetes рд╕реНрд░реЛрддрд╣рд░реВред

рдЕрдиреНрдп рдЗрдиреНрдЯреНрд░рд╛-рдХреНрд▓рд╕реНрдЯрд░ (рдорд╛рдЗрдХреНрд░реЛ) рд╕реЗрд╡рд╛рд╣рд░реВ рдЬрд╕рд▓реЗ рдПрдХрдЕрд░реНрдХрд╛рд╕рдБрдЧ рдЕрдиреНрддрд░реНрдХреНрд░рд┐рдпрд╛ рдЧрд░реНрджрдЫ, рдЬрд╕реНрддреИ рд╕реЗрд╡рд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ "рд╕рдВрдЪрд╛рд░" рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред рдХреНрд▓рд╕реНрдЯрд░рдЖрдИрдкреА рд░ DNS рдорд╛рд░реНрдлрдд рдирд┐рд░реНрдорд┐рдд рд╕реЗрд╡рд╛ рдЦреЛрдЬ рд╕рдВрдпрдиреНрддреНрд░ред рдХреЗрд╡рд▓ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ DNS/IP рдкреНрд░рдпреЛрдЧ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН, рдХрд┐рдирдХрд┐ рдпрд╕рд▓реЗ рд╡рд┐рд▓рдореНрдмрддрд╛рд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрди рд╕рдХреНрдЫ рд░ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрдд рдмрдврд╛рдЙрди рд╕рдХреНрдЫред

4. рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрд▓рд╛рдИ рдзреНрдпрд╛рди рдирджрд┐рдЗрдХрди рд╕реНрд╡рддрдГ рд╕реНрдХреЗрд▓рд┐рдЩ

рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдиреЛрдбрд╣рд░реВ рдердкреНрджрд╛ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╣рдЯрд╛рдЙрдБрджрд╛, рддрдкрд╛рдИрдВрд▓реЗ рддреА рдиреЛрдбрд╣рд░реВрдорд╛ CPU рдкреНрд░рдпреЛрдЧ рдЬрд╕реНрддрд╛ рдХреЗрд╣реА рдЖрдзрд╛рд░рднреВрдд рдореЗрдЯреНрд░рд┐рдХрд╣рд░реВрдорд╛ рднрд░ рдкрд░реНрдиреБ рд╣реБрдБрджреИрдиред рдкреЛрдб рдпреЛрдЬрдирд╛ рдзреЗрд░реИрд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрдиреБ рдкрд░реНрдЫ рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реБ, рдЬрд╕реНрддреИ рдкреЛрдб/рдиреЛрдб рд╕рдореНрдмрджреНрдзрддрд╛, рджрд╛рдЧ рд░ рд╕рд╣рдирд╢реАрд▓рддрд╛, рд╕рдВрд╕рд╛рдзрди рдЕрдиреБрд░реЛрдзрд╣рд░реВ, QoS, рдЖрджрд┐ред рдмрд╛рд╣реНрдп рдЕрдЯреЛрд╕реНрдХреЗрд▓рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЬрд╕рд▓реЗ рдпреА рд╕реВрдХреНрд╖реНрдорддрд╛рд╣рд░реВрд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрджреИрди рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдирд┐рдореНрддреНрдпрд╛рдЙрди рд╕рдХреНрдЫред

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

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

Kubernetes рд╕рдореБрджрд╛рдп рдорд╛ рдзреЗрд░реИ рд▓реЛрдХрдкреНрд░рд┐рдп рдХреНрд▓рд╕реНрдЯрд░-рдЕрдЯреЛрд╕реНрдХреЗрд▓рд░ред рдпреЛ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЪрд▓реНрдЫ, рдкреНрд░рдореБрдЦ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрдмрд╛рдЯ API рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рд╕рдмреИ рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВрд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрдЫ рд░ рдорд╛рдерд┐рдХрд╛ рдХреЗрд╕рд╣рд░реВрдорд╛ рдорд╛рдкрди рдЧрд░реНрди рд╕рдХреНрдЫред рдпреЛ рд╕рдмреИ рд╕реЗрдЯ рд╕реАрдорд╛рд╣рд░реВ рдХрд╛рдпрдо рд░рд╛рдЦреНрджреИ рд╕реНрдХреЗрд▓-рдЗрди рдЧрд░реНрди рд╕рдХреНрд╖рдо рдЫ, рдЬрд╕рд▓реЗ рдЧрд░реНрджрд╛ рдкреИрд╕рд╛ рдмрдЪрдд рд╣реБрдиреНрдЫ (рдЬреБрди рдЕрдиреНрдпрдерд╛ рдкреНрд░рдпреЛрдЧ рдирдЧрд░рд┐рдПрдХреЛ рдХреНрд╖рдорддрд╛рдорд╛ рдЦрд░реНрдЪ рд╣реБрдиреЗрдЫ)ред

5. IAM/RBAC рдХреНрд╖рдорддрд╛рд╣рд░реВрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрджреИ

IAM рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░рдиреНрддрд░ рдЧреЛрдкреНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирджреЗрдЦрд┐ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреБрд╣реЛрд╕реН рдореЗрд╕рд┐рди рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВред рднреВрдорд┐рдХрд╛ рд░ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЕрд╕реНрдерд╛рдпреА рдкрд╣реБрдБрдЪ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН (рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛рд╣рд░реВ).

рдХреНрд▓рд╛рдЙрдб IAM рдорд╛ рдкрд╣реБрдБрдЪ рд╣реБрдБрджрд╛рд╣реБрдБрджреИ рдкрдирд┐ рдЧреЛрдкреНрдпрддрд╛рдХреЛ рд░реЛрдЯреЗрд╢рдирд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрдиреБрдХрд╛ рд╕рд╛рдереИ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рдкрд╣реБрдБрдЪ рдХреБрдЮреНрдЬреАрд╣рд░реВ (рд░ рдЧреЛрдкреНрдпрд╣рд░реВ) рд╣рд╛рд░реНрдбрдХреЛрдб рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН рднрдиреНрдиреЗ рддрдереНрдпрд▓рд╛рдИ рд╣рд╛рдореА рдкреНрд░рд╛рдпрдГ рд╕рд╛рдордирд╛ рдЧрд░реНрдЫреМрдВред рдЙрдкрдпреБрдХреНрдд рднрдПрдорд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд╕рдЯреНрдЯрд╛ IAM рднреВрдорд┐рдХрд╛ рд░ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

Kubernetes рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ 10 рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓реНрддреАрд╣рд░реВ

kube2iam рдХреЛ рдмрд╛рд░реЗрдорд╛ рдмрд┐рд░реНрд╕рдиреБрд╣реЛрд╕реН рд░ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реАрдзрд╛ IAM рднреВрдорд┐рдХрд╛рд╣рд░реВрдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН (рдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░ рдПрдЙрдЯреИ рдирд╛рдордХреЛ рдиреЛрдЯ ┼аt─Ыp├бn Vran├╜):

apiVersion: v1
kind: ServiceAccount
metadata:
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/my-app-role
  name: my-serviceaccount
  namespace: default

рдПрдЙрдЯрд╛ рдПрдиреЛрдЯреЗрд╕рдиред рддреНрдпрддрд┐ рдЧрд╛рд╣реНрд░реЛ рдЫреИрди, рд╣реИрди?

рд╕рд╛рдереИ, рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛рд╣рд░реВ рд░ рдЙрджрд╛рд╣рд░рдг рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд╣рд░реВ рдкреНрд░рджрд╛рди рдирдЧрд░реНрдиреБрд╣реЛрд╕реН admin ╨╕ cluster-adminрдпрджрд┐ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдЫреИрди рднрдиреЗред рдпреЛ рд▓рд╛рдЧреВ рдЧрд░реНрди рдЕрд▓рд┐ рдмрдвреА рдЧрд╛рд╣реНрд░реЛ рдЫ, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА RBAC K8s рдорд╛, рддрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдкрдорд╛ рдкреНрд░рдпрд╛рд╕рдХреЛ рд▓рд╛рдпрдХ рдЫред

6. рдкреЛрдбрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд┐рд░реЛрдзреА-рд╕рдореНрдмрдиреНрдзрдорд╛ рднрд░реЛрд╕рд╛ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН

рдХрд▓реНрдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдиреЛрдбрдорд╛ рдХреЗрд╣реА рдкрд░рд┐рдирд┐рдпреЛрдЬрдирдХреЛ рддреАрди рдкреНрд░рддрд┐рдХреГрддрд┐рд╣рд░реВ рдЫрдиреНред рдиреЛрдб рдЦрд╕реНрдЫ, рд░ рдпрд╕рдХреЛ рд╕рд╛рдердорд╛ рд╕рдмреИ рдкреНрд░рддрд┐рдХреГрддрд┐рд╣рд░реВред рдЕрдкреНрд░рд┐рдп рд╕реНрдерд┐рддрд┐, рд╣реИрди? рддрд░ рдХрд┐рди рд╕рдмреИ рдкреНрд░рддрд┐рдХреГрддрд┐рд╣рд░реВ рдПрдЙрдЯреИ рдиреЛрдбрдорд╛ рдерд┐рдП? рдХреЗ Kubernetes рд▓реЗ рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ (HA) рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗ рд╣реЛрдЗрди?!

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

// ╨╛╨┐╤Г╤Й╨╡╨╜╨╛ ╨┤╨╗╤П ╨║╤А╨░╤В╨║╨╛╤Б╤В╨╕
      labels:
        app: zk
// ╨╛╨┐╤Г╤Й╨╡╨╜╨╛ ╨┤╨╗╤П ╨║╤А╨░╤В╨║╨╛╤Б╤В╨╕
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: "app"
                    operator: In
                    values:
                    - zk
              topologyKey: "kubernetes.io/hostname"

рдпрддрд┐ рдиреИред рдЕрдм рдкреЛрдбрд╣рд░реВ рд╡рд┐рднрд┐рдиреНрди рдиреЛрдбрд╣рд░реВрдорд╛ рдЕрдиреБрд╕реВрдЪрд┐рдд рд╣реБрдиреЗрдЫрдиреН (рдпреЛ рдЕрд╡рд╕реНрдерд╛ рдХреЗрд╡рд▓ рд╕рдордп рддрд╛рд▓рд┐рдХрд╛рдХреЛ рд╕рдордпрдорд╛ рдЬрд╛рдБрдЪ рдЧрд░рд┐рдиреНрдЫ, рддрд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рд╕рдордпрдорд╛ рд╣реЛрдЗрди - рддреНрдпрд╕реИрд▓реЗ requiredDuringSchedulingIgnoredDuringExecution).

рдпрд╣рд╛рдБ рд╣рд╛рдореА рдХреБрд░рд╛ рдЧрд░реНрджреИрдЫреМрдВ podAntiAffinity рд╡рд┐рднрд┐рдиреНрди рдиреЛрдбрд╣рд░реВрдорд╛: topologyKey: "kubernetes.io/hostname", - рд░ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╣реЛрдЗрдиред рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд HA рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕ рд╡рд┐рд╖рдпрдорд╛ рдЧрд╣рд┐рд░реЛ рдЦрдиреНрдиреБрдкрд░реНрдЫред

7. PodDisruption Budgets рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрджреИ

рдХрд▓реНрдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ Kubernetes рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЙрддреНрдкрд╛рджрди рд▓реЛрдб рдЫред рдЖрд╡рдзрд┐рдХ рд░реВрдкрдорд╛, рдиреЛрдбрд╣рд░реВ рд░ рдХреНрд▓рд╕реНрдЯрд░ рдЖрдлреИрдВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ (рд╡рд╛ рдЦрд╛рд░реЗрдЬ) рд╣реБрдиреБрдкрд░реНрдЫред PodDisruptionBudget (PDB) рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рд╢рд╛рд╕рдХ рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рдмреАрдЪрдХреЛ рд╕реЗрд╡рд╛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рд╕рдореНрдЭреМрддрд╛ рдЬрд╕реНрддреИ рд╣реЛред

PDB рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдиреЛрдбрд╣рд░реВрдХреЛ рдХрдореАрдХреЛ рдХрд╛рд░рдгрд▓реЗ рд╕реЗрд╡рд╛ рдЕрд╡рд░реЛрдзрд╣рд░реВрдмрд╛рдЯ рдмрдЪреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ:

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

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

рддрдкрд╛рдИрдВ рдпрд╕ рдмрд╛рд░реЗ рдердк рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдпрд╣рд╛рдБ.

8. рдПрдХ рд╕рд╛рдЭрд╛ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдмрд╣реБ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╛ рд╡рд╛рддрд╛рд╡рд░рдг

Kubernetes рдиреЗрдорд╕реНрдкреЗрд╕ (рдирд╛рдорд╕реНрдерд╛рди) рдмрд▓рд┐рдпреЛ рдЗрдиреНрд╕реБрд▓реЗрд╢рди рдкреНрд░рджрд╛рди рдирдЧрд░реНрдиреБрд╣реЛрд╕реН.

рдПрдЙрдЯрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рдд рдзрд╛рд░рдгрд╛ рдпреЛ рд╣реЛ рдХрд┐ рдпрджрд┐ рддрдкрд╛рдЗрдБ рдПрдХ рдиреЗрдорд╕реНрдкреЗрд╕рдорд╛ рдЧреИрд░-рдкреНрд░реЛрдб рд▓реЛрдб рдбрд┐рдкреНрд▓реЛрдп рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рд░ рдЕрд░реНрдХреЛрдорд╛ рдкреНрд░реЛрдб рд▓реЛрдб рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ, рддреНрдпрд╕рдкрдЫрд┐ рддрд┐рдиреАрд╣рд░реВ рдПрдХрдЕрд░реНрдХрд╛рд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рд╣рд┐рд╕рд╛рдмрд▓реЗ рдкреНрд░рднрд╛рд╡ рдкрд╛рд░реНрдиреЗ рдЫреИрди... рдпрджреНрдпрдкрд┐, рд╕реНрд░реЛрдд рдЕрдиреБрд░реЛрдз/рд╕реАрдорд╛рд╣рд░реВ, рд╕реЗрдЯрд┐рдЩ рдХреЛрдЯрд╛рд╣рд░реВ, рд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд░реНрдЧрд╣рд░реВ рд╕реЗрдЯ рдЧрд░реЗрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрддрд░рдХреЛ рдЕрд▓рдЧрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдбрд╛рдЯрд╛ рдкреНрд▓реЗрдирдорд╛ рдХреЗрд╣реА "рд╢рд╛рд░реАрд░рд┐рдХ" рдЕрд▓рдЧрд╛рд╡рд╣рд░реВ рд╕рдорд╛рдирддрд╛, рд╕рд╣рд┐рд╖реНрдгреБрддрд╛, рджрд╛рдЧ (рд╡рд╛ рдиреЛрдбрд╕реЗрд▓реЗрдХреНрдЯрд░рд╣рд░реВ) рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдиреНрдЫ, рддрд░ рдпрд╕реНрддреЛ рдкреГрдердХрддрд╛ рдПрдХрджрдореИ рдЫред рдХрдард┐рдирд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреЗред

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

9. рдмрд╛рд╣реНрдп рдЯреНрд░рд╛рдлрд┐рдХ рдиреАрддрд┐: рдХреНрд▓рд╕реНрдЯрд░

рдкреНрд░рд╛рдпрдГ рд╣рд╛рдореА рджреЗрдЦреНрдЫреМрдВ рдХрд┐ рдХреНрд▓рд╕реНрдЯрд░ рднрд┐рддреНрд░ рд╕рдмреИ рдЯреНрд░рд╛рдлрд┐рдХ NodePort рдЬрд╕реНрддреИ рд╕реЗрд╡рд╛ рдорд╛рд░реНрдлрдд рдЖрдЙрдБрдЫ, рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдиреАрддрд┐ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫред externalTrafficPolicy: Cluster... рдпрд╕рдХреЛ рдорддрд▓рдм рд╣реЛ рдиреЛрдбрдкреЛрд░реНрдЯ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрдорд╛ рдЦреБрд▓рд╛ рдЫ, рд░ рддрдкрд╛рдИрдВрд▓реЗ рддреА рдордзреНрдпреЗ рдХреБрдиреИ рдкрдирд┐ рдЗрдЪреНрдЫрд┐рдд рд╕реЗрд╡рд╛ (рдкреЛрдбрд╣рд░реВрдХреЛ рд╕реЗрдЯ) рд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

Kubernetes рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ 10 рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓реНрддреАрд╣рд░реВ

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

рдЕрд░реНрдХреЛрддрд░реНрдл, рдпрджрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд Kubernetes рд╕реЗрд╡рд╛рд╕рдБрдЧ рдиреАрддрд┐ рд╕реЗрдЯ рдЫ externalTrafficPolicy: Local, рддреНрдпрд╕рдкрдЫрд┐ NodePort рддреА рдиреЛрдбрд╣рд░реВрдорд╛ рдорд╛рддреНрд░ рдЦреБрд▓реНрдЫ рдЬрд╣рд╛рдБ рдЖрд╡рд╢реНрдпрдХ рдкреЛрдбрд╣рд░реВ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХрд╛ рдЫрдиреНред рд░рд╛рдЬреНрдп рдЬрд╛рдБрдЪ рдЧрд░реНрдиреЗ рдмрд╛рд╣реНрдп рд▓реЛрдб рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ (рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдБрдЪ) endpoints (рдпрд╕рд▓реЗ рдХрд╕рд░реА рдЧрд░реНрдЫ AWS ELB), рдЙрд╣рд╛рдБ рдЖрд╡рд╢реНрдпрдХ рдиреЛрдбрд╣рд░реВрдорд╛ рдорд╛рддреНрд░ рдЯреНрд░рд╛рдлрд┐рдХ рдкрдард╛рдЙрдиреЗрдЫ, рдЬрд╕рд▓реЗ рдврд┐рд▓рд╛рдЗ, рдХрдореНрдкреНрдпреБрдЯрд┐рдЩ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ, рдирд┐рдХрд╛рд╕ рдмрд┐рд▓рд╣рд░реВрдорд╛ рд▓рд╛рднрдХрд╛рд░реА рдкреНрд░рднрд╛рд╡ рдкрд╛рд░реНрдиреЗрдЫ (рд░ рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рдирд▓реЗ рдкрдирд┐ рддреНрдпрд╕реНрддреИ рдирд┐рд░реНрджреЗрд╢рди рджрд┐рдиреНрдЫ)ред

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

╨Т рдпреЛ рдкреНрд░рдХрд╛рд╢рди рддрдкрд╛рдИрдВ рдмрд╛рд╣реНрдп рдпрд╛рддрд╛рдпрд╛рдд рдиреАрддрд┐, рдпрд╕рдХреЛ рдлрд╛рдЗрджрд╛ рд░ рдмреЗрдлрд╛рдЗрджрд╛ рдмрд╛рд░реЗ рдердк рдЬрд╛рдиреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

10. рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рдмрд╛рдБрдзреНрдиреБрд╣реЛрд╕реН рд░ рдирд┐рдпрдиреНрддреНрд░рдг рд╡рд┐рдорд╛рдирдХреЛ рджреБрд░реБрдкрдпреЛрдЧ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН

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

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

рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рдШрд░рдкрд╛рд▓реБрд╡рд╛ рдЬрдирд╛рд╡рд░рдорд╛ рдкрд░рд┐рдгрдд рд╣реБрдиреБрдорд╛ рдХреЗрд╣реА рд░рдорд╛рдЗрд▓реЛ рдЫреИрди, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдЕрднреНрдпрд╛рд╕ рдЧрд░реНрджрд╛ рд╕рдордп-рд╕рдордпрдорд╛ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╣рдЯрд╛рдЙрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдЫреМрдВред рдкреНрд░рд╛рдХреНрд░рддрд┐рдХ рдкреНрд░рдХреЛрдк рдкрдЫреА рдкреБрдирд░ рдирд┐рд░реНрдорд╛рдг (рдпрд╕рд▓реЗ рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫ рдЕрд░рд╛рдЬрдХрддрд╛ рдИрдиреНрдЬрд┐рдирд┐рдпрд░рд┐рдЩреН - рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджред)ред рдердк рд░реВрдкрдорд╛, рдпреЛ рдирд┐рдпрдиреНрддреНрд░рдг рддрд╣рдорд╛ рдХрд╛рдо рдЧрд░реНрди рдЪреЛрдЯ рд▓рд╛рдЧреНрджреИрди (рдирд┐рдпрдиреНрддреНрд░рдг рд╡рд┐рдорд╛рди)ред рдЙрд╕рд▓рд╛рдИ рдЫреБрди рдбрд░рд╛рдЙрдиреБ рд░рд╛рдореНрд░реЛ рд╕рдВрдХреЗрдд рд╣реЛрдЗрдиред рдЖрджрд┐ рдорд░реЗрдХреЛ? рд╕рд╛рдереАрд╣рд░реВ, рддрдкрд╛рдИрдВ рд╕рд╛рдБрдЪреНрдЪреИ рд╕рдорд╕реНрдпрд╛рдорд╛ рд╣реБрдиреБрд╣реБрдиреНрдЫ!

рдЕрд░реНрдХреЛрддрд░реНрдл, рддрдкрд╛рдИрдВ рдпрд╕рд▓рд╛рдИ рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрдирдмрд╛рдЯ рдЯрд╛рдврд╛ рд╣реБрдиреБ рд╣реБрдБрджреИрдиред рд╕рдордп рд╕рдВрдЧ рдирд┐рдпрдиреНрддреНрд░рдг рддрд╣ рдврд┐рд▓реЛ рд╣реБрди рд╕рдХреНрдЫред рд╕рдореНрднрд╡рддрдГ, рдпреЛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкрд░рд┐рдХреНрд░рдорд╛ рдмрд┐рдирд╛ рдиреИ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рд╡рд╕реНрддреБрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рднрдПрдХреЛ рдХрд╛рд░рдгрд▓реЗ рд╣реЛ (рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрдЯрд┐рдЩрд╣рд░реВрд╕рдБрдЧ рд╣реЗрд▓рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рд╕реНрдерд╛, рддреНрдпрд╕реИрд▓реЗ рдХрдиреНрдлрд┐рдЧрдореНрдпрд╛рдк/рд╕реЗрдХреНрд░реЗрдЯрд╣рд░реВрдорд╛ рдпрд╕рдХреЛ рд╕реНрдерд┐рддрд┐ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди - рдкрд░рд┐рдгрд╛рдо рд╕реНрд╡рд░реВрдк, рд╣рдЬрд╛рд░реМрдВ рд╡рд╕реНрддреБрд╣рд░реВ рдЬрдореНрдорд╛ рд╣реБрдиреНрдЫрдиреНред рдирд┐рдпрдиреНрддреНрд░рдг рддрд╣) рд╡рд╛ kube-api рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдирд┐рд░рдиреНрддрд░ рд╕рдореНрдкрд╛рджрдирдХреЛ рд╕рд╛рде (рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реНрдХреЗрд▓рд┐рдВрдЧрдХреЛ рд▓рд╛рдЧрд┐, CI/CD рдХреЛ рд▓рд╛рдЧрд┐, рдирд┐рдЧрд░рд╛рдиреАрдХреЛ рд▓рд╛рдЧрд┐, рдШрдЯрдирд╛ рд▓рдЧрд╣рд░реВ, рдирд┐рдпрдиреНрддреНрд░рдХрд╣рд░реВ, рдЖрджрд┐)ред

рдердк рд░реВрдкрдорд╛, рд╣рд╛рдореА рд╡реНрдпрд╡рд╕реНрдерд┐рдд Kubernetes рдкреНрд░рджрд╛рдпрдХрд╕рдБрдЧ SLA/SLO рд╕рдореНрдЭреМрддрд╛рд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрди рд░ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАрд╣рд░реВрдорд╛ рдзреНрдпрд╛рди рджрд┐рди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдЫреМрдВред рд╡рд┐рдХреНрд░реЗрддрд╛рд▓реЗ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рдЧрд░реНрди рд╕рдХреНрдЫ рдирд┐рдпрдиреНрддреНрд░рдг рддрд╣ рдЙрдкрд▓рдмреНрдзрддрд╛ (рд╡рд╛ рдпрд╕рдХреЛ рдЙрдкрдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ), рддрд░ рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдкрдард╛рдЙрдиреБрднрдПрдХреЛ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ p99 рдврд┐рд▓рд╛рдЗ рд╣реЛрдЗрдиред рдЕрд░реНрдХреЛ рд╢рдмреНрджрдорд╛, рддрдкрд╛рдЗрдБ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ kubectl get nodes, рд░ 10 рдорд┐рдиреЗрдЯ рдкрдЫрд┐ рдорд╛рддреНрд░ рдЬрд╡рд╛рдл рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд░ рдпреЛ рд╕реЗрд╡рд╛ рд╕рдореНрдЭреМрддрд╛рдХрд╛ рд╕рд░реНрддрд╣рд░реВрдХреЛ рдЙрд▓реНрд▓рдЩреНрдШрди рд╣реБрдиреЗрдЫреИрдиред

11. рдмреЛрдирд╕: рдирд╡реАрдирддрдо рдЯреНрдпрд╛рдЧ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

рддрд░ рдпреЛ рдкрд╣рд┐рд▓реЗ рдиреИ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдЫред рдкрдЫрд┐рд▓реНрд▓реЛ рд╕рдордп рд╣рд╛рдореАрд▓реЗ рдпреЛ рдкреНрд░рд╡рд┐рдзрд┐ рдХрдореИ рднреЗрдЯреЗрдХрд╛ рдЫреМрдВ, рдХрд┐рдирднрдиреЗ рдзреЗрд░реИрд▓реЗ рддреАрддреЛ рдЕрдиреБрднрд╡рдмрд╛рдЯ рд╕рд┐рдХреЗрд░ рдЯреНрдпрд╛рдЧ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЫреЛрдбреЗрдХрд╛ рдЫрдиреНред :latest рд░ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдкрд┐рди рдЧрд░реНрди рдерд╛рд▓реЗред рд╣реБрд░реНрд░реЗ!

ECR рдЫрд╡рд┐ рдЯреНрдпрд╛рдЧрд╣рд░реВрдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдХрд╛рдпрдо рд░рд╛рдЦреНрдЫ; рд╣рд╛рдореА рддрдкрд╛рдИрдВрд▓рд╛рдИ рдпреЛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╕реБрд╡рд┐рдзрд╛рд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рдЧрд░рд╛рдЙрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдЫреМрдВред

рд╕рд╛рд░рд╛рдВрд╢

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

рддрдкрд╛рдИрдВ рд╡рд┐рднрд┐рдиреНрди рдЯреЛрд▓реАрдХрд╛ рдЕрд╕рдлрд▓ рдЕрдиреБрднрд╡рд╣рд░реВрд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рд╣реБрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрдерд╛рд╣рд░реВрдХреЛ рдпреЛ рд╕рдВрдЧреНрд░рд╣ рд╣реЗрдирд┐рдВрдЧ рдЬреЗрдХрдмреНрд╕ рджреНрд╡рд╛рд░рд╛ред

рдпрд╕ рд▓реЗрдЦрдорд╛ рджрд┐рдЗрдПрдХреЛ рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рд╕реВрдЪреАрдорд╛ рдердкреНрди рдЪрд╛рд╣рдиреЗрд╣рд░реВрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЯреНрд╡рд┐рдЯрд░рдорд╛ рд╕рдореНрдкрд░реНрдХ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ (@MarekBartik, @MstrsObserver).

рдЕрдиреБрд╡рд╛рджрдХрдмрд╛рдЯ PS

рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧрдорд╛ рдкрдирд┐ рдкрдвреНрдиреБрд╣реЛрд╕реН:

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди