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, рдбреЗрдЯрд╛рдбреЙрдЧ рдЖрдгрд┐ рдЗрддрд░ рд╕рд╛рдзрдиреЗ. рддреЗ рдлрдХреНрдд рдореЗрдЯреНрд░рд┐рдХреНрд╕-рд╕рд░реНрд╡реНрд╣рд░рдХрдбреВрди рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдорд┐рд│рд╡рддрд╛рдд рдЖрдгрд┐ рддреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддрд╛рдд рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рддреНрдпрд╛рдВрдирд╛ рдХреНрд╡реЗрд░реА рдХрд░реВ рд╢рдХрддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдиреБрд╕рд╛рд░ рдкреНрд▓реЙрдЯ рдХрд░реВ рд╢рдХрддреЛ.

рд╡реНрд╣рд░реНрдЯрд┐рдХрд▓рдкреЙрдбрдСрдЯреЛрд╕реНрдХреЗрд▓рд░ рддреЛ рд╕рдВрдордд рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛. рд╣реЗ CPU рдЖрдгрд┐ рдореЗрдорд░реА рд╡рд╛рдкрд░ рдЗрддрд┐рд╣рд╛рд╕ рдЯреНрд░реЕрдХ рдХрд░рддреЗ рдЖрдгрд┐ рдпрд╛ рдорд╛рд╣рд┐рддреАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдирд╡реАрди рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрдгрд┐ рдорд░реНрдпрд╛рджрд╛ рд╕реЗрдЯ рдХрд░рддреЗ.

рд╕рдВрдЧрдгрдХреАрдп рд╢рдХреНрддреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдиреЗ рд╡рд╛рдкрд░рдгреЗ рд╕реЛрдкреЗ рдХрд╛рдо рдирд╛рд╣реА. рд╣реЗ рд╕рд░реНрд╡ рд╡реЗрд│ рдЯреЗрдЯреНрд░рд┐рд╕ рдЦреЗрд│рдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ. рддреБрдореНрд╣реА рдХрдореА рд╕рд░рд╛рд╕рд░реА рд╡рд╛рдкрд░рд╛рд╕рд╣ (~10% рдореНрд╣рдгрд╛) рдореЛрдЬрдгреА рдкреЙрд╡рд░рд╕рд╛рдареА рдЦреВрдк рдЬрд╛рд╕реНрдд рдкреИрд╕реЗ рджреЗрдд рдЕрд╕рд▓реНрдпрд╛рд╕, рдЖрдореНрд╣реА AWS Fargate рдХрд┐рдВрд╡рд╛ Virtual Kubelet рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЙрддреНрдкрд╛рджрдиреЗ рдкрд╛рд╣рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ. рддреЗ рд╕рд░реНрд╡реНрд╣рд░рд▓реЗрд╕/рдкреЗ-рдкрд░-рд╡рд╛рдкрд░ рдмрд┐рд▓рд┐рдВрдЧ рдореЙрдбреЗрд▓рд╡рд░ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЖрд╣реЗрдд, рдЬреЗ рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рд╕реНрд╡рд╕реНрдд рдЕрд╕реВ рд╢рдХрддрд╛рдд.

2. рд╕рдЬреАрд╡рддрд╛ рдЖрдгрд┐ рддрддреНрдкрд░рддрд╛ рддрдкрд╛рд╕рдгреА

рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рдЬрд┐рд╡рдВрддрдкрдгрд╛ рдЖрдгрд┐ рддрдпрд╛рд░реА рддрдкрд╛рд╕рдгреЗ рд╕рдХреНрд╖рдо рдирд╛рд╣реАрдд. рдЖрдгрд┐ рдХрдзреА рдХрдзреА рддреЗ рдЪрд╛рд▓реВ рдХрд░рд╛рдпрд▓рд╛ рд╡рд┐рд╕рд░рддрд╛рдд...

рдкрд░рдВрддреБ рдШрд╛рддрдХ рддреНрд░реБрдЯреА рдЖрдврд│рд▓реНрдпрд╛рд╕ рддреБрдореНрд╣реА рд╕реЗрд╡рд╛ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд╢реА рдХрд░реВ рд╢рдХрддрд╛? рдЖрдгрд┐ рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░рд▓рд╛ рдХрд╕реЗ рдХрд│рддреЗ рдХреА рдкреЙрдб рд░рд╣рджрд╛рд░реА рд╕реНрд╡реАрдХрд╛рд░рдгреНрдпрд╛рд╕ рддрдпрд╛рд░ рдЖрд╣реЗ? рдХрд┐рдВрд╡рд╛ рддреЗ рдЕрдзрд┐рдХ рд░рд╣рджрд╛рд░реА рд╣рд╛рддрд╛рд│реВ рд╢рдХрддреЗ?

рдпрд╛ рдЪрд╛рдЪрдгреНрдпрд╛ рд╕рд╣рд╕рд╛ рдПрдХрдореЗрдХрд╛рдВрд╢реА рдЧреЛрдВрдзрд│рд▓реЗрд▓реНрдпрд╛ рдЕрд╕рддрд╛рдд:

  • рдЪреИрддрдиреНрдп тАФ тАЬрдЬрдЧрдгреНрдпрд╛рдЪреАтАЭ рддрдкрд╛рд╕рдгреА, рдЬреЗ рдкреЙрдб рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рддреЗ;
  • рддрддреНрдкрд░рддрд╛ тАФ рддрддреНрдкрд░рддрд╛ рддрдкрд╛рд╕рдгреА, рдЬрд░ рддреЗ рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реЗ, рддрд░ рддреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕реЗрд╡реЗрдордзреВрди рдкреЙрдб рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ (рд╣реЗ рд╡рд╛рдкрд░реВрди рддрдкрд╛рд╕рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ kubectl get endpoints) рдЖрдгрд┐ рдкреБрдвреАрд▓ рддрдкрд╛рд╕рдгреА рдпрд╢рд╕реНрд╡реАрд░реАрддреНрдпрд╛ рдкреВрд░реНрдг рд╣реЛрдИрдкрд░реНрдпрдВрдд рд░рд╣рджрд╛рд░реА рддреНрдпрд╛рдХрдбреЗ рдпреЗрдд рдирд╛рд╣реА.

рдпрд╛ рджреЛрдиреНрд╣реА рддрдкрд╛рд╕рдгреНрдпрд╛ рдкреЙрдбрдЪреНрдпрд╛ рд╕рдВрдкреВрд░реНрдг рдЬреАрд╡рди рдЪрдХреНрд░рд╛рджрд░рдореНрдпрд╛рди рд╕рд╛рджрд░ рдХреЗрд▓реЗ. рддреЗ рдЦреВрдк рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ.

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

рдЖрдгрдЦреА рдПрдХ рдореНрд╣рдгрдЬреЗ рдкреЙрдбрд╡рд░реАрд▓ рд░рд╣рджрд╛рд░реА рдЬрд╛рд╕реНрдд рдЖрд╣реЗ рд╣реЗ рд╢реЛрдзрдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рддреЗ рдУрд╡реНрд╣рд░рд▓реЛрдб рдХрд░рддреЗ (рдХрд┐рдВрд╡рд╛ рдкреЙрдб рд╕рдВрд╕рд╛рдзрди-рдХреЗрдВрджреНрд░рд┐рдд рдЧрдгрдирд╛ рдХрд░рддреЗ). рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рддрдпрд╛рд░реА рддрдкрд╛рд╕рдгреА рдорджрдд рдХрд░рддреЗ рдкреЙрдбрд╡рд░реАрд▓ рднрд╛рд░ рдХрдореА рдХрд░рд╛ рдЖрдгрд┐ рддреЗ тАЬрдердВрдбтАЭ рдХрд░рд╛. рднрд╡рд┐рд╖реНрдпрд╛рдд рддрддреНрдкрд░рддрд╛ рддрдкрд╛рд╕рдгреА рдпрд╢рд╕реНрд╡реАрдкрдгреЗ рдкреВрд░реНрдг рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ рдкреЙрдбрд╡рд░реАрд▓ рднрд╛рд░ рдкреБрдиреНрд╣рд╛ рд╡рд╛рдврд╡рд╛. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд (рддрддреНрдкрд░рддрд╛ рдЪрд╛рдЪрдгреА рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕), рдЬрд┐рд╡рдВрддрдкрдгрд╛ рдЪрд╛рдЪрдгреА рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдгреЗ рдЦреВрдк рдкреНрд░рддрд┐рдХреВрд▓ рдЕрд╕реЗрд▓. рдирд┐рд░реЛрдЧреА рдЖрдгрд┐ рдХрдареЛрд░ рдкрд░рд┐рд╢реНрд░рдо рдХрд░рдгрд╛рд░реА рдкреЙрдб рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд╛?

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

рдЬреЗрд╡реНрд╣рд╛ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрддреЗ рддреЗрд╡реНрд╣рд╛ рджреЛрдиреНрд╣реА рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рддрдкрд╛рд╕рдгреНрдпрд╛ рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдК рдирдпреЗрдд, рдЕрдиреНрдпрдерд╛ рдпрд╛рдореБрд│реЗ рд╕рд░реНрд╡ рд╢реЗрдВрдЧрд╛рдВрдЪреЗ рдХреЕрд╕реНрдХреЗрдбрд┐рдВрдЧ (рд╣рд┐рдорд╕реНрдЦрд▓рди рд╕рд╛рд░рдЦреЗ) рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдИрд▓. рджреБрд╕рд░рд╝реНрдпрд╛ рд╢рдмреНрджрд╛рдд, рд╕реНрд╡рддрдГрд▓рд╛ рдЗрдЬрд╛ рдХрд░реВ рдирдХрд╛.

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

рдмрд╣реБрдзрд╛, рддреБрдордЪреНрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рддреБрдордЪреНрдпрд╛ HTTP рд╕реЗрд╡рд╛ рдЖрд╣реЗрдд рдЬреНрдпрд╛ рддреБрдореНрд╣реА рдмрд╛рд╣реЗрд░рдЪреНрдпрд╛ рдЬрдЧрд╛рд▓рд╛ рдлреЙрд░рд╡рд░реНрдб рдХрд░реВ рдЗрдЪреНрдЫрд┐рддрд╛.

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

рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдПрдХ рдмрд╛рд╣реНрдп рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░ рд╡рд╛рдкрд░рдгреЗ рдЕрдзрд┐рдХ рддрд░реНрдХрд╕рдВрдЧрдд рдЖрд╣реЗ, рд╕реЗрд╡рд╛ рдЙрдШрдбрдгреЗ type: NodePort. рдХрд┐рдВрд╡рд╛ рдЕрдЬреВрди рдЪрд╛рдВрдЧрд▓реЗ, рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рд╡рд┐рд╕реНрддреГрдд рдХрд░рд╛ nginx-ingress-рдХрдВрдЯреНрд░реЛрд▓рд░ (рдХрд┐рдВрд╡рд╛ рдЯреНрд░реЕрдлрд┐рдХ), рдЬреЛ рдПрдХрдЯрд╛рдЪ рдЕрд╕реЗрд▓ рдиреЛрдбрдкреЛрд░реНрдЯ рдмрд╛рд╣реНрдп рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░рд╢реА рдирд┐рдЧрдбреАрдд рдПрдВрдбрдкреЙрдИрдВрдЯ рдЖрдгрд┐ рд╡рд╛рдкрд░реВрди рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рд░рд╣рджрд╛рд░реА рдорд╛рд░реНрдЧреА рд▓рд╛рд╡реЗрд▓ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреЗ-рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕рдВрд╕рд╛рдзрдиреЗ.

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

4. рдХреНрд▓рд╕реНрдЯрд░рдЪреА рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рд╡рд┐рдЪрд╛рд░рд╛рдд рди рдШреЗрддрд╛ рдСрдЯреЛрд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд░рдгреЗ

рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдиреЛрдбреНрд╕ рдЬреЛрдбрддрд╛рдирд╛ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдХрд╛рдвреВрди рдЯрд╛рдХрддрд╛рдирд╛, рддреБрдореНрд╣реА рддреНрдпрд╛ рдиреЛрдбреНрд╕рд╡рд░реАрд▓ CPU рд╡рд╛рдкрд░рд╛рд╕рд╛рд░рдЦреНрдпрд╛ рдХрд╛рд╣реА рдореВрд▓рднреВрдд рдореЗрдЯреНрд░рд┐рдХреНрд╕рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рд░рд╛рд╣реВ рдирдпреЗ. рдкреЙрдб рдирд┐рдпреЛрдЬрди рдЕрдиреЗрдХ рдЦрд╛рддреНрдпрд╛рдд рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдирд┐рд░реНрдмрдВрдз, рдЬрд╕реЗ рдХреА рдкреЙрдб/рдиреЛрдб рдЕреЕрдлрд┐рдирд┐рдЯреА, рдХрд▓рдВрдХ рдЖрдгрд┐ рд╕рд╣рдирд╢реАрд▓рддрд╛, рд╕рдВрд╕рд╛рдзрди рд╡рд┐рдирдВрддреНрдпрд╛, QoS, рдЗ. рдпрд╛ рдмрд╛рд░рдХрд╛рд╡реЗ рд╡рд┐рдЪрд╛рд░рд╛рдд рди рдШреЗрдгрд╛рд░реЗ рдмрд╛рд╣реНрдп рдСрдЯреЛрд╕реНрдХреЗрд▓рд░ рд╡рд╛рдкрд░рд▓реНрдпрд╛рдиреЗ рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡реВ рд╢рдХрддрд╛рдд.

рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреЙрдб рд╢реЗрдбреНрдпреВрд▓ рдХреЗрд▓реЗрд▓рд╛ рдЕрд╕рд╛рд╡рд╛, рдкрд░рдВрддреБ рд╕рд░реНрд╡ рдЙрдкрд▓рдмреНрдз рд╕реАрдкреАрдпреВ рдкреЙрд╡рд░рдЪреА рд╡рд┐рдирдВрддреА рдХреЗрд▓реА рдЬрд╛рддреЗ/рдбрд┐рд╕реЗрдореНрдмрд▓ рдХреЗрд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ рдкреЙрдб рд░рд╛рдЬреНрдпрд╛рдд рдЕрдбрдХрддреЛ Pending. рдмрд╛рд╣реНрдп рдСрдЯреЛрд╕реНрдХреЗрд▓рд░ рд╕рд░рд╛рд╕рд░реА рд╡рд░реНрддрдорд╛рди CPU рд▓реЛрдб рдкрд╛рд╣рддреЛ (рд╡рд┐рдирдВрддреА рдХреЗрд▓реЗрд▓рд╛ рдирд╛рд╣реА) рдЖрдгрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реБрд░реВ рдХрд░рдд рдирд╛рд╣реА (рд╕реНрдХреЗрд▓-рдЖрдЙрдЯ) - рджреБрд╕рд░рд╛ рдиреЛрдб рдЬреЛрдбрдд рдирд╛рд╣реА. рдкрд░рд┐рдгрд╛рдореА, рд╣рд╛ рдкреЙрдб рд╢реЗрдбреНрдпреВрд▓ рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА.

рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЙрд▓рдЯ рд╕реНрдХреЗрд▓рд┐рдВрдЧ (рд╕реНрдХреЗрд▓-рдЗрди) тАФ рдХреНрд▓рд╕реНрдЯрд░рдордзреВрди рдиреЛрдб рдХрд╛рдвреВрди рдЯрд╛рдХрдгреЗ рдиреЗрд╣рдореАрдЪ рдЕрдзрд┐рдХ рдХрдареАрдг рдЕрд╕рддреЗ. рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ рдХреА рддреБрдордЪреНрдпрд╛рдХрдбреЗ рд╕реНрдЯреЗрдЯрдлреБрд▓ рдкреЙрдб рдЖрд╣реЗ (рд╕рддрдд рд╕реНрдЯреЛрд░реЗрдЬ рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ). рд╕рддрдд рдЦрдВрдб рд╕рд╣рд╕рд╛ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░ рдЖрдгрд┐ рдкреНрд░рджреЗрд╢рд╛рдд рдкреНрд░рддрд┐рд░реВрдкрд┐рдд рдирд╛рд╣реАрдд. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЬрд░ рдмрд╛рд╣реНрдп рдСрдЯреЛрд╕реНрдХреЗрд▓рд░рдиреЗ рдпрд╛ рдкреЙрдбрд╕рд╣ рдиреЛрдб рд╣рдЯрд╡рд▓рд╛, рддрд░ рд╢реЗрдбреНрдпреБрд▓рд░ рд╣рд╛ рдкреЙрдб рджреБрд╕рд░реНтАНрдпрд╛ рдиреЛрдбрд╡рд░ рд╢реЗрдбреНрдпреВрд▓ рдХрд░реВ рд╢рдХрдгрд╛рд░ рдирд╛рд╣реА, рдХрд╛рд░рдг рд╣реЗ рдХреЗрд╡рд│ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░рд╛рдордзреНрдпреЗ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдЬреЗрдереЗ рдкрд░реНрд╕рд┐рд╕реНрдЯрдВрдЯ рд╕реНрдЯреЛрд░реЗрдЬ рдЖрд╣реЗ. рд░рд╛рдЬреНрдпрд╛рдд рдкреЙрдб рдЕрдбрдХреЗрд▓ Pending.

рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕рдореБрджрд╛рдпрд╛рдд рдЦреВрдк рд▓реЛрдХрдкреНрд░рд┐рдп рдХреНрд▓рд╕реНрдЯрд░-рдСрдЯреЛрд╕реНрдХреЗрд▓рд░. рд╣реЗ рдХреНрд▓рд╕реНрдЯрд░рд╡рд░ рдЪрд╛рд▓рддреЗ, рдкреНрд░рдореБрдЦ рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддреНрдпрд╛рдВрдХрдбреВрди API рдЪреЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ, рд╕рд░реНрд╡ рдирд┐рд░реНрдмрдВрдз рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрддреЗ рдЖрдгрд┐ рд╡рд░реАрд▓ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ рд╕реНрдХреЗрд▓ рдХрд░реВ рд╢рдХрддреЗ. рд╣реЗ рд╕рд░реНрд╡ рд╕реЗрдЯ рдорд░реНрдпрд╛рджрд╛ рд░рд╛рдЦреВрди рд╕реНрдХреЗрд▓-рдЗрди рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЖрд╣реЗ, рдЬреНрдпрд╛рдореБрд│реЗ рдкреИрд╢рд╛рдВрдЪреА рдмрдЪрдд рд╣реЛрддреЗ (рдЬреЗ рдЕрдиреНрдпрдерд╛ рди рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдХреНрд╖рдорддреЗрд╡рд░ рдЦрд░реНрдЪ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓).

5. IAM/RBAC рдХреНрд╖рдорддрд╛рдВрдХрдбреЗ рджреБрд░реНрд▓рдХреНрд╖ рдХрд░рдгреЗ

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

рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рдНрдХреНтАНрд╕реЗрд╕ рдХреА (рдЖрдгрд┐ рдЧреБрдкрд┐рддреЗ) рд╣рд╛рд░реНрдбрдХреЛрдб рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд, рддрд╕реЗрдЪ рдХреНрд▓рд╛рдЙрдб IAM рдордзреНрдпреЗ рдНрдХреНтАНрд╕реЗрд╕ рдЕрд╕реВрдирд╣реА рдЧреБрдкрд┐рддреЗ рдлрд┐рд░рд╡рдгреНрдпрд╛рдХрдбреЗ рджреБрд░реНрд▓рдХреНрд╖ рдХреЗрд▓реНтАНрдпрд╛рдЪреЗ рдЖрдореНтАНрд╣рд╛рд▓рд╛ рдЕрдиреЗрдХрджрд╛ рд╕рдореЛрд░ рдпреЗрддреЗ. рдпреЛрдЧреНрдп рддреЗрдереЗ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдРрд╡рдЬреА IAM рднреВрдорд┐рдХрд╛ рдЖрдгрд┐ рд╕реЗрд╡рд╛ рдЦрд╛рддреА рд╡рд╛рдкрд░рд╛.

Kubernetes рд╡рд╛рдкрд░рддрд╛рдирд╛ 10 рд╕рд╛рдорд╛рдиреНрдп рдЪреБрдХрд╛

kube2iam рдмрджреНрджрд▓ рд╡рд┐рд╕рд░реВрди рдЬрд╛ рдЖрдгрд┐ рд╕реЗрд╡рд╛ рдЦрд╛рддреНрдпрд╛рдВрд╕рд╛рдареА рдереЗрдЯ IAM рднреВрдорд┐рдХрд╛рдВрд╡рд░ рдЬрд╛ (рдордзреНтАНрдпреЗ рд╡рд░реНрдгрди рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рддреНрдпрд╛рдЪ рдирд╛рд╡рд╛рдЪреА рдиреЛрдВрдж рд╕реНрдЯреЗрдкрди рд╡реНрд░рд╛рдиреА):

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 K8 рдордзреНрдпреЗ, рдкрд░рдВрддреБ рдирд┐рд╢реНрдЪрд┐рддрдкрдгреЗ рдкреНрд░рдпрддреНрди рдХрд░рдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ.

6. рд╢реЗрдВрдЧрд╛рдВрд╕рд╛рдареА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рд╡рд┐рд░реЛрдзреА рдЖрддреНрдореАрдпрддреЗрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рд░рд╛рд╣реВ рдирдХрд╛

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

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

// ╨╛╨┐╤Г╤Й╨╡╨╜╨╛ ╨┤╨╗╤П ╨║╤А╨░╤В╨║╨╛╤Б╤В╨╕
      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 рджреБрд░реНрд▓рдХреНрд╖рд┐рдд рдХрд░рдгреЗ

рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ рдХреА рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рд╡рд░ рдЙрддреНрдкрд╛рджрди рд▓реЛрдб рдЖрд╣реЗ. рдХрд╛рд▓рд╛рдВрддрд░рд╛рдиреЗ, рдиреЛрдбреНрд╕ рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрд╡рддрдГрдЪ рдЕрдкрдбреЗрдЯ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрддрд╛рдд (рдХрд┐рдВрд╡рд╛ рдбрд┐рдХрдорд┐рд╢рди рдХреЗрд▓реЗрд▓реЗ). PodDisruptionBudget (PDB) рд╣реЗ рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рд╢рд╛рд╕рдХ рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдпрд╛рдВрдЪреНрдпрд╛рддреАрд▓ рд╕реЗрд╡рд╛ рд╣рдореА рдХрд░рд╛рд░рд╛рд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реАрддрд░реА рдЖрд╣реЗ.

PDB рддреБрдореНрд╣рд╛рд▓рд╛ рдиреЛрдбреНрд╕рдЪреНрдпрд╛ рдХрдорддрд░рддреЗрдореБрд│реЗ рд╕реЗрд╡рд╛ рд╡реНрдпрддреНрдпрдп рдЯрд╛рд│рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ:

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

рдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдд, рддреБрдореНрд╣реА, рдХреНрд▓рд╕реНрдЯрд░рдЪрд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдореНрд╣рдгреВрди, рдкреНрд░рд╢рд╛рд╕рдХрд╛рдВрдирд╛ рд╕рд╛рдВрдЧрддрд╛: "рдЕрд╣реЛ, рдорд╛рдЭреНрдпрд╛рдХрдбреЗ рдПрдХ рдкреНрд░рд╛рдгреАрд╕рдВрдЧреНрд░рд╣рд╛рд▓рдп рд╕реЗрд╡рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рддреБрдореНрд╣реА рдХрд╛рд╣реАрд╣реА рдХреЗрд▓реЗ рддрд░реА, рдорд▓рд╛ рдпрд╛ рд╕реЗрд╡реЗрдЪреНрдпрд╛ рдХрд┐рдорд╛рди 2 рдкреНрд░рддрд┐рдХреГрддреА рдиреЗрд╣рдореА рдЙрдкрд▓рдмреНрдз рдЕрд╕рд╛рдпрд▓рд╛ рдЖрд╡рдбреЗрд▓."

рдЖрдкрдг рдпрд╛рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рд╡рд╛рдЪреВ рд╢рдХрддрд╛ рдпреЗрдереЗ.

8. рдПрдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдЕрдиреЗрдХ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдХрд┐рдВрд╡рд╛ рд╡рд╛рддрд╛рд╡рд░рдг

рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдиреЗрдорд╕реНрдкреЗрд╕реЗрд╕ (рдирд╛рдорд╕реНрдерд╛рди) рдордЬрдмреВрдд рдЗрдиреНрд╕реБрд▓реЗрд╢рди рджреЗрдК рдирдХрд╛.

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

рдЬреНрдпрд╛рдВрдирд╛ рдПрдХрд╛рдЪ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рджреЛрдиреНрд╣реА рдкреНрд░рдХрд╛рд░рдЪреЗ рд╡рд░реНрдХрд▓реЛрдб рдПрдХрддреНрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рддреНрдпрд╛рдВрдирд╛ рдЬрдЯрд┐рд▓рддреЗрд▓рд╛ рд╕рд╛рдореЛрд░реЗ рдЬрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓. рдЬрд░ рдЕрд╢реА рдХреЛрдгрддреАрд╣реА рдЧрд░рдЬ рдирд╕реЗрд▓, рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рдШреЗрдгреЗ рдкрд░рд╡рдбреЗрд▓ рдЖрдгрдЦреА рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдврдЧрд╛рдд рдореНрд╣рдгрд╛), рддрд░ рддрд╕реЗ рдХрд░рдгреЗ рдЪрд╛рдВрдЧрд▓реЗ. рд╣реЗ рдЗрдиреНрд╕реБрд▓реЗрд╢рдирдЪреА рдЙрдЪреНрдЪ рдкрд╛рддрд│реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрд▓.

9. рдмрд╛рд╣реНрдп рд╡рд╛рд╣рддреВрдХ рдзреЛрд░рдг: рдХреНрд▓рд╕реНрдЯрд░

рдмрд░реНтАНрдпрд╛рдЪрджрд╛ рдЖрдкрдг рдкрд╛рд╣рддреЛ рдХреА рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рд╕рд░реНрд╡ рд░рд╣рджрд╛рд░реА NodePort рд╕рд╛рд░рдЦреНрдпрд╛ рд╕реЗрд╡реЗрджреНрд╡рд╛рд░реЗ рдпреЗрддреЗ, рдЬреНрдпрд╛рд╕рд╛рдареА рдбреАрдлреЙрд▓реНрдЯ рдзреЛрд░рдг рд╕реЗрдЯ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. externalTrafficPolicy: Cluster... рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рдиреЛрдбрдкреЛрд░реНрдЯ рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдбрд╡рд░ рдЙрдШрдбреЗ рдЖрд╣реЗ, рдЖрдгрд┐ рдЖрдкрдг рдЗрдЪреНрдЫрд┐рдд рд╕реЗрд╡реЗрд╢реА (рдкреЙрдбреНрд╕рдЪрд╛ рд╕рдВрдЪ) рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдкреИрдХреА рдХреЛрдгрддреНрдпрд╛рд╣реА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.

Kubernetes рд╡рд╛рдкрд░рддрд╛рдирд╛ 10 рд╕рд╛рдорд╛рдиреНрдп рдЪреБрдХрд╛

рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рд╡рд░ рдирдореВрдж рдХреЗрд▓реЗрд▓реНрдпрд╛ рдиреЛрдбрдкреЛрд░реНрдЯ рд╕реЗрд╡реЗрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреЙрдбреНрд╕ рд╕рд╛рдорд╛рдиреНрдпрдд: рдХреЗрд╡рд│ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдард┐рдХрд╛рдгреА рдЙрдкрд▓рдмреНрдз рдЕрд╕рддрд╛рдд. рдпрд╛ рдиреЛрдбреНрд╕рдЪрд╛ рдЙрдкрд╕рдВрдЪ. рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рдЬрд░ рдореА рдЖрд╡рд╢реНрдпрдХ рдкреЙрдб рдирд╕рд▓реЗрд▓реНрдпрд╛ рдиреЛрдбрд╢реА рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗ, рддрд░ рддреЗ рд░рд╣рджрд╛рд░реА рджреБрд╕рд░реНтАНрдпрд╛ рдиреЛрдбрдХрдбреЗ рдкрд╛рдард╡реЗрд▓, рдПрдХ рд╣реЙрдк рдЬреЛрдбрдд рдЖрд╣реЗ рдЖрдгрд┐ рд╡рд╛рдврддреА рд╡рд┐рд▓рдВрдмрддрд╛ (рдЬрд░ рдиреЛрдб рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдЙрдкрд▓рдмреНрдзрддрд╛ рдЭреЛрди/рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░рд╛рдВрдордзреНрдпреЗ рд╕реНрдерд┐рдд рдЕрд╕рддреАрд▓ рддрд░, рд╡рд┐рд▓рдВрдмрддрд╛ рдЦреВрдк рдЬрд╛рд╕реНрдд рдЕрд╕реВ рд╢рдХрддреЗ; рдпрд╛рд╢рд┐рд╡рд╛рдп, рдмрд╛рд╣реЗрд░ рдкрдбрдгрд╛рд▒реНрдпрд╛ рд░рд╣рджрд╛рд░реАрдЪрд╛ рдЦрд░реНрдЪ рд╡рд╛рдвреЗрд▓).

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

рддреБрдореНрд╣реА рдЖрдзреАрдЪ рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рд╡рд╛рдкрд░рдд рдЕрд╕рдгреНрдпрд╛рдЪреА рджрд╛рдЯ рд╢рдХреНрдпрддрд╛ рдЖрд╣реЗ рдЯреНрд░реЕрдлрд┐рдХ рдХрд┐рдВрд╡рд╛ nginx-ingress-рдХрдВрдЯреНрд░реЛрд▓рд░ рдиреЛрдбрдкреЛрд░реНрдЯ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдореНрд╣рдгреВрди (рдХрд┐рдВрд╡рд╛ рд▓реЛрдбрдмреЕрд▓рдиреНрд╕рд░, рдЬреЗ рдиреЛрдбрдкреЛрд░реНрдЯ рджреЗрдЦреАрд▓ рд╡рд╛рдкрд░рддреЗ) HTTP рдкреНрд░рд╡реЗрд╢ рдЯреНрд░реЕрдлрд┐рдХрд▓рд╛ рд░реВрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╣рд╛ рдкрд░реНрдпрд╛рдп рд╕реЗрдЯ рдХреЗрд▓реНрдпрд╛рдиреЗ рдЕрд╢рд╛ рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╕рд╛рдареА рд╡рд┐рд▓рдВрдмрддрд╛ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдХрдореА рд╣реЛрдК рд╢рдХрддреЗ.

╨Т рд╣реЗ рдкреНрд░рдХрд╛рд╢рди рддреБрдореНрд╣реА externalTrafficPolicy, рддреНрдпрд╛рдЪреЗ рдлрд╛рдпрджреЗ рдЖрдгрд┐ рддреЛрдЯреЗ рдпрд╛рдмрджреНрджрд▓ рдЕрдзрд┐рдХ рдЬрд╛рдгреВрди рдШреЗрдК рд╢рдХрддрд╛.

10. рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдордзреНрдпреЗ рдмрд╛рдВрдзреВ рдирдХрд╛ рдЖрдгрд┐ рдХрдВрдЯреНрд░реЛрд▓ рдкреНрд▓реЗрдирдЪрд╛ рдЧреИрд░рд╡рд╛рдкрд░ рдХрд░реВ рдирдХрд╛

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

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

рдХреНрд▓рд╕реНрдЯрд░ рдкрд╛рд│реАрд╡ рдкреНрд░рд╛рдгреНрдпрд╛рдВрдордзреНрдпреЗ рдмрджрд▓рдгреНрдпрд╛рдд рдХрд╛рд╣реАрдЪ рдордЬрд╛ рдирд╛рд╣реА, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рд╕рд░рд╛рд╡ рдХрд░рддрд╛рдирд╛ рддреНрдпрд╛рдВрдирд╛ рд╡реЗрд│реЛрд╡реЗрд│реА рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ рдЖрдкрддреНрддреА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА (рд╣реЗ рдорджрдд рдХрд░реЗрд▓ рдЕрдирд╛рдЧреЛрдВрджреА рдЕрднрд┐рдпрд╛рдВрддреНрд░рд┐рдХреА - рдЕрдВрджрд╛рдЬреЗ рдЕрдиреБрд╡рд╛рдж.). рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдирд┐рдпрдВрддреНрд░рдг рд╕реНрддрд░рд╛рд╡рд░ рдХрд╛рд░реНрдп рдХрд░рдгреЗ рджреБрдЦрд╛рдкрдд рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА (рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдорд╛рди). рддреНрдпрд╛рд▓рд╛ рд╕реНрдкрд░реНрд╢ рдХрд░рдгреНрдпрд╛рд╕ рдШрд╛рдмрд░рдгреЗ рд╣реЗ рдЪрд╛рдВрдЧрд▓реЗ рд▓рдХреНрд╖рдг рдирд╛рд╣реА. рдЗ рдореГрдд? рдорд┐рддреНрд░рд╛рдВрдиреЛ, рддреБрдореНрд╣реА рдЦрд░реЛрдЦрд░ рдЕрдбрдЪрдгреАрдд рдЖрд╣рд╛рдд!

рджреБрд╕рд░реАрдХрдбреЗ, рддреБрдореНрд╣реА рддреНрдпрд╛рдд рдлреЗрд░рдлрд╛рд░ рдХрд░реВрди рд╡рд╛рд╣реВрди рдЬрд╛рдК рдирдпреЗ. рдХрд╛рд│рд╛рдмрд░реЛрдмрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрддрд░ рдордВрдж рд╣реЛрдК рд╢рдХрддреЛ. рдмрд╣реБрдзрд╛, рд╣реЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд░реЛрдЯреЗрд╢рдирд╢рд┐рд╡рд╛рдп рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рддрдпрд╛рд░ рдЭрд╛рд▓реНрдпрд╛рдореБрд│реЗ рдЖрд╣реЗ (рдбреАрдлреЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрд╕рд╣ рд╣реЗрд▓реНрдо рд╡рд╛рдкрд░рддрд╛рдирд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╕реНрдерд┐рддреА, рдореНрд╣рдгреВрдирдЪ рдХреЙрдиреНрдлрд┐рдЧрдореЕрдкреНрд╕/рд╕рд┐рдХреНрд░реЗрдЯреНрд╕рдордзреНрдпреЗ рддреНрдпрд╛рдЪреА рд╕реНрдерд┐рддреА рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓реА рдЬрд╛рдд рдирд╛рд╣реА - рдкрд░рд┐рдгрд╛рдореА, рд╣рдЬрд╛рд░реЛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдордзреНрдпреЗ рдЬрдорд╛ рд╣реЛрддрд╛рдд. рдирд┐рдпрдВрддреНрд░рдг рд╕реНрддрд░) рдХрд┐рдВрд╡рд╛ kube-api рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреНрдпрд╛ рд╕рддрдд рд╕рдВрдкрд╛рджрдирд╛рд╕рд╣ (рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рд╕реНрдХреЗрд▓рд┐рдВрдЧрд╕рд╛рдареА, CI/CD рд╕рд╛рдареА, рдореЙрдирд┐рдЯрд░рд┐рдВрдЧрд╕рд╛рдареА, рдЗрд╡реНрд╣реЗрдВрдЯ рд▓реЙрдЧ, рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдЗ.).

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд Kubernetes рдкреНрд░рджрд╛рддреНрдпрд╛рд╕рд╣ SLA/SLO рдХрд░рд╛рд░ рддрдкрд╛рд╕рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рд╣рдореАрдВрд╡рд░ рд▓рдХреНрд╖ рджреЗрдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ. рд╡рд┐рдХреНрд░реЗрддрд╛ рд╣рдореА рджреЗрдК рд╢рдХрддреЛ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрддрд░ рдЙрдкрд▓рдмреНрдзрддрд╛ (рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдЪреЗ рдЙрдкрдШрдЯрдХ), рдкрд░рдВрддреБ рдЖрдкрдг рддреНрдпрд╛рд╕ рдкрд╛рдард╡рд▓реЗрд▓реНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪрд╛ p99 рд╡рд┐рд▓рдВрдм рдирд╛рд╣реА. рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рдЖрдкрдг рдкреНрд░рд╡рд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛ kubectl get nodes, рдЖрдгрд┐ рдлрдХреНрдд 10 рдорд┐рдирд┐рдЯрд╛рдВрдирдВрддрд░ рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рд╛ рдЖрдгрд┐ рд╣реЗ рд╕реЗрд╡рд╛ рдХрд░рд╛рд░рд╛рдЪреНрдпрд╛ рдЕрдЯреАрдВрдЪреЗ рдЙрд▓реНрд▓рдВрдШрди рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА.

11. рдмреЛрдирд╕: рдирд╡реАрдирддрдо рдЯреЕрдЧ рд╡рд╛рдкрд░рдгреЗ

рдкрдг рд╣реЗ рдЖрдзреАрдЪ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдЖрд╣реЗ. рдЕрд▓реАрдХрдбреЗ рдЖрдкрдг рд╣реЗ рддрдВрддреНрд░ рдХрдореА рд╡реЗрд│рд╛ рдкрд╛рд╣рд┐рд▓реЗ рдЖрд╣реЗ, рдХрд╛рд░рдг рдЕрдиреЗрдХрд╛рдВрдиреА, рдХрдЯреВ рдЕрдиреБрднрд╡рд╛рддреВрди рд╢рд┐рдХреВрди, рдЯреЕрдЧ рд╡рд╛рдкрд░рдгреЗ рдмрдВрдж рдХреЗрд▓реЗ рдЖрд╣реЗ. :latest рдЖрдгрд┐ рдЖрд╡реГрддреНрддреНрдпрд╛ рдкрд┐рди рдХрд░рдгреЗ рд╕реБрд░реВ рдХреЗрд▓реЗ. рд╣реБрд░реНрд░реЗ!

ECR рдЗрдореЗрдЬ рдЯреЕрдЧрдЪреА рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рд░рд╛рдЦрддреЗ; рдЖрдореНрд╣реА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ рдХреА рдЖрдкрдг рдпрд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рд╕рд╣ рд╕реНрд╡рдд: рд▓рд╛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛.

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

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

рдордзреАрд▓ рд╡рд┐рд╡рд┐рдз рд╕рдВрдШрд╛рдВрдЪреНрдпрд╛ рдЕрдпрд╢рд╕реНрд╡реА рдЕрдиреБрднрд╡рд╛рдВрд╢реА рдЖрдкрдг рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдК рд╢рдХрддрд╛ рд╣рд╛ рдХрдерд╛рд╕рдВрдЧреНрд░рд╣ рд╣реЗрдирд┐рдВрдЧ рдЬреЗрдХрдмреНрд╕ рджреНрд╡рд╛рд░реЗ.

рдпрд╛ рд▓реЗрдЦрд╛рдд рджрд┐рд▓реЗрд▓реНрдпрд╛ рддреНрд░реБрдЯреАрдВрдЪреНрдпрд╛ рдпрд╛рджреАрдд рдЬреЛрдбреВ рдЗрдЪреНрдЫрд┐рдгрд╛рд░реЗ рдЖрдордЪреНрдпрд╛рд╢реА Twitter рд╡рд░ рд╕рдВрдкрд░реНрдХ рдХрд░реВ рд╢рдХрддрд╛рдд (@MarekBartik, @MstrsObserver).

рдЕрдиреБрд╡рд╛рджрдХрд╛рдХрдбреВрди рдкреБрдирд╢реНрдЪ

рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдЪрд╛:

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛